Sobre el Patrón Coordinador en iOS

Cuando aprendí a desarrollar aplicaciones para iOS uno de los tópicos que se incluyen es cómo manejar la navegación dentro de la aplicación o cómo ir de una pantalla a otra.

Para enfrentar este problema tenemos un mecanismo provisto por Apple y Xcode: Storyboards y Segues

Al principio me parecía algo tan natural, después de todo, usar las herramientas que te provee Apple es la mayoría de las veces una apuesta segura.

Esto funciona para aplicaciones pequeñas, pero una vez que tu aplicación crece te enfrentas a distintos problemas:

  • La navegación es estática y usando storyboards se suele salir de control fácilmente.
  • Los View Controllers terminan con código que corresponde a la navegación (demasiada responsabilidad)
  • Alto acoplamiento entre ViewControllers (porqué el ViewController A tiene que conocer que debe mostrar el ViewController B y es más, por qué debe saber cómo crear o inyectar dependencias a este ViewController B)
  • Código repetitivo
  • Problemas de reusabilidad
  • Uso de una misma pantalla en distintos contextos
  • A/B testing
  • Push Notifications

Coordinadores

La idea de un Coordinador es simple.

Continue reading