Что такое ComposeCompiler

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

Ответ

ComposeCompiler — это Kotlin-компиляторный плагин, который преобразует @Composable функции в оптимизированный код. Он анализирует и модифицирует AST (Abstract Syntax Tree) во время компиляции для:

  1. Запоминания вычислений — автоматически вставляет remember для стабильных параметров.
  2. Группировки — разбивает UI на группы для эффективного пересчета.
  3. Стабильности — определяет, нужно ли перекомпоновывать функцию при изменении входных данных.

Пример влияния:

@Composable
fun MyComponent(items: List<String>) {
    // ComposeCompiler может оптимизировать пересчет, если List стабильна
    items.forEach { Text(it) }
}

Работает на уровне байт-кода, требует Kotlin 1.5.30+. Настраивается через kotlinCompilerPluginArgs в Gradle.