В чем разница между Compose-функцией и обычной функцией

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

Ответ

Compose-функции — это функции, которые используют API Jetpack Compose для описания UI. Они должны быть аннотированы @Composable и могут вызывать другие Compose-функции.

Ключевые отличия:

  1. Реактивность: Compose-функции автоматически перекомпозируются при изменении их параметров или состояния (State).
  2. Жизненный цикл: Управляются фреймворком Compose (фазы composition, layout, drawing).
  3. Побочные эффекты: Ограничены (используются LaunchedEffect, SideEffect и т.д.).

Пример:

@Composable
fun Greeting(name: String) { // Compose-функция
    Text(text = "Hello, $name")  
}

fun greet(name: String): String { // Обычная функция
    return "Hello, $name"
}