Как сделать изменяемый стейт в Composable функции

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

Ответ

Используй remember и mutableStateOf для создания изменяемого состояния внутри Composable. Это обеспечит перекомпозицию при изменении значения.

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

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

  1. remember сохраняет значение при перекомпозиции
  2. mutableStateOf делает значение наблюдаемым для Compose
  3. Изменение значения автоматически вызывает перекомпозицию зависимых Composables

Для более сложных случаев используйте ViewModel с StateFlow/LiveData.