VIPER (Vista, Interactor, Presentador, Entidad y Enrutador)

VIPER (View, Interactor, Presenter, Entity and Router) es un patrón de diseño para el desarrollo de software que desarrolla código modular basado en una arquitectura de diseño limpio. Los módulos en VIPER están orientados a protocolos y cada función, entrada y salida de propiedad se realiza mediante conjuntos específicos de reglas de comunicación.

VIPER se usa a menudo para desarrollar aplicaciones para teléfonos inteligentes y se usa mucho en iOS junto con Swift, el lenguaje de programación de Apple. VIPER se basa en principios de diseño SÓLIDOS, específicamente el principio de responsabilidad única.

Las palabras representadas en el acrónimo VIPER indican los tipos de módulos en el patrón de diseño:

  • Ver (también conocido como controlador de vista): ambos muestran información para el usuario y detectan la interacción del usuario. El presentador es el único módulo con el que tiene contacto el módulo Ver.
  • Interactor: Manipula entidades o modelos y obtiene y almacena datos.
  • Presentador: Contiene la interfaz de usuario y prepara los datos para la presentación. El Presentador contacta al Interactor para solicitudes de datos, la Vista para presentar los datos preparados al usuario y el Enrutador para entregar objetos.
  • Entidad: Los modelos de datos que son manipulados por el Interactor.
  • Enrutador (también conocido como wireframe): controla la navegación en el módulo o la aplicación. Crea la Vista y conecta el Presentador para que actúe como salida para el Interactor. Se pone en contacto con el presentador para encaminar las solicitudes.

VIPER

La abstracción del código en las capas de entidades, la lógica del programa y los dispositivos e interfaces externas es una característica común que se ve en VIPER y en las arquitecturas de diseño limpio en general.