Pasa de Junior a Senior en Android con Clean Architecture

Curso de Clean Architecture en Android

Toma las primeras clases gratis

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

Para crear un proyecto en Android, es muy importante que conozcas las bases suficientes para su desarrollo, así como algunas de las bibliotecas y componentes de arquitectura como Room, LiveData, ViewModel, etc. Conocer todo esto está muy bien, ya que te prepara para el siguiente paso que es saber cómo diseñar tu aplicación.

Diseñar una aplicación no es exclusivo de los diseñadores, también implica elaborar una solución bien estructurada y saber manejar los módulos y componentes de tu proyecto. Para ello, es importante que conozcas algo que seguramente te dará un gran valor agregado como desarrollador: implementar una arquitectura, y en específico, una que ha tomado gran relevancia con el paso de los años.

¿Qué es Clean Architecture?

Clean Architecture es un concepto que se hizo popular gracias a Robert C. Martin, conocido como “Uncle Bob”. Este concepto se basa en la premisa de estructurar el código de un proyecto en capas y cada una de estas se comunicarán con las capas más cercanas. Cada capa tiene una razón de ser y debe realizar tareas específicas.

Este diagrama contiene algunos de los términos que te ayudarán a familiarizarte con Clean Architecture:

vía The Clean Code Blog
  • Entidades: son reglas de negocio a nivel general, además contienen los Objetos de Transferencia de Datos (DTO). Al ser el nivel que está en el centro es el menos propenso a cambiar.
  • Casos de uso: también llamados “Interactors”, representan las reglas de negocio específicas del software. Esta capa está aislada de los cambios realizados en el framework como la base de datos o la interfaz de usuario.
  • Adaptadores de interfaz: convierten los datos de entidades y casos de uso a agentes externos como la interfaz de usuario o una base de datos. (en el caso de Android pueden ser los Presenters o ViewModels dependiendo del patrón de arquitectura que utilices).
  • Frameworks y controladores: son la capa más externa, que consiste en la interfaz de usuario, la base de datos, el cliente HTTP, etc. (en el caso de Android podemos encontrar por un lado a los Activities, Fragments, Dialogs y Views, mientras que por el otro lado están las implementaciones de bibliotecas como Retrofit, Room, etc).

¿Cuáles son sus beneficios?

  • Mayor independencia entre módulos: notarás que el nivel de acoplamiento entre vistas, lógica de negocio y framework se reduce considerablemente, por lo que intercambiar o incluso agregar piezas será más fácil.
  • Mejor estructura a nivel de proyecto: todos los módulos, paquetes y clases se volverán fáciles de ubicar, así como navegar por las funcionalidades.
  • Mayor comprobabilidad: Al ser independientes, será más rápido tanto identificar fallos como generar pruebas unitarias en cada capa de la arquitectura.

Si bien para proyectos sencillos no es recomendable ya que, en opinión de algunos, agrega complejidad de más, en los proyectos que he trabajado en los últimos años, aún el proyecto más pequeño estaba en constante crecimiento, lo que implicaba que llegaran nuevas funcionalidades, y por ende, crecían los módulos y clases, por lo que manejar una arquitectura se volvía crucial para manejar la organización del proyecto.

Conclusiones

Si estás interesado en ir al siguiente nivel para desarrollar aplicaciones Android con mejor estructura y calidad, te invito a tomar el Curso de Clean Architecture para Android, disponible ya mismo en Platzi.

¡Te espero en clase! Kudos 🚀

Curso de Clean Architecture en Android

Toma las primeras clases gratis

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

0 Comentarios

para escribir tu comentario

Artículos relacionados