- 1

Patrones de Diseño en Android: Soluciones y Aplicación Práctica
02:01 - 2

Fundamentos de Arquitectura de Software y su Impacto en Proyectos
02:02 - 3

Arquitecturas en Android: MVC y MVVM
02:38 - 4

Desarrollo de una Billetera Virtual con Git y Android Studio
03:20 - 5

Arquitectura MVP: Modelo, Vista y Presentador en Desarrollo de Software
04:01 - 6

Arquitectura MVP: Implementación en Proyectos Android
11:43 - 7

Implementación de Arquitectura MVP en Android
11:49 - 8

Implementación de Loaders en Arquitectura MVP con Android
04:49 - 9

Arquitectura MVVM en Android: Comunicación entre Capas
01:33
Implementación de ViewModel en Arquitectura MVVM en Android
Clase 30 de 32 • Curso de Patrones de Diseño en Android
Contenido del curso
- 11

Implementación del Patrón Singleton en Kotlin para Android
07:48 - 12
Patrón Singleton en Kotlin para Gestión de Estados en Android
01:03 - 13

Patrón Builder en Android: Creación de Objetos Complejos
02:06 - 14

Implementación del Patrón Builder en Clases de Usuario
07:50 - 15
Funciones de Alcance en Kotlin: Uso de Apply
01:29 - 16

Patrón Factory: Creación y Uso en Desarrollo de Software
10:28
- 20

Patrones de Diseño: Implementación del Patrón Observer en Proyectos
04:25 - 21

Patrón Observer en Android: Implementación y Uso Práctico
08:28 - 22

Patrón Comando: Implementación y Gestión de Comandos en Kotlin
06:17 - 23

Comandos para Guardar y Leer Archivos en Android
09:27 - 24

Ejecución de Comandos y Debugging en Android Studio
03:59
- 25

Componentes de Android Jetpack para Mejora de Aplicaciones
01:25 - 26

Implementación de LiveData en Android para Ciclo de Vida
07:09 - 27

Implementación de Room en Android para Gestión de Base de Datos
03:19 - 28

Creación de Entidades y DAO en Base de Datos con Room en Kotlin
11:44 - 29

Conexión y manejo de transferencias en Room Database
07:33 - 30

Implementación de ViewModel en Arquitectura MVVM en Android
07:17
¿Qué es el ciclo de vida en ViewModel y cómo se maneja?
El manejo del ciclo de vida en desarrollo de aplicaciones es crucial para evitar la pérdida de datos importantes, especialmente cuando ocurren eventos como rotaciones de pantalla. El modelo de arquitectura ViewModel en Android se encarga de gestionar estas situaciones al mantener el estado de las variables a pesar de los cambios de configuración. La clase ViewModel se integra en el ciclo de vida de las activities y fragments para proporcionar un manejo eficiente de los datos y del estado. ViewModel actúa como un intermediario entre los datos de la interfaz de usuario y la parte lógica del aplicativo.
¿Cómo se implementa ViewModel en Android?
Para implementar un ViewModel, primero debes crear una clase que extienda de ViewModel. En este contexto, puedes utilizar la librería Android Architecture Components, lo que te permitirá acceder a métodos como onCleared, que se llama cuando el ViewModel ya no es necesario y los datos deben ser liberados.
class LoanViewModel : ViewModel() {
// Definición de variables LiveData
private val _percentLiveData = MutableLiveData<Int>()
val percentLiveData: LiveData<Int> get() = _percentLiveData
private val _loansListLiveData = MutableLiveData<List<Loan>>()
val loansListLiveData: LiveData<List<Loan>> get() = _loansListLiveData
// Método para cambiar los valores
fun changeValues() {
_percentLiveData.value = 100
_loansListLiveData.value = emptyList()
}
}
¿Cómo conectar la vista con el ViewModel?
Una vez que tengas el ViewModel configurado, debes conectarlo con la interfaz de usuario o vista. Esto se realiza suscribiéndose a los objetos LiveData del ViewModel de modo que la vista pueda reaccionar a los cambios en los datos.
class LoanFragment : Fragment() {
private lateinit var viewModel: LoanViewModel
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
viewModel = ViewModelProvider(this).get(LoanViewModel::class.java)
// Observación de LiveData desde el ViewModel
viewModel.percentLiveData.observe(viewLifecycleOwner, Observer { percent ->
// Actualizar la UI con el nuevo porcentaje
percentageTextView.text = "$percent%"
})
viewModel.loansListLiveData.observe(viewLifecycleOwner, Observer { loans ->
// Actualizar los datos del adaptador
adapter.submitList(loans)
})
return inflater.inflate(R.layout.fragment_loan, container, false)
}
}
¿Cuáles son las ventajas de usar ViewModel?
-
Persistencia durante el ciclo de vida: ViewModel conserva los datos del aplicativo durante cambios de configuración como la rotación de pantalla.
-
Arquitectura limpia y desacoplada: Al separar la lógica de la UI del manejo de datos, ViewModel permite mantener una estructura de código más ordenada y fácil de mantener.
-
Delegación eficiente: Se encarga de manejar eventos de la UI y actualizar solo cuando sea necesario.
-
Seguridad en multihilo: Está diseñado para trabajar en estrecha colaboración con LiveData, lo cual garantiza notificaciones reactivas de cambios en los datos, lo que facilita el manejo concurrente de diferentes eventos de UI.
El empleo de ViewModel en la arquitectura de las aplicaciones Android es fundamental para quienes buscan eficiencia y organización en el desarrollo, garantizando aplicaciones robustas y adaptables a futuros cambios.