Какой жизненный цикл @Composable функции

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

Ответ

Composable функции не имеют традиционного жизненного цикла как Activity/Fragment. Их выполнение зависит от recomposition (повторного вызова при изменении входных данных). Ключевые моменты:

  1. Initial composition - первый вызов функции для создания UI
  2. Recomposition - повторный вызов при изменении входных параметров или состояния
  3. Cleanup - выполняется при выходе из композиции (аналог onDestroy)

Пример с эффектами:

@Composable
fun MyComponent() {
    // Аналог onCreate
    LaunchedEffect(Unit) {
        println("Composed")
    }

    // Аналог onDestroy
    DisposableEffect(Unit) {
        onDispose { println("Disposed") }
    }
}

Важно: Composable функции могут вызываться многократно и в любом порядке, поэтому они должны быть идемпотентными.