Как Compose понимает что state поменялся

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

Ответ

Compose использует механизм отслеживания состояния через State<T> и MutableState<T. Когда значение состояния изменяется, Compose автоматически перестраивает только те части UI, которые зависят от этого состояния.

Ключевые моменты:

  • State оборачивает значение и уведомляет Compose при изменении.
  • Изменение через value (для MutableState) или update триггерит рекомпозицию.
  • Compose сравнивает значения через equals, поэтому важно избегать мутаций (используйте copy для data-классов).

Пример:

var count by remember { mutableStateOf(0) }  
Button(onClick = { count++ }) {  
    Text("Clicked $count times")  
}  

Здесь изменение count перерисовывает Text.