Leanpub Header

Skip to main content

Clean Architecture en iOS

Principios y buenas prácticas de diseño aplicadas en iOS.

Este trabajo será valioso para aplicar en cualquier compañía, startup o iniciativa personal.

Ya sea para aplicar refactor a un proyecto existente o para iniciar una nueva aplicación móvil con sólidas bases de Arquitectura.

Ha sido una pieza de referencia invaluable para mis proyectos y espero que también se convierta en lo mismo para el lector.

The author is letting you choose the price you pay for this book!

Pick Your Price...
PDF
EPUB
WEB
26,071Words
About

About

About the Book

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.

Share this book

Price

Pick Your Price...

Minimum price

$9.99

$19.99

You pay

$19.99

Author earns

$15.99
$

All prices are in US $. You can pay in US $ or in your local currency when you check out.

EU customers: prices exclude VAT, which is added during checkout.

...Or Buy With Credits!

Number of credits (Minimum 1)

1
The author will earn $12.00 from your purchase!
You can get credits monthly with a Reader Membership

Author

About the Author

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.

Contents

Table of Contents

Prefacio

  1. Acerca del libro
  2. Audiencia
  3. Consultas y/o contacto

Principios de diseño

  1. Inversión de dependencia
  2. Inversión de control
  3. Inyección de dependencia

Niveles en una aplicación

  1. Relación entre capas y niveles
  2. ¿Cómo determinar el nivel de una capa?
  3. ¿Por qué es importante distinguir el nivel de una capa con respecto a otra capa?
  4. ¿Cómo garantizar que la regla de la dependencia se aplique y mantenga correctamente?

Puertos y Adaptadores

  1. Diseño de puerto de entrada (Input Port)
  2. Diseño de puerto de salida (Output Port)
  3. Buenas prácticas en diseño de puertos
  4. Beneficios adquiridos al usar puertos

Organización del proyecto

  1. Límites de la aplicación (Boundaries)
  2. Diseño monolítico o modular
  3. Organización de directorios y fuentes
  4. Procesos de desarrollo de software

Patrones de diseño

  1. Dependency Injection
  2. Model View ViewModel
  3. Coordinator
  4. Repository
  5. Plugin
  6. Data Mapper
  7. Reactive patterns

Consideraciones en la arquitectura

  1. La necesidad de elementos mediadores
  2. La ubicación de las reglas de negocio en el dominio
  3. Diferenciar entre lógica de aplicación y lógica de dominio
  4. Diferenciar entre entidad del modelo y entidad de persistencia
  5. Cuando decidir entre Entities o Value Objects
  6. Estructuras de entrada y salida en Use Cases
  7. Sobre utilizar los Entities como objeto de entrada y salida
  8. Mapeo entre las fronteras
  9. Cuando es necesario asignar interfaces
  10. ¿Organizar la capa Domain en un contexto aparte?
  11. ¿Organizar la capa Data en un contexto aparte?
  12. Módulos para compartir recursos entre features
  13. ¿Pragmatismo en la Arquitectura?

Estrategias para administrar información local y remota

  1. Single source of truth
  2. Offline-first
  3. Online-first
  4. Respaldo entre fuentes

Explorando detalles de implementación

  1. Configuración de módulos
  2. Configuración de múltiples entornos
  3. Estrategias para aplicar mocking
  4. Linters y herramientas para validar cumplimiento con la arquitectura
  5. Templates para agilizar implementación de patrones.

Apéndice A

  1. Relaciones de asociación, agregación y composición entre elementos
  2. Diseño teniendo en cuenta las relaciones

Get the free sample chapters

Click the buttons to get the free sample in PDF or EPUB, or read the sample online here

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earned over $14 million writing, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub