The following diagram shows the structure of the app:
![](https://static.packt-cdn.com/products/9781788475709/graphics/assets/1ff0be8c-3c03-4f93-8282-f73346fd6acb.png)
The following diagram shows the structure of the app:
In iOS apps, data is often presented using a table view. Table views are highly optimized for performance; they are easy to use and to implement. We will use a table view for the list of to-do items.
A table view is usually represented by UITableViewController, which is also the data source and delegate for the table view. This often leads to a massive table view controller, because it is doing too much: presenting the view, navigating to other view controllers, and managing the presentation of the data in the table view.
Sometimes, it's a good idea to split up the responsibility...