/vmc2

Evolution of MVC on iOS with examples. MVC, VIPER, MVVM, MVP

Primary LanguageSwiftMIT LicenseMIT

v=mc2

Evolution of MVC on iOS with examples.

Sample app

App is very simple. It has just one button and one label. If user clicks button, app displays loading indicator and after a second displays some text. Also it has simple push navigation.

1. MassiveVC

Massive View Controller is usual approach for most iOS apps, UIViewController does almost everything

2. ControllerVC

Attempt to apply clean MVP arhitecture where UIViewController is Presenter (Controller).

3. VIPER aka 'MVP + Routing'

Famous VIPER adopted to reality of our super complex app. UIViewController is View.

4. MVVM

This is how Microsoft tech can be adopted to iOS + Routing. UIViewController is View.

5. MVP+Routing+Bindings

Reactive VIPER (MVP+Routing)

6. MVVM+Bindings

Reactive MVVM+Routing