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 el 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.

Índice

  • 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

Garantía de satisfacción 100% de Leanpub por 60 días

Durante los 60 días posteriores a la compra, puedes obtener un reembolso del 100% en cualquier compra de Leanpub, en dos clics.

Técnicamente, esto es arriesgado para nosotros, ya que tendrás los archivos del libro o curso de cualquier manera. Pero estamos tan seguros de nuestros productos y servicios, y de nuestros autores y lectores, que nos complace ofrecer una garantía de devolución total del dinero para todo lo que vendemos.

Solo puedes descubrir qué tan bueno es algo probándolo, y debido a nuestra garantía de devolución del 100% del dinero, ¡literalmente no hay riesgo al hacerlo!

Entonces, no hay razón para no hacer clic en el botón Agregar al carrito, ¿verdad?

Ver términos completos...

Gane $8 por una compra de $10, y $16 por una compra de $20

Pagamos regalías del 80% en compras de $7.99 o más, y regalías del 80% menos una tarifa fija de 50 centavos en compras entre $0.99 y $7.98. Usted gana $8 en una venta de $10, y $16 en una venta de $20. Así que, si vendemos 5000 copias no reembolsadas de su libro por $20, usted ganará $80,000.

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

De hecho, los autores han ganadomás de $14 millones escribiendo, publicando y vendiendo en Leanpub.

Aprenda más sobre escribir en Leanpub

Actualizaciones gratuitas. Sin DRM.

¡Si compras un libro de Leanpub, recibirás actualizaciones gratuitas mientras el autor actualice el libro! Muchos autores utilizan Leanpub para publicar sus libros mientras los escriben. Todos los lectores reciben actualizaciones gratuitas, sin importar cuándo compraron el libro o cuánto pagaron (incluso si fue gratis).

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

Finalmente, los libros de Leanpub no tienen ninguna protección DRM sin sentido, por lo que puedes leerlos fácilmente en cualquier dispositivo compatible.

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

Escriba y Publique en Leanpub

¡Puede usar Leanpub para escribir, publicar y vender fácilmente libros electrónicos y cursos en línea, tanto en progreso como terminados!

Leanpub es una plataforma potente para autores serios, que combina un flujo de trabajo de escritura y publicación simple y elegante con una tienda enfocada en la venta de libros electrónicos en progreso.

Leanpub es una máquina de escribir mágica para autores: solo escriba en texto plano y, para publicar su libro electrónico, simplemente haga clic en un botón. (O, si está produciendo su libro electrónico a su manera, ¡incluso puede subir sus propios archivos PDF y/o EPUB y luego publicar con un solo clic!) Realmente es así de fácil.

Aprenda más sobre escribir en Leanpub