Now you can begin extracting view models from any view controller that has good unit tests. Doing so introduces some separation between the view controller code and the actual manipulation of UIKit views. The view model will contain some of your business logic. The view controller will manage the UI at a higher abstraction.
But MVVM is just one approach for improving traditional model-view-controller code. Another UI pattern that lets us move more business logic out of the view controller is model-view-presenter (MVP). In the next chapter, we’ll continue refactoring our view controller, this time to MVP.