Clean Architecture en iOS
$9.99
Precio mínimo
$19.99
Precio sugerido

Clean Architecture en iOS

Principios y buenas prácticas de diseño aplicadas 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 Carreno
Yair Carreno

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.

Tabla de contenidos

  • Prefacio
    • Acerca del libro
    • Audiencia
    • Consultas y/o contacto
  • Principios de diseño
    • Inversión de dependencia
    • Inversión de control
    • Inyección de dependencia
  • Niveles en una aplicación
    • Relación entre capas y niveles
    • ¿Cómo determinar el nivel de una capa?
    • ¿Por qué es importante distinguir el nivel de una capa con respecto a otra capa?
    • ¿Cómo garantizar que la regla de la dependencia se aplique y mantenga correctamente?
  • Puertos y Adaptadores
    • Diseño de puerto de entrada (Input Port)
    • Diseño de puerto de salida (Output Port)
    • Buenas prácticas en diseño de puertos
    • Beneficios adquiridos al usar puertos
  • Organización del proyecto
    • Límites de la aplicación (Boundaries)
    • Diseño monolítico o modular
    • Organización de directorios y fuentes
    • Procesos de desarrollo de software
  • Patrones de diseño
    • Dependency Injection
    • Model View ViewModel
    • Coordinator
    • Repository
    • Plugin
    • Data Mapper
    • Reactive patterns
  • Consideraciones en la arquitectura
    • La necesidad de elementos mediadores
    • La ubicación de las reglas de negocio en el dominio
    • Diferenciar entre lógica de aplicación y lógica de dominio
    • Diferenciar entre entidad del modelo y entidad de persistencia
    • Cuando decidir entre Entities o Value Objects
    • Estructuras de entrada y salida en Use Cases
    • Sobre utilizar los Entities como objeto de entrada y salida
    • Mapeo entre las fronteras
    • Cuando es necesario asignar interfaces
    • ¿Organizar la capa Domain en un contexto aparte?
    • ¿Organizar la capa Data en un contexto aparte?
    • Módulos para compartir recursos entre features
    • ¿Pragmatismo en la Arquitectura?
  • Estrategias para administrar información local y remota
    • Single source of truth
    • Offline-first
    • Online-first
    • Respaldo entre fuentes
  • Explorando detalles de implementación
    • Configuración de módulos
    • Configuración de múltiples entornos
    • Estrategias para aplicar mocking
    • Linters y herramientas para validar cumplimiento con la arquitectura
    • Templates para agilizar implementación de patrones.
  • Apéndice A
    • Relaciones de asociación, agregación y composición entre elementos
    • Diseño teniendo en cuenta las relaciones
  • Notas

Leanpub incondicional, sin riesgo, 100% de felicidad garantizada

Durante los primeros 60 días de compra, puedes obtener un reembolso del 100% de cualquier compra Leanpub, en dos clics. Procesamos las restituciones manualmente, así que puede tomarse unos días en aparecer. Véase términos completos.

80% de regalías. Gana $16 en un libro de $20.

Pagamos 80% de regalías. No es un error tipográfico: ganas $16 en una venta de $20. Si vendemos 5000 copias no reembolsadas de tu libro o curso por $20, ganarás $80,000.

(Sí, algunos autores ya han ganado mucho más que eso en Leanpub.)

De hecho, los autores han ganadomás de $12 millonesescribiendo, publicando y vendiendo en Leanpub.

Aprende más sobre cómo escribir en Leanpub

Actualizaciones gratis. Libre de DRM.

¡Si compras un libro Leanpub obtienes actualizaciones gratis siempre y cuando el autor actualice el libro! Varios autores usan Leanpub para publicar sus libros en progreso mientras los escriben. Todos los lectores obtienen actualizaciones gratis, independientemente de cuándo compraron el libro o cuánto pagaron (incluyendo si fue gratis).

La mayoría de los libros Leanpub se encuentran disponibles en PDF (para computadores) y EPUB (para teléfonos, tabletas, y Kindle). Los formatos que un libro incluye se muestran en la esquina superior derecha de esta página.

Finalmente, los libros Leanpub no tienen ninguna de las cosas sin sentido sobre protección de copia DRM, así que puedes leerlos fácilmente en cualquier dispositivo que se soporta.

Aprende más sobre los formatos de Leanpub y dónde puedes leerlos

Escribir y publicar en Leanpub

Los autores y editores usan Leanpub para publicar libros electrónicos sorprendentes en curso y completados, como éste. ¡También puedes utilizar Leanpub para escribir, publicar y vender tu libro! Leanpub es una potente plataforma para autores serios, que combina un flujo de trabajo de escritura y publicación simple y elegante con una tienda centrada en la venta de libros electrónicos en progreso. Leanpub es una máquina de escribir mágica para los autores: basta con escribir en texto plano, y para publicar tu libro electrónico, simplemente haz clic en un botón. Realmente es así de fácil.

Más información sobre cómo escribir en Leanpub