Что такое многомодульность

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

Ответ

Многомодульность — это подход к организации проекта, где код разбит на отдельные модули (библиотеки или приложения), каждый со своей зоной ответственности.

Преимущества:

  • Ускорение сборки (изменения в одном модуле не требуют пересборки всего проекта)
  • Чёткое разделение ответственности (features, core, data и т.д.)
  • Возможность переиспользования кода между проектами

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

app/          # главный модуль приложения  
feature-auth/ # модуль авторизации  
core-ui/      # общие UI-компоненты  
data/         # слой работы с данными  

Gradle настройка модуля (:feature-auth):

plugins {  
    id("com.android.library")  
    id("org.jetbrains.kotlin.android")  
}  

dependencies {  
    implementation(project(":core-ui"))  
}  

Важно: избегать циклических зависимостей между модулями.