Los desarrolladores siempre prefieren desarrollar una aplicación de Android mediante la aplicación de un patrón de arquitectura de software. Un patrón de arquitectura da modularidad a los archivos del proyecto y asegura que todos los códigos se cubran en las pruebas unitarias. Facilita a los desarrolladores la tarea de mantener el software y ampliar las características de la aplicación en el futuro. MVC (Modelo — Vista — Controlador) y MVVM (Modelo — Vista — ViewModel) son las dos arquitecturas de Android más populares entre los desarrolladores.
El patrón modelo-vista-controlador (MVC)
El patrón MVC sugiere dividir el código en 3 componentes. Al crear la clase/archivo de la aplicación, el desarrollador debe categorizarlo en una de las siguientes tres capas:
- Modelo: este componente almacena los datos de la aplicación. No tiene conocimiento sobre la interfaz. El modelo es responsable de manejar la lógica del dominio (reglas comerciales del mundo real) y la comunicación con la base de datos y las capas de red.
- Vista: es la capa de UI (interfaz de usuario) que contiene los componentes que son visibles en la pantalla. Además, proporciona la visualización de los datos almacenados en el Modelo y ofrece interacción con el usuario.
- Controlador: Este componente establece la relación entre la Vista y el Modelo. Contiene la lógica de la aplicación central y se informa de la respuesta del usuario y actualiza el Modelo según la necesidad.
El patrón Modelo — Vista — ViewModel (MVVM)
El patrón MVVM tiene algunas similitudes con el patrón de diseño MVP (Modelo – Vista – Presentador) ya que ViewModel desempeña el rol de Presentador. Sin embargo, los inconvenientes del patrón MVP han sido resueltos por MVVM. Sugiere separar la lógica de presentación de datos (vistas o interfaz de usuario) de la parte de la lógica empresarial central de la aplicación. Las capas de código separadas de MVVM son:
- Modelo: esta capa es responsable de la abstracción de las fuentes de datos. Model y ViewModel trabajan juntos para obtener y guardar los datos.
- Vista: El propósito de esta capa es informar al ViewModel sobre la acción del usuario. Esta capa observa el ViewModel y no contiene ningún tipo de lógica de aplicación.
- ViewModel: Expone esos flujos de datos que son relevantes para la Vista. Además, sirve como enlace entre el Modelo y la Vista.
Diferencia entre el patrón de diseño MVC y MVVM
MVC (controlador de vista de modelo) |
MVVM (Modelo Vista Vista Modelo) |
---|---|
La arquitectura de aplicaciones de Android más antigua. | Patrón de arquitectura reconocido por la industria para aplicaciones. |
Las entradas del usuario son manejadas por el controlador . | La vista toma la entrada del usuario y actúa como el punto de entrada de la aplicación. |
El controlador y la vista existen con la relación de uno a muchos. Un controlador puede seleccionar una vista diferente según la operación requerida. | La vista múltiple se puede asignar con un solo modelo de vista y, por lo tanto, existe una relación de uno a muchos entre la vista y el modelo de vista. |
La Vista no tiene conocimiento sobre el Controlador . | La Vista tiene referencia al ViewModel . |
Esta arquitectura tiene una alta dependencia de las API de Android. | Depende poco o nada de las API de Android. |
Es difícil hacer cambios y modificar las características de la aplicación ya que las capas de código están estrechamente acopladas. | Fácil de hacer cambios en la aplicación. Sin embargo, si la lógica de vinculación de datos es demasiado compleja, será un poco más difícil depurar la aplicación. |
Soporte limitado para pruebas unitarias. | La capacidad de prueba de la unidad es más alta en esta arquitectura. |
No sigue el principio modular y de responsabilidad única. | Sigue el principio modular y de responsabilidad única. |
Publicación traducida automáticamente
Artículo escrito por RISHU_MISHRA y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA