Que abordagens e implementações do padrão ViewModel conheces?
sobes.tech IA
Resposta da IA
O padrão ViewModel no Android é utilizado para armazenar e gerir dados de UI tendo em conta o ciclo de vida dos componentes, como Activity ou Fragment. Abordagens e implementações principais:
-
Android Architecture Components ViewModel — uma classe da biblioteca androidx.lifecycle que permite manter dados ao recriar a Activity/Fragment (por exemplo, ao rodar a tela). O ViewModel vive enquanto o componente de UI estiver vivo.
-
ViewModel com LiveData — frequentemente, o ViewModel contém LiveData para atualizar automaticamente a UI quando os dados mudam.
-
ViewModel personalizado — pode implementar um padrão próprio de ViewModel, separando lógica e dados da UI, mas sem usar AndroidX, por exemplo, em um MVVM puro.
Exemplo de uso do ViewModel padrão com LiveData:
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
fun loadData() {
// carregamento de dados, por exemplo, de um repositório
_data.value = "Exemplo de dados"
}
}
// Em uma Activity ou Fragment
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
viewModel.data.observe(this) { value ->
textView.text = value
}
viewModel.loadData()