Learning the MVVM design pattern
The Model-View-ViewModel (MVVM) design pattern was originally invented for WPF (Windows Presentation Foundation) applications using XAML for separating the UI from business logic and taking full advantage of data binding. Applications architected in this way have a distinct ViewModel layer that has no dependencies on its user interface. This architecture in itself is optimized for unit testing as well as cross-platform development. Since an application's ViewModel classes have no dependencies on the UI layer, you can easily swap an iOS user interface for an Android one and write tests against the ViewModel layer. The MVVM design pattern is also very similar to the MVC design pattern discussed in the previous chapters.
The MVVM design pattern includes the following:
- Model: The model layer is the backend business logic driving the application and any business objects to go along with it. This can be anything from making web requests to a server to using...