VIPER (View, Interactor, Presenter, Entity e Router)

VIPER (View, Interactor, Presenter, Entity and Router) è un modello di progettazione per lo sviluppo di software che sviluppa codice modulare basato su un'architettura di progettazione pulita. I moduli in VIPER sono orientati al protocollo e ogni funzione, input e output di proprietà viene eseguita tramite set specifici di regole di comunicazione.

VIPER viene spesso utilizzato per sviluppare app per smartphone ed è ampiamente utilizzato in iOS insieme a Swift, il linguaggio di programmazione di Apple. VIPER si basa su principi di progettazione SOLIDA, in particolare il principio di responsabilità unica.

Le parole rappresentate nell'acronimo VIPER indicano i tipi di moduli nel design pattern:

  • Vedi (noto anche come controller di visualizzazione): entrambi visualizzano le informazioni per l'utente e rilevano l'interazione dell'utente. Il presentatore è l'unico modulo con cui il modulo Visualizza è in contatto.
  • Interactor: Manipola entità o modelli e recupera e archivia i dati.
  • Presentatore: Contiene l'interfaccia utente e prepara i dati per la presentazione. Il Presenter contatta l'Interactor per le richieste di dati, la View per presentare i dati preparati all'utente e il Router per consegnare gli oggetti.
  • Entità: I modelli di dati manipolati dall'Interactor.
  • router (noto anche come wireframe): gestisce la navigazione nel modulo o nell'applicazione. Crea la vista e collega il relatore in modo che funga da output per l'interactor. Contatta il relatore per instradare le richieste.

VIPER

L'astrazione del codice negli strati di entità, logica di programma e dispositivi e interfacce esterne è una caratteristica comune in VIPER e nelle architetture di design pulito in generale.