Movil

Arquitectura de Android, la importancia de su implementación

el-software-es-flexible

Arquitectura de Android (Historia,Evolución,Implementación)

“Si cree que la buena arquitectura es cara, pruebe la mala”.

Brian Foote y Joseph Yoder

Y así empezamos este articulo, primero debemos comprender la importancia de tener una buena arquitectura en nuestro proyecto. Desde el momento en que entiendes estos no tendrás problema en invertir tiempo y dinero en implementar una arquitectura correcta, porque tarde que temprano resultara mas caro un proyecto con falencias de escalabilidad y potabilidad a raíz de una mala implementación de las tecnologías.

En esta ocasión daremos protagonismo al desarrollo de aplicaciones móviles de cuales diremos la siguiente afirmación; Por naturaleza y excelencia una buena aplicación móvil debe ser :

  • Rápidas
  • Fluidas
  • Seguras
  • Mantenibles

Y Android no es la excepción, dedicaremos este articulo a conocer la historia y la evolución de la arquitectura de Android, tocaremos temas como MVC, MVVC, MVP.

Pero antes vamos a hacer una pequeña aclaración PATRÓN DE DISEÑO VS ARQUITECTURA DE DISEÑO.

PATRÓN: Modelo que sirve de muestra para sacar otra cosa igual.

PATRÓN DE DISEÑO : Es una solución a un problema común de código que es reutilizable

Organiza un componente o elemento de la aplicación.

Acá te cuento algunos de los patrones de diseño mas comunes :

  • Singleton
  • Adapter
  • Builder
  • Factory

ARQUITECTURA : Arte y técnica de diseñar, proyectar y construir

ARQUITECTURA DE DISEÑO : Proporciona la estructura, funcionamiento e interacción entre
las partes del software

Organización a toda la estructura de la aplicación

  • MVC
    • Model-View-Controller
Android Architecture Patterns Part 1: Model-View-Controller ...
  • MVP
    • Model-View-Presenter
Cómo adoptar Model View Presenter en Android
  • MVP + Clean
  • MVVM
    • Model-View-ViewModel
Android MVVM Design Pattern - JournalDev
  • Android Jetpack
    • Arquitectura de componentes


Evolución de la arquitectura de Android

MVC (Model-View-Controller): Es donde teníamos todas las responsabilidades y todas las acciones de la aplicación en una sola clase, la clase activity (main.Activity).

MVP (Model-View-Presenter): Separa las capas de modelo donde vamos a tener todas las conexiones. Después tenemos un presentador; es la capa donde mantiene la comunicación entre el modelo de datos y la user interface. Después esta arquitectura tuvo una evolución, donde se decidió que deberíamos seguir los principios de la arquitectura limpia, la cual nos dice que debemos exponer las entidades y que las entidades deben ser lo mas importante de la aplicación, mas allá de todas las capas que estén por debajo.

MVVM (Model-View-ViewModel): en la vista tenemos activities y/o fragments, despues en la capa de view model vamos a tener clases que funcionen en un hilo adicional de la aplicación para eso vamos a tener clases como : AsyncTask, Rxjava y LiveData. Y por ultimo esta la capa de model que aquí vamos a tener toda la interacción con una base de datos para conectarla y hacer que los datos lleguen a la user interface.


Android Jetpack(ACTUAL): Arquitectura de componentes(network resources).

Si deseas conocer mas de arquitectura oficial de Android Jetpack ingresa a este link


Modelo de capas
Layers model

Aca podemos ver un resumen de la forma en que se encuetra distribuida un app movil :


Es importante conocer los principios SOLID para tener una buena arquitectura en Android, para ello dedicaremos un articulo completo para poder entender a profundidad de que se trata.

Beneficios de usar un arquitectura correcta en Android

  • Organiza el código para trabajar en equipo
  • Hace el código más intuitivo de leer y escribir
  • Organiza el código para trabajar en equipo
  • Permite mantener, testear e integrar nuevos features más rápido y fácil

Espero que les haya sido de utilidad este contenido, dejen en los comentarios algún tema en especial del cual deseen conocer.

Write A Comment

19 − 11 =