Before you begin your application, let’s discuss a key concept in application architecture: Model-View-Controller, or MVC. MVC is a design pattern used in iOS development. In MVC, every instance belongs to either the model layer, the view layer, or the controller layer. (Layer here simply refers to one or more objects that together fulfill a role.)

Figure 1.6 shows the flow of control in an application in response to user input, such as the user tapping a button.

Notice that models and views do not talk to each other directly; controllers sit squarely in the middle of everything, receiving messages and dispatching instructions.