In the world of iOS development, it is common to hear the names of different design patterns thrown around. Each pattern is sold as a solution to the limitations of other ones, only to introduce new, various problems. Some of these get to the extreme of rejecting the foundations on which iOS apps are built. In this talk, we will explore the different ideas behind these patterns, their drawbacks, and how we can harmonize them
Mobile Fest 2018. Matteo Manferdini. A comparative approach to MVC, MVVM and VIPER: taking the best ideas without fighting against the platform
1. A COMPARATIVE APPROACHTO
MVC, MVVM ANDVIPER
Taking the best ideas without fighting against the platform
Mobile Fest 2018, Kiev
matteomanferdini.com
Matteo Manferdini
2. • Hard to read
• Hard to maintain
• Hard to test
2011
5. FIXING MVC ( ? )
ControllerView Model
View Presenter Interactor Entity
Wireframe
Data Store
View Controller View Model Model
6. MVC'S HIDDEN COMPLEXITY
• Separation of concerns
• Vertical information flow
• State
• View controller
communication
• Parallelism
Controller
View
Model
Controller
View
Model
13. –Concepts in Objective-C Programming
One can merge the MVC roles played by an object,
making an object, for example, fulfill both the
controller and view roles—in which case, it would be
called a view controller. In the same way, you can also
have model-controller objects.