Sobes.tech
Junior — Middle

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()