Cactus kan uw bedrijf helpen voordeel te halen uit AI via “StartAI”, het AI-programma van Agoria en Vlaio

Mejores Prácticas para iOS. Parte 3: Arquitectura

Como continuación de Parte 2: Estilo de Código Swift

Nunca creas en «hagámoslo rápido y luego lo refactorizamos».

Hablemos sobre los patrones de diseño de arquitectura comunes.

Comenzamos con el diseño VIPER. ¿Por qué?
Es la mejor práctica para descomponer tu sistema en muchos bloques pequeños de responsabilidad única: es simple y no requiere mucho tiempo.
Mucha gente escribe materiales teóricos sobre VIPER y sugiere que un proceso de desarrollo con arquitectura limpia requiere mucho tiempo.

Pero no es cierto.

¿Por qué?

  • Primero – Podemos generar mucho código reutilizable usando el generador de código Generamba y nuestras propias plantillas. *Descubriremos cómo trabajar con Generamba en nuestros próximos artículos.
  • Segundo – Cuando trabajamos con VIPER, desarrollamos nuestra aplicación utilizando los principios S.O.L.I.D. Esto significa que cada componente tiene una sola responsabilidad. Los componentes dependen de abstracciones. El código depende de las clases: se inyectan en los configuradores de módulos. Como resultado, tenemos un sistema flexible que se puede extender y modificar rápidamente.
  • Tercero – Todos nuestros módulos tienen una excelente calidad de cobertura de código. Esto significa que tenemos la posibilidad de detectar olores de código / errores durante el desarrollo y corregirlos antes de la ronda de control de calidad. Esto también supone un ahorro de tiempo considerable.

Bien, descubramos cada componente.

Arquitectura iOS
VIPER — Arquitectura Limpia
  • Vista (View) – Es un UIViewController, que tiene salidas (outlets) a las vistas y maneja la interacción del usuario. La Vista tiene 2 protocolos.
    Entrada de la Vista (View Input) – implementado en la capa de Vista y llamado desde la capa del Presentador.
    *Mostrar información en la Vista, p. ej., showProgress()
    Salida de la Vista (View Output) – implementado en la capa del Presentador y llamado desde la capa de Vista.
    *Notificar al presentador sobre las acciones del usuario, p. ej., addNewItem()
  • Presentador (Presenter) – Es una clase que se comunica con la Vista, el Enrutador (Router) y el Interactor usando los siguientes protocolos.
    Salida de la Vista (View Output) – mira la sección de Vista.
    Salida del Interactor (Interactor Output) – implementado en la capa del Presentador y llamado desde la capa del Interactor.
    *Notificar al presentador sobre actualizaciones, p. ej., dataDidLoad()
    Entrada de la Vista (View Input) – mira la sección de Vista.
    Entrada del Interactor (Interactor Input) – implementado en la capa del Interactor y llamado desde la capa del Presentador.
    *Solicitar actualizaciones, p. ej., loadItems()
    Entrada del Enrutador (Router Input) – implementado en la capa del Enrutador y llamado desde la capa del Presentador.
    *Navegar entre módulos, p. ej., showDetailsModule()
  • Interactor – Es una clase que se comunica con el Presentador y las Entidades. El Interactor tiene 2 protocolos.
    Entrada del Interactor (Interactor Input) – mira la sección del Presentador.
    Salida del Interactor (Interactor Output) – mira la sección del Presentador.
  • Entidad (Entity) – Estas incluyen cualquier representación de datos como CoreData Entity, Realm Object, etc.
  • Configurador (Configurator) – Una cosa más.
    VIPER tiene muchos componentes que necesitamos inyectar entre sí.
    El Configurador inyecta capas entre ellos.

Esta fue una breve guía sobre la arquitectura limpia VIPER.

Continuar leyendo: iOS Best Practices. Part 4: S.O.L.I.D. >>>


Maxim Vialykh es el Líder Técnico de iOS en CactusSoft.

Experiencia Técnica
Lenguajes de programación: Swift, Objective-C, Java
Tecnologías y Plataformas: iOS, Android, Windows Phone, Amazon S3, Google Cloud, Google APIs, Facebook APIs
Frameworks: PhoneGap, Xamarin
Herramientas: Invision, SVN, Git, PhoneGap, Titanium, Xamarin, Sketch, xCode, IntelliJ IDEA

Compartir esta página
Dianas picture 2x
Si hay un proyecto que necesita ayuda o incluso un conjunto de habilidades que te falta, contáctanos.

Artículos similares

Contáctanos hoy para descubrir cómo Cactus
puede apoyar tu transformación digital