Что такое common таргеты

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

Ответ

Common targets в Gradle — это конфигурации, которые определяют, как собирать и публиковать артефакты (например, .aar или .jar). Они включают:

  • implementation — зависимости для текущего модуля (не транзитивные).
  • api — зависимости, доступные и для модуля, и для зависимых от него (транзитивные).
  • compileOnly — зависимости только для компиляции (не включаются в APK).
  • runtimeOnly — зависимости только для runtime (не для компиляции).

Пример:

dependencies {
    implementation("androidx.core:core-ktx:1.9.0")  
    api("com.google.code.gson:gson:2.10")  
    compileOnly("org.jetbrains:annotations:23.0.0")  
}

Нюансы:

  • api может привести к увеличению размера APK из-за транзитивности.
  • compileOnly полезно для аннотаций или кодогенерации.