UIViewController subclass. ▸ Your data is stored directly in the UIViewController ▸ Your UIViews do almost nothing ▸ The Model is a dumb data structure ▸ Your Unit Tests cover nothing 5
HAVE? ▸ Balanced distribution of responsibilities among entities with strict roles. ▸ Testability usually comes from the first feature. ▸ Ease of use and a low maintenance cost. 6
of responsibilities divided between the Presenter and the Model, with the pretty dumb View ▸ Testability - Good, we can test most of the business logic due to the dumb View ▸ Ease of Use - Substantial amount of code, although idea is very clear 19
to MVP, but View has more responsibilities than the MVP’s ▸ Testability - View Model knows nothing about the View, this allows us to test it easily. The View might be also tested ▸ Ease of Use - It has almost the same amount of code as the MVP 22
champion in distribution of responsibilities. ▸ Testability - better distribution — better testability ▸ Ease of Use - You have to write huge amount of interface for classes with very small responsibilities. 26
good as VIPER in terms of distribution of responsibilities. ▸ Testability - Also comparable to VIPER ▸ Ease of Use - Great amount of classes with very small responsibilities, but clearer than VIPER 30