Sobes.tech
Junior — Middle

Podes enumerar os tipos de estado existentes no Jetpack Compose e explicar as suas diferenças?

sobes.tech IA

Resposta da IA

No Jetpack Compose, existem diferentes tipos de estado que ajudam a gerir as alterações na interface de utilizador:

  • MutableState<T> — tipo de estado básico que armazena um valor e notifica o Compose sobre as suas alterações para redesenhar a interface.

  • remember — função que mantém o estado entre recomposições dentro de uma única chamada de função.

  • rememberSaveable — extensão do remember que mantém o estado não só durante a recomposição, mas também em alterações de configuração (por exemplo, rotação de ecrã), usando um mecanismo de armazenamento de estado.

  • StateFlow / LiveData — fluxos de dados reativos que podem ser usados como fonte de estado no Compose através de adaptadores.

Diferenças:

  • remember mantém o estado apenas durante a vida da composição.
  • rememberSaveable também mantém o estado ao recriar a atividade.
  • MutableState é um recipiente para um valor que o Compose rastreia.

Exemplo:

var count by rememberSaveable { mutableStateOf(0) }
Button(onClick = { count++ }) {
    Text("Pressionado $count vezes")
}