Какие знаешь принципы определения модуля

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

Ответ

Модуль в Android — это логически выделенная часть приложения, выполняющая конкретную задачу. Основные принципы:

  1. Единая ответственность — модуль решает одну задачу (например, авторизация, платежи).
  2. Изолированность — минимизация зависимостей от других модулей.
  3. Переиспользуемость — модуль можно использовать в разных проектах.
  4. Тестируемость — модуль должен легко тестироваться изолированно.

Пример структуры модуля в build.gradle:

plugins {
    id("com.android.library") // или "application" для feature-модуля
}

dependencies {
    implementation(project(":core")) // внутренние зависимости
    implementation("com.squareup.retrofit2:retrofit:2.9.0") // внешние
}

Типы модулей:

  • App — точко входа
  • Library — общий код (например, :core)
  • Feature — функциональность (например, :auth)
  • Dynamic Feature — для динамической загрузки