This document outlines the Model-View-ViewModel (MVVM) pattern and compares it to related patterns like MVC. It defines the key components in MVVM - the model, view, and view model. The view model acts as an adapter between the model and view, containing business logic and handling data binding. Benefits of MVVM include testable view models and a cleaner separation of concerns between the view/controller and underlying data/logic. ReactiveCocoa is mentioned as a framework that can provide the data bindings in MVVM. Core Data is one option for building the model/data layer.