Most of iOS Developers are familiar with MVC (Model-View-Controller). Some call it Massive View Controller. That’s certainly how it felt at the time. One of the key architectural changes I would make would be to use an alternative to Model-View-Controller called Model-View-ViewModel (MVVM).
Model-View-ViewModel (MVVM) is basically another architectural paradigm for GUI applications. Although it seems similar to MVC (except with a ViewModel object in place of the controller), there’s one major difference — the view owns the view model. Unlike a controller, a view model has no knowledge of the specific view that’s using it.
There are three really important points about MVVM:
– MVVM is compatible with your existing MVC architecture.
– MVVM makes your apps more testable.
– MVVM works best with a binding mechanism.