Sample Code

Refactoring

Lighter view controllers

Dependency Injection

Modular Design

MVC

Apple’s MVC is not the same with traditional MVC, the main difference being that Apple does not allow the direct connection between view and model (this is assigned to the controller instead, which acts as the mediator). Whenever a cell updates itself using a model reference, the MVC pattern breaks (since this communication should have been done by the controller).

MVVM

VIPER

Redux

Coordinators / Routing