¿Qué enfoques y implementaciones del patrón ViewModel conoces?
sobes.tech AI
Respuesta de la IA
El patrón ViewModel en Android se utiliza para almacenar y gestionar datos de la interfaz de usuario teniendo en cuenta el ciclo de vida de los componentes, como Activity o Fragment. Enfoques y implementaciones principales:
-
Android Architecture Components ViewModel — una clase de la biblioteca androidx.lifecycle que permite conservar datos al recrear Activity/Fragment (por ejemplo, al rotar la pantalla). El ViewModel vive mientras el componente de UI esté vivo.
-
ViewModel con LiveData — a menudo, el ViewModel contiene LiveData para actualizar automáticamente la UI cuando cambian los datos.
-
ViewModel personalizado — se puede implementar un patrón propio de ViewModel, separando la lógica y los datos de la UI, pero sin usar AndroidX, por ejemplo, en un MVVM puro.
Ejemplo de uso del ViewModel estándar con LiveData:
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
fun loadData() {
// carga de datos, por ejemplo, desde un repositorio
_data.value = "Ejemplo de datos"
}
}
// En Activity o Fragment
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
viewModel.data.observe(this) { value ->
textView.text = value
}
viewModel.loadData()