Что такое flavor

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

Ответ

Flavor — это настройки сборки в Android, позволяющие создавать разные версии приложения (например, free/paid, dev/prod) с общим кодом, но разными ресурсами, зависимостями или конфигурациями.

Основные возможности:

  • Разные package names (applicationId)
  • Свои ресурсы (strings, drawables)
  • Разные зависимости или манифесты

Пример в build.gradle:

flavorDimensions "version"
productFlavors {
    free {
        dimension "version"
        applicationId "com.app.free"
    }
    paid {
        dimension "version"
        applicationId "com.app.paid"
    }
}

Flavors комбинируются с buildTypes (debug/release) для гибкой настройки сборок.