Sobes.tech
Junior — Middle

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