La programación de aplicaciones de Android no se detiene. Nuevas versiones, nuevas prácticas y herramientas emergen constantemente. Los desarrolladores siempre tienen como objetivo encontrar una “piedra filosófica” mítica, una arquitectura ideal. Debe ser flexible a los cambios de lógica y diseño, y cómodo de probar al mismo tiempo. Debe ser independiente de los marcos externos, debe tener una estructura simple. Pero es posible?
En el transcurso de 2016, también un par específico de patrones de capa / diseño ha aumentado en popularidad entre los desarrolladores de Android. Hay Model View Presenter (MVP) y Model View-View Model (MVVM). No aparece de la nada, aunque muchos codificadores avanzados en sus habilidades tienden a resolver los problemas antes mencionados con estos dos enfoques.
En realidad, el patrón MVP es el sucesor de la arquitectura más antigua de Model View Controller (MVC). Crearon esto, porque había problemas con el rediseño, la modificación del código, las pruebas y una mejor interfaz de usuario. Este patrón divide el código de la aplicación en tres capas.
1. El modelo – modelos de acomodación (POJO, JavaBeans, etc.), datos de varias fuentes (base de datos, resultados del servidor, caché, sistema de archivos de Android, etc.).
2. La vista es responsable de la visualización visual de las aplicaciones, junto con la entrada de datos por parte de los usuarios. Esta parte NO debe en ningún caso procesar los datos. Su función es solo detectar la entrada (por ejemplo, tocar o deslizar) y la visualización.
3. Presentador , que se encarga de pasar los datos entre dos capas y, por lo tanto, del análisis y la interacción. Dicha división permite la sustitución de partes de código, pruebas adecuadas y conecta capas como interfaces.
La característica principal de ModelView-ViewModel radica en la conexión de datos. El patrón MVVM es un éxito en los entornos WPF, Silverlight y, a veces, JS. Con solo una pequeña pieza de código en el archivo build.gradle, puede usarlo.
El Modelo no está vinculado a la Vista, reutilizable en muchos contextos, comprende datos, herramientas para el procesamiento de datos, lógica de negocios.
The View es responsable de la visualización de datos. Transmite valores a ViewModel, cambiando así la vista de la interfaz de usuario.
ViewModel proporciona ganchos para que la Vista pase eventos al Modelo: el cambio de ViewModel cambia automáticamente la Vista, y viceversa.
Si desea leer sobre los lados fuertes y débiles, aquí hay un artículo realmente bueno MVP vs MVVM: una revisión de los patrones arquitectónicos para Android – Thinkmobiles
Para el triunfo de los desarrolladores de todo el mundo, ahora hay muchas bibliotecas que les hacen la vida más fácil. Y habilite la arquitectura adecuada para las aplicaciones de Android al mismo tiempo. Por ejemplo:
- Enlace de datos de Android : permite la transferencia de cierta lógica de aplicación a XML ;
- Daga 2 : que implementa la técnica de ‘Inyección de dependencias’;
- Anotaciones de Android : biblioteca que hace que la implementación de componentes de Android sea lo más simple posible, sin reducir sus funciones;
- RxAndroid : enfoque de codificación altamente funcional, uno que, si es totalmente detenido, puede optimizar muchas tareas;
- Y la lista continúa.