Ответ
Мы использовали feature-модули с clean architecture. Каждая фича - отдельный модуль с четкими слоями: data (репозитории, источники), domain (use cases, entities), presentation (UI).
Пример структуры:
:feature-auth
├── data
├── domain
└── presentation
Плюсы:
- Независимая разработка фич
- Четкие границы ответственности
- Упрощенное тестирование
Также выделяли core-модули (shared utils, network, DI) и app-модуль для сборки. Gradle-конфиги выносили в buildSrc для единой конфигурации.