Please note, this blog entry is from a previous course. You might want to check out the current one.
Lecture #1 is an general introduction of the course with an overview about iOS, MVC and Object C.
As prerequisites for the course Paul Hegarty stresses the importance of being familiar with object oriented programming and that the course is not for absolute beginners.
In the iOS overview he shortly explains the different layers of iOS. Beginning with
- the core OS which includes the kernel, the file system, power management, security, C-API, …
- the core services which provide the basic functionality of core location, SQLite, file access, threading, …
- the media layer with core audio, OpenGL, ES, Quartz, …
- the cocoa touch layer providing multi touch, map kit, camera handling, controls, core motion, localization, the view hierarchy, …
The Model-View-Controller design pattern provides three objects
- a model: “What the application is”
- a controller: “How the model is presented to the user”
- a view: “Minions of the controller used to present the user interface”
which communicate with each other.
The controller talks directly to the model and the view. The model and the view should never speak to each other directly. They communicate with each other via the controller which acts as interpreter of the given information.
A view communicates with the controller via
- target actions – where the controller drops a target on itself and the view hands out an action to that target when things happen in the user interface,
- delegates – “action sending” is delegated from the view to the controller using protocols,
- data sources – where the data to be displayed in the view is provided by controller.
The model communicates with the controller using a notification mechanism where the model broadcasts and the controller “tunes in” and reacts accordingly.
Multiple MVCs communicate via their controllers.
Please study the slides before watching the course named “1. MVC and Introduction to Objective-C (September 27, 2011).