Как технически была реализована модульность

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

Ответ

Модульность в Android реализована через Gradle-модули. Каждый модуль — это независимая единица с собственным build.gradle, манифестом и исходным кодом.

Основные типы модулей:

  • Application module (обычный .app) — точка входа.
  • Library module (Android/Java/Kotlin) — переиспользуемый код.
  • Dynamic Feature module — для динамической доставки через Play Feature Delivery.

Пример подключения библиотечного модуля:

// settings.gradle  
include ':app', ':mylibrary'  

// app/build.gradle  
dependencies {  
    implementation project(':mylibrary')  
}  

Плюсы:

  • Изоляция кода (чистая архитектура).
  • Ускорение сборки (параллельная компиляция).
  • Гибкость (можно отключать/добавлять фичи).

Нюансы:

  • Циклические зависимости между модулями запрещены.
  • Для общения между модулями используйте интерфейсы или Dagger/Hilt.