VIPER (View, Interactor, Apresentador, Entidade e Router)

VIPER (View, Interactor, Apresentador, Entidade e Router) é um padrão de design para desenvolvimento de software que desenvolve código modular baseado em arquitetura de design limpa. Os módulos no VIPER são orientados ao protocolo e cada função, entrada e saída de propriedade é realizada por meio de specific sets of communication rules.

VIPER é frequentemente usado para desenvolver aplicações para smartphones e é muito usado no iOS juntamente com a Swift, a linguagem de programação da Apple. VIPER é baseado nos princípios de design SOLID, especificamente o princípio de responsabilidade única.

As palavras representadas na sigla VIPER anotam os tipos de módulos no padrão de design:

  • >strong>View (também conhecido como o controlador de visualização): Ambos exibem informações para o usuário e detectam a interação do usuário. O Apresentador é o único módulo com o qual o módulo View tem contato.
  • Interactor: Manipula entidades ou modelos e busca e armazena dados.
  • Presenter: Contém a interface do usuário e prepara os dados para apresentação. O Apresentador contacta o Interactor para pedidos de dados, a Vista para apresentar os dados preparados ao utilizador e o Router para entregar os objectos.>
  • > forte>>Entity: Os modelos de dados que são manipulados pelo Interactor.
  • >Router>/strong> (também conhecido como wireframe): Manipula a navegação no módulo ou aplicação. Cria a View e liga o Presenter para atuar como saída para o Interactor. Contata o Apresentador para rotear pedidos.

VIPER

A abstração do código nas camadas de entidades, lógica de programa e dispositivos e interfaces externas é um ponto comum visto em VIPER e em arquiteturas de design limpo em geral.