¿Por qué los desarrolladores de Android prefieren MVP sobre MVVM?

Quiero escribirte sobre las diferencias.

Y todos eligen algo que más le convenga.

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.

MVVM tiene la tendencia a convertirse en una herramienta realmente ordenada y aprensible. Mientras tanto, el patrón MVP es lo suficientemente flexible como para beneficiarse de varias bibliotecas. La diferencia clave entre ellos es la dependencia que cada capa tiene de otras capas, así como la estrecha unión que tienen entre sí.

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

No es un caso de preferencia, realmente depende del contexto de su aplicación, como la mayoría de las cosas en el mundo del desarrollo de software, no hay verdades absolutas.

He escrito un artículo simple sobre MVP , puedes leerlo aquí:

Avenging – MVP de Android

Tal vez le muestre algunas de las ventajas de este patrón, por otro lado, tiene un Diálogo de Android donde Florina Muntenescu habla sobre MVVM aquí.