Muchos proyectos nacen de la idea de crear una aplicación móvil que cambie el mundo y resuelva un problema en particular. Gran parte de la población cuenta con un teléfono inteligente conectado a internet, por eso crear una aplicación es un paso primordial a la hora de lanzar tu idea de negocio.
Debido a esto las aplicaciones se han vuelto más robustas y deben contar con buenos features para llamar la atención de los usuarios, pero para los desarrolladores no solo es suficiente con que corra de buena manera con un código no optimizado porque mientras más grande se haga el proyecto más caótico será mantenerlo y esa gran idea se convertirá en una pesadilla.
Por esto es importante conocer de Arquitecturas, pero Arquitecturas de Diseño. De esta manera tendremos la estructura, funcionamiento e interacción entre diferentes partes del software.
Fue esa arquitectura que todos usaban en los inicios de Android y en estos momentos es muy escasa, pero en su momento fue la solución para separar la interfaz de usuario de la lógica de negocio. La primera cambia más frecuente que la segunda.
Tanto la vista como el controlador dependen del modelo y estarán definidos en un mismo lugar, puede ser en un Activity o Fragments. Una de las desventajas de esta arquitectura es que rompe uno de los principios SOLID y es el de Single Responsability.
Esta arquitectura resuelve varios detalles que se presentan cuando tienes una aplicación con MVC. No toda la responsabilidad debe caer en nuestro MainActivity porque esto podría ocasionar errores de fluidez haciéndola crashear al haber un proceso pesado en el hilo principal de la aplicación.
MVP organiza mejor la distribución de archivos y define las responsabilidades de otra forma.
Esto hace todo mucho más limpio y facilita la realización de unit tests a la lógica del presenter porque no esta unida a una vista específica o APIs de Android.
En general la arquitectura MVVM es diferente a MVP porque en esta arquitectura vamos a necesitar que los datos se estén manejado de una forma más automatizada y mucho más real time. Podemos usar varias versiones MVVM, una de ellas es data binding que es de las más antiguas y existen en muchos otros frameworks como .NET de Microsoft. También tenemos a Live data y RxJava o RxAndroid que no son más que características de la programación reactiva que podemos utilizar para hacer la actualización de datos más real time.
Cada una estas arquitecturas es importante conocerlas, ya sea para implementarlas en tu próximo proyecto o para cuando entres en una nueva empresa puedas saber cómo hacer la migración de una a otra. Por supuesto, todo esto y mucho más puedes aprenderlo a profundidad con muy buenos ejemplos en el Curso de Arquitectura para Android con la queridísima Anahí Salgado como profesora.
No dudes en tomarlo para seguir creciendo en tu carrera profesional.
nice
nice article