¿Son útiles MVP (Model View Presenter) en el proyecto de Android o pérdida de tiempo y esfuerzo?

No solo es útil, es MUY útil.

Solo un ejemplo:

Suponga que una aplicación tiene un campo EditText donde ingresa una dirección y un botón ENCONTRAR que conduce a una página de resultados de búsqueda.

Si no usa MVP o cualquier otra arquitectura, debe poner todo dentro de su Activity o Fragment :

findButton.setOnClickListener (nueva View.OnClickListener () {
@Anular
public void onClick (Ver vista) {
callTheNetworkSearchMethod (); }
});

Ahora, ¿qué sucede si desea cambiar la API de punto final de su dirección de búsqueda? De esta manera, debe cambiar esa Actividad para todo, incluso la API de punto final. ¿Pero es razonable? Definitivamente no.

En un proyecto de equipo, cuando el desarrollador principal revisa la característica que ha desarrollado, descubre que toda la Actividad se cambia por solo agregar una única funcionalidad. Si hay otro desarrollador trabajando en agregar otra función a la misma Actividad, incluso podría tener conflictos y tener que dedicar un tiempo a resolverlo.

Todas las mejoras anteriores y muchas otras están a su alcance utilizando MVP, en el que simplemente escribe:

findButton.setOnClickListener (nueva View.OnClickListener () {
@Anular
public void onClick (Ver vista) {
mPresenter.doWhenFindButtonIsClicked (); }
});

Ahora, si desea cambiar algo cuando se hace clic en el botón ENCONTRAR, lo haría en Presenter y la Vista permanecerá intacta.

Este es uno de los aspectos más importantes del uso de patrones arquitectónicos, llamado ‘separación de preocupaciones’.

Si está interesado en saber más sobre cómo MVP puede ayudar con un proyecto de Android, junto con una aplicación de muestra completa, consulte mi artículo MVP.

Por lo que creemos en Mind Studios, MVP es donde debe comenzar si sus fondos se están agotando. Su producto mínimo viable le permite hacer muchas cosas: lanzar su producto, recopilar los comentarios de la audiencia, analizarlos, realizar mejoras en la versión actual por el bien del usuario satisfecho; No hace falta decir que MVP es una especie de prototipo para garantizar que su producto sea eximido con éxito en el mercado 😉

Si va a tener otros clientes basados ​​en Java, puede ser un buen plan reutilizar la lógica de Presenter en ellos. Entonces sí. Si no, no veo ninguna motivación MVP en una sola aplicación de Java. En la mayoría de las implementaciones, es más fácil escribir pruebas unitarias en MVC en comparación con MVP.

Me parece bastante útil, por supuesto, si su aplicación es súper simple y no escala, debería usar la antigua arquitectura de modelo de vista.

Pero si desea tener un MVP de producto escalable y comprobable es una buena opción, también una vez que lo domine, se alegrará de haber hecho el esfuerzo inicial.

He escrito una pequeña publicación de blog exactamente sobre esto en MVP que puede ayudar a aclarar algunas de sus dudas: Avenging – Android MVP

Quiero decir que existe un patrón MVC / MVP básicamente en cualquier aplicación con un back-end de todos modos, tanto si quieres reconocerlo formalmente como si no. Así que hazlo o no, pero todavía está básicamente ahí.

Bueno, para las aplicaciones de Android, se sugiere el patrón MVP, ya que es bastante útil y útil. Android siempre ofrece una excelente plataforma para desarrollar y entregar aplicaciones. La mayoría de ustedes ya podría estar trabajando en esta plataforma. Si es así, lo sabría, la industria de la plataforma Android y la aplicación móvil en su conjunto tiene un futuro notable por delante.