Podcast
Questions and Answers
¿Qué función se utiliza para observar cambios en un objeto de live data dentro del ViewModel?
¿Qué función se utiliza para observar cambios en un objeto de live data dentro del ViewModel?
- currentQuote()
- observe() (correct)
- setOnClickListener()
- randomQuote()
¿Cuál es el propósito de llamar a la función randomQuote() en el contexto del ViewModel?
¿Cuál es el propósito de llamar a la función randomQuote() en el contexto del ViewModel?
- Crear una nueva instancia de ViewModel
- Modificar el tema de la aplicación
- Eliminar la toolbar de la app
- Actualizar el valor del live data (correct)
¿Qué elemento se debe modificar para quitar la toolbar de la app?
¿Qué elemento se debe modificar para quitar la toolbar de la app?
- El objeto con live data
- El listener del constraintLayout
- El ViewModel
- El theme del parent en res > values (correct)
¿Qué técnica se sugiere opcionalmente para mejorar la estilo de la aplicación?
¿Qué técnica se sugiere opcionalmente para mejorar la estilo de la aplicación?
¿Cuál es el efecto de añadir un setOnClickListener al constraintLayout principal?
¿Cuál es el efecto de añadir un setOnClickListener al constraintLayout principal?
¿Cuál es la función principal del modelo en la arquitectura MVVM?
¿Cuál es la función principal del modelo en la arquitectura MVVM?
En la arquitectura MVVM, ¿qué papel juega el ViewModel?
En la arquitectura MVVM, ¿qué papel juega el ViewModel?
¿Qué es LiveData en el contexto de MVVM?
¿Qué es LiveData en el contexto de MVVM?
¿Cuál de las siguientes opciones describe mejor la arquitectura MVVM?
¿Cuál de las siguientes opciones describe mejor la arquitectura MVVM?
Al utilizar MVVM, ¿qué sucede cuando el modelo es modificado?
Al utilizar MVVM, ¿qué sucede cuando el modelo es modificado?
En MVVM, ¿qué tipo de elementos forman parte de la vista?
En MVVM, ¿qué tipo de elementos forman parte de la vista?
¿Cuál de las siguientes afirmaciones sobre MVVM es incorrecta?
¿Cuál de las siguientes afirmaciones sobre MVVM es incorrecta?
¿Cuál de los siguientes conceptos no pertenece en la arquitectura MVVM?
¿Cuál de los siguientes conceptos no pertenece en la arquitectura MVVM?
¿Qué debe hacer el ViewModel cuando recibe un evento de la UI?
¿Qué debe hacer el ViewModel cuando recibe un evento de la UI?
¿Cuál es la función de LiveData en la arquitectura MVVM?
¿Cuál es la función de LiveData en la arquitectura MVVM?
¿Qué tipo de objeto se utiliza para representar una cita en el modelo?
¿Qué tipo de objeto se utiliza para representar una cita en el modelo?
¿Cuál es el propósito del método random() en la clase QuoteProvider?
¿Cuál es el propósito del método random() en la clase QuoteProvider?
¿Qué se debe activar en el archivo build.gradle(app) para utilizar View Binding?
¿Qué se debe activar en el archivo build.gradle(app) para utilizar View Binding?
¿Qué diseño de vista se recomienda para mostrar la cita y el nombre del autor?
¿Qué diseño de vista se recomienda para mostrar la cita y el nombre del autor?
¿Qué clase debe extender el QuoteViewModel para convertirse en un ViewModel?
¿Qué clase debe extender el QuoteViewModel para convertirse en un ViewModel?
¿Cómo se integra la actividad al ViewModel?
¿Cómo se integra la actividad al ViewModel?
¿Qué ocurre cuando el modelo de datos es modificado en el ViewModel?
¿Qué ocurre cuando el modelo de datos es modificado en el ViewModel?
¿Cuál es la característica principal de una data class como QuoteModel?
¿Cuál es la característica principal de una data class como QuoteModel?
¿Qué configuración se añade para habilitar el View Binding en el build.gradle?
¿Qué configuración se añade para habilitar el View Binding en el build.gradle?
¿Cuál es la función del método postValue() en el ViewModel?
¿Cuál es la función del método postValue() en el ViewModel?
¿En qué directorio se debe crear la clase QuoteModel?
¿En qué directorio se debe crear la clase QuoteModel?
Flashcards
Arquitectura MVVM
Arquitectura MVVM
Una forma de organizar el código en una aplicación Android para facilitar el mantenimiento al crecer.
Modelo (Model)
Modelo (Model)
Parte de los datos, como la información de una base de datos o un servicio web.
Vista (View)
Vista (View)
Parte de la interfaz de usuario (UI), como XML, Activities y Fragments.
ViewModel
ViewModel
Signup and view all the flashcards
LiveData
LiveData
Signup and view all the flashcards
Observer Pattern
Observer Pattern
Signup and view all the flashcards
Mantenibilidad en Apps Android
Mantenibilidad en Apps Android
Signup and view all the flashcards
Funcionalidad en App de Citas
Funcionalidad en App de Citas
Signup and view all the flashcards
Observer en MVVM
Observer en MVVM
Signup and view all the flashcards
¿Qué hace observe()?
¿Qué hace observe()?
Signup and view all the flashcards
Función randomQuote()
Función randomQuote()
Signup and view all the flashcards
setOnClickListener
setOnClickListener
Signup and view all the flashcards
Android MVVM Architecture
Android MVVM Architecture
Signup and view all the flashcards
Vista en MVVM
Vista en MVVM
Signup and view all the flashcards
¿Qué hace la vista en MVVM?
¿Qué hace la vista en MVVM?
Signup and view all the flashcards
Modelo en MVVM
Modelo en MVVM
Signup and view all the flashcards
ViewModel en MVVM
ViewModel en MVVM
Signup and view all the flashcards
¿Cómo la Vista se conecta a la data?
¿Cómo la Vista se conecta a la data?
Signup and view all the flashcards
View Binding
View Binding
Signup and view all the flashcards
¿Qué pasa con el QuoteProvider?
¿Qué pasa con el QuoteProvider?
Signup and view all the flashcards
¿Cuál es la función de QuoteModel?
¿Cuál es la función de QuoteModel?
Signup and view all the flashcards
Objetivo del ViewModel
Objetivo del ViewModel
Signup and view all the flashcards
Refrescar la UI en MVVM
Refrescar la UI en MVVM
Signup and view all the flashcards
Conexión entre el ViewModel y la Vista
Conexión entre el ViewModel y la Vista
Signup and view all the flashcards
Study Notes
Arquitectura MVVM en Android
-
Introducción a la arquitectura MVVM: La arquitectura MVVM (Modelo-Vista-Modelo de Vista) organiza el código de una aplicación para facilitar el mantenimiento a medida que ésta crece. Es una arquitectura popular, especialmente desde que Google la adoptó como arquitectura oficial.
-
Componentes de MVVM:
- Modelo (Model): Representa los datos, almacenando información recuperada de bases de datos o servicios web.
- Vista (View): Incluye la interfaz de usuario (UI) – XMLs, Activities, y Fragments. No realiza lógicas, solo se suscribe al ViewModel para obtener instrucciones de renderizado.
- ViewModel: Conecta el modelo y la vista. Responde a cambios en el modelo y notifica a la vista para actualizar la UI.
-
Funcionamiento de MVVM (Ejemplo de app de citas):
- La Activity se suscribe a su ViewModel usando LiveData y el patrón observer. La Activity solo actualiza la UI cuando el ViewModel la notifica del cambio.
- Al pulsar, la Activity notifica al ViewModel.
- El ViewModel actualiza el Modelo de Cita mediante una función (p.ej.
randomQuote
) utilizando una fuente de datos (p. ej.QuoteProvider
que simula Retrofit u otras fuentes de datos). - El ViewModel notifica al Activity sobre el cambio en el modelo mediante LiveData.
- La Activity actualiza la UI.
Implementación de MVVM en Android
-
Proyecto de ejemplo: El proyecto
MVVM Example
utilizaView Binding
y Java 1.8 (Kotlin se ejecuta sobre JVM). -
build.gradle(app)
: Configura dependencias y activaView Binding
.- Se especifica la compilación con Java 1.8, incluyendo dependencias para fragments aunque no se usen aquí.
-
Diseño (UI):
activity_main.xml
incluye unConstraintLayout
con dosTextViews
para la cita y el autor. Se utilizaView Binding
para acceder a los elementos. Se definen los colores enres/values/colors.xml
. -
MainActivity (View)
: UsaView Binding
para acceder a la vista. Se suscribe alViewModel
por medio deby viewModels()
. Observa los cambios enLiveData
delViewModel
mediante la funciónobserve()
. -
QuoteModel (Model)
: Clase de datos sencilla que contiene cita y autor. -
QuoteProvider (Model)
: Simula una fuente de datos, devuelve una cita de una lista predefinida aleatoriamente. Este se considera un punto básico de entrada de información para un proyecto y se busca evitar. -
QuoteViewModel (ViewModel)
: Hereda deViewModel
. UtilizaMutableLiveData
para notificar a la vista. Incluye la funciónrandomQuote()
que actualiza la cita y notifica el cambio usandopostValue()
. -
Actualización de la UI: El
ConstraintLayout
principal se configura con unsetOnClickListener
para llamar a la funciónrandomQuote()
en el ViewModel cada vez que se pulsa. Esto provoca la actualización de la cita. -
Consideraciones:
- Los ejemplos en la explicación utilizan una simulación básica de una fuente de datos. En la práctica, se usaría Retrofit, Room u otras librerías de acceso a datos para interactuar con servicios web o bases de datos.
- La arquitectura se presenta con un ejemplo básico para facilitar la comprensión pero incluye la integración con
LiveData
y el uso del patrón observer. Esta es una forma de actualizar la vista o UI.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Este quiz explora la arquitectura MVVM utilizada en el desarrollo de aplicaciones Android. Aprenderás sobre sus componentes, como el Modelo, la Vista y el ViewModel, así como su funcionamiento a través de un ejemplo práctico. Ideal para quienes deseen comprender cómo organizar el código para facilitar el mantenimiento de aplicaciones.