Какой принцип разделения на модули на последнем многомодульном проекте

«Какой принцип разделения на модули на последнем многомодульном проекте» — вопрос из категории Архитектура, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Мы использовали feature-модули с clean architecture. Каждая фича - отдельный модуль с четкими слоями: data (репозитории, источники), domain (use cases, entities), presentation (UI).

Пример структуры:

:feature-auth  
  ├── data  
  ├── domain  
  └── presentation  

Плюсы:

  • Независимая разработка фич
  • Четкие границы ответственности
  • Упрощенное тестирование

Также выделяли core-модули (shared utils, network, DI) и app-модуль для сборки. Gradle-конфиги выносили в buildSrc для единой конфигурации.