I used MVVM to create this app. MVVM is more testable compared to MVC. With MVC, we would have to worry about being tightly coupled to a view, but with MVVM, the business logic and UI logic are separated (between ViewModel and ViewController).
With MVVM, it's also easier to make changes/updates, we just have to mostly edit the ViewModel, while binding new inputs to it from the View Controller.
For the data binding, I used the concept of Boxing. Other MVVM ways of data binding include KVO, Reactive Programming, and delegates.
- Open Xcode
- Click the run button
- To run tests,
Command + U