¿Qué es la arquitectura limpia en Android?

Con el período de crecimiento de la tecnología, es fundamental obtener la arquitectura correcta si desea crear un programa de software fantástico, razón por la cual es tan esencial. Si está interesado en crear aplicaciones de Android con la ayuda de una arquitectura limpia, ha llegado al lugar correcto. Aquí, no solo le brindamos el tutorial de MVVM (modelo vista-vista de modelo), sino que usaremos MVVM para conectarlo a través de una arquitectura limpia. Este artículo analizará cómo aprovechar este diseño para crear código desacoplado, probado y mantenible. Antes de saltar a nuestra discusión principal, entendamos primero MVVM.

MVVM

Model -View-ViewModel (MVVM) es un marco de diseño de software que separa la lógica del programa de los controles de la interfaz de usuario. Fue presentado por dos conocidos arquitectos de Microsoft , Ken Cooper y John Gossman , en 2005. Además, MVVM también se conoce como modelo-vista-archivador . Como muchos otros patrones de diseño, MVVM ayuda en la organización del código y la separación de programas en módulos, lo que hace que el desarrollo, la actualización y la reutilización del código sean más fáciles y rápidos. El diseño se usa a menudo en Windows y software de presentación de gráficos web. Windows Presentation Foundation (WPF) se ejecuta en la plataforma .NET de Microsoft y emplea el diseño MVVM. Silverlight también utiliza MVVM, un complemento multimedia comparable a Microsoft WPF Internet.  

Arquitectura limpia en Android

La arquitectura limpia es un método de desarrollo de software en el que debería poder identificar lo que realiza un programa simplemente mirando su código fuente. Las bibliotecas de lenguaje de programación, hardware y software necesarias para lograr el objetivo del programa deben volverse obsoletas. Al igual que otras filosofías de diseño de software, la arquitectura limpia tiene como objetivo proporcionar un proceso rentable para desarrollar código de calidad que funcione mejor, sea más fácil de modificar y tenga menos dependencias. Robert C. Martin estableció una arquitectura limpia y la promocionó en su blog, Uncle Bob, en 2011.

Bueno, te debes estar preguntando ¿ Por qué la Arquitectura es esencial? Vamos a cavar dentro. El propósito de todas las arquitecturas es administrar la complejidad de su aplicación. En un proyecto menor, es posible que no deba preocuparse por eso, pero puede ser un salvavidas en los más grandes. Creo que es posible que ya hayas visto esta imagen.

Clean-Architecture-in-Android

Los anillos anteriores representan diversos niveles de software en su aplicación. Antes de seguir adelante, hay dos puntos cruciales a tener en cuenta:

  1. El círculo más abstracto está en el centro, mientras que el anillo más concreto está en el exterior. El Principio de Abstracción es lo que esto se conoce como. De acuerdo con el Principio de abstracción, los círculos internos deben incluir la lógica comercial, mientras que los anillos externos deben contener detalles de implementación.
  2. La regla de dependencia es otro principio de arquitectura limpia. Esta regla establece que cada círculo solo puede depender del círculo interno más cercano a él, lo que permite que la arquitectura funcione.

Tal vez, ahora es el momento de entender ¿Por qué MVVM con una arquitectura limpia?

MVVM con arquitectura limpia

Su vista, es decir, (Actividad y Fragmentos), está separada de su lógica comercial mediante MVVM. Para proyectos pequeños, MVVM es suficiente, pero a medida que su base de código se vuelve más extensa, sus ViewModels comienzan a inflarse. Se vuelve un desafío separar las responsabilidades. En tales casos, MVVM con Clean Architecture es una opción adecuada. Va un paso más allá en la segregación de las responsabilidades de su base de código. Se abstrae la lógica de las acciones que se pueden realizar en su aplicación. Ahora, Clean Architecture también se puede combinar con la arquitectura Model-View-Presenter (MVP). Entonces, vamos con MVVM sobre MVP porque los componentes de la arquitectura de Android ya tienen una clase ViewModel incorporada, ¡no es necesario un marco MVVM!

Antes de seguir adelante, debe tener claro que el uso de Clean Architecture puede tener sus ventajas y desventajas . Vamos a comprobarlo uno por uno.

Ventaja de la arquitectura limpia

  • El código es más fácil de probar que con MVVM estándar.
  • Separación perfectamente curada (la ventaja más considerable).
  • Estructura de paquete fácil de usar.
  • Fácil de mantener el proyecto en marcha.
  • Su equipo podrá implementar nuevas funciones aún más rápido.

Desventajas de la arquitectura limpia

  • La curva de aprendizaje es un poco empinada. Puede tomar algún tiempo aprender cómo interactúan todos los niveles, especialmente si proviene de arquitecturas como MVVM o MVP simples.
  • Contiene muchas clases adicionales, por lo que no es adecuado para aplicaciones con un bajo nivel de sofisticación.

Ahora, veamos las capas involucradas en este proceso.

Combinando MVVM con arquitectura limpia

A continuación, le mostramos la representación gráfica de MVVM con Clean Architecture.

Punto a recordar:

  • Solo las capas externas pueden depender de las capas internas para la comunicación.
  • La cantidad de capas depende totalmente de usted: haga que se ajuste a sus requisitos.
  • En círculos íntimos, las cosas se vuelven más abstractas.

Capas de MVVM  

Existen diferentes puntos de vista sobre el número de niveles que debería tener la Arquitectura Limpia. El diseño no especifica capas separadas, sino que sienta las bases. El concepto es que ajustas el número de capas según tus necesidades. Aquí, para abreviar, usaremos cinco, échales un vistazo.

  • Presentación: esta es una capa que interactúa con la interfaz de usuario (IU).
  • Dominio: aquí se almacena la lógica empresarial de la aplicación.
  • Casos de uso: los interactuadores son otro nombre para ellos.
  • Datos: Todas las fuentes de datos se definen en un sentido amplio.
  • Marco: implementa la interfaz con el SDK de Android, así como implementaciones concretas de capas de datos.

¿Cuándo usar Arquitectura Limpia?

Es crucial recordar que la arquitectura limpia no es un remedio, sino que se puede aplicar a cualquier plataforma. Según el proyecto, debe determinar si cumple con sus requisitos. Si tu proyecto es grande y sofisticado, con mucha lógica de negocios, por ejemplo, la arquitectura limpia tiene muchas ventajas. Sin embargo, para tareas más pequeñas y simples, los beneficios pueden no valer la pena: terminará escribiendo más código y aumentando la complejidad con todas las capas, además de invertir más tiempo.

Publicación traducida automáticamente

Artículo escrito por yuvraj10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *