Escribe al autor
You can use this page to email Yair Carreno about Clean Architecture en iOS.
Sobre este libro
Difícilmente se podrá controlar lo que no se puede medir.
De esto se trata. Cuando se aplica Clean Architecture en las soluciones una de las consecuencias es proporcionar mecanismos que permitan medir y someter a pruebas cada pieza de software fundamental en la solución.
El reto no sólo se trata de iniciar un proyecto con una arquitectura que permita su progresiva evolución sino también mantenerla en una curva ascendente en cuanto a sus atributos de calidad.
En la medida que la Arquitectura de la solución permita hacer mediciones, probar y escalar de forma flexible, mejor serán los indicativos de cara al proyecto y por ende a la compañía.
La base del presente trabajo se fundamenta en los principios de Clean Architecture, el estilo de arquitectura que nos presentó años atrás Robert C. Martin. Es un texto enfocado a las soluciones diseñadas para iOS, sin embargo podría afirmar que el 90% de los conceptos aplican también para soluciones Android.
Lo primero que se desarrolla en el libro son los principios de diseño que son la base para la aplicación de los temas posteriores. Conceptos como inversión de dependencia, inversión de control e inyección de dependencia se exponen para su claro entendimiento, con el propósito adicional de saber diferenciar entre un concepto u otro.
Luego se revisa la relación entre los componentes a través de niveles y capas. Este análisis es necesario para ubicar cada componente con su respectivas responsabilidades en el lugar adecuado.
Una vez ubicado los componentes surge la necesidad de comunicarlos entre sí. Allí es donde el lector es orientado al capítulo de puertos y adaptadores para determinar los adecuados mecanismos de integración entre componentes de diferentes capas y niveles.
Continuando con el desarrollo del tema, se baja un poco más a nivel de detalle para analizar las alternativas de organización de los componentes en directorios o carpetas y cuáles podrían ser los límites establecidos entre ellos.
De esta forma se llega a dos capítulos imprescindible en el diseño de una solución móvil. Patrones de diseños y Consideraciones en la Arquitectura.
En patrones de diseño se exponen aquellos que patrones conocidos y recomendados para aplicar a las soluciones móviles. También se presentan unas innovadoras variables de patrones que podrían ser útiles para startups y compañías especializadas en este tipo de servicios.
En el capítulo que desarrolla las consideraciones en la arquitectura, se expone un conjunto de argumentos que podrían responder a preguntas que como equipo de desarrollo del producto solemos hacernos en el día a día mientras se implementa bajo el marco de Clean Architecture.
Este es un capítulo que espero sea polémico por la segura existencia de opiniones en otro sentido, ese es justamente uno de los objetivos que busco lograr con el presente trabajo. Inducir al lector a debatir y realizar sus propios análisis para que aplique la solución más adecuada en sus soluciones.
Posteriormente y para complementar los dos capítulos anteriores, se desarrolla las estrategias de orquestación entre datos locales (en memoria o caché) y datos remotos (APIs externas y otras fuentes). Una estrategia que más temprano que tarde debe considerarse en la mayoría de las soluciones.
Y para finalizar, el tema desarrollado en el capítulo sobre detalles de implementación corresponde a técnicas usadas propiamente en iOS que ayudan a aplicar Clean Architecture en un ámbito de código fuente.
Con este contenido y un par de anexos, se cierra el presente trabajo el cual espero sea de agrado y utilidad para el lector.
Sobre el autor
Yair is a Software Architect specialized in mobile solutions. For more than a decade he has been designing and developing products for different companies in different areas such as finance, entertainment, social.
He likes to teach and share his knowledge in one of his most passionate fields, software design, and development.