Sobes.tech
Junior — Middle

Que componentes do Jetpack ViewModel você usa para gerenciar dados e o estado da interface do usuário?

sobes.tech IA

Resposta da IA

Para gerir os dados e o estado da interface de utilizador no Jetpack ViewModel, normalmente utilizam-se os seguintes componentes:

  • LiveData — dados observáveis que atualizam automaticamente a interface quando mudam. Permite implementar uma abordagem reativa.

  • MutableLiveData — versão modificável do LiveData, usada dentro do ViewModel para atualizar dados.

  • StateFlow / SharedFlow (do Kotlin Coroutines) — alternativas modernas ao LiveData para gerir o estado e eventos com suporte para corrotinas.

  • SavedStateHandle — permite guardar e restaurar o estado do ViewModel ao recriar a interface, por exemplo, ao rodar a tela.

Exemplo de uso do LiveData no ViewModel:

class MyViewModel : ViewModel() {
    private val _text = MutableLiveData<String>()
    val text: LiveData<String> = _text

    fun updateText(newText: String) {
        _text.value = newText
    }
}