Skip to content

Alternative Resources

Ryan Bush edited this page Jul 26, 2017 · 5 revisions

VIPER isn't an industry standard. Just as there is no one way to implement MVC or MVVM, there are many different flavors of VIPER. The templates version has very verbose names to reduce the vocabulary and make it as easy as possible to get into VIPER. However, seeing others implementations is very useful.

Brigade

Differences:

  • Uses original vocabulary. Makes it very difficult to start with VIPER as you have to now all the vocabulary to get a decent understand of what is happening. For example: their View.eventHandler = our View.presenter
  • Brigade has an additional DataManager layer. In practice this ends up turning the Interactor into a pass through layer. In our version, the Interactor interacts with Services directly.

Mutual Mobile (Original Authors)

Differences:

  • Uses original vocabulary. Makes it very difficult to start with VIPER as you have to now all the vocabulary to get a decent understand of what is happening. For example: their View.eventHandler = our View.presenter
  • Examples are Objective-C. This ends up with them using PONSOs instead of base objects, but their intent is the same: Have very simple data structures to represent Entities

An Architecture Exploration

This post is more of an exploration of many different architectures. It has decent break downs of each with explanations. Very useful to get some exposure to lots of different architectures.

Devil's Advocate

A good post that discusses some real concerns with VIPER and over architecting in general. I have listed it here mostly to really emphasize that VIPER isn't perfect.