Design patterns
Model-View-Controller design pattern
Model
In MVC, the object that holds your application data and defines how to manipulate it. (e.g.. AlbumView.swift).
View
In MVC, the objects that are in charge of the visual representation of the Model and the controls the user can interact with; basically, all the UIView-derived objects. E.g. the AlbumView class.
Controller
In MVC, the mediator that coordinates all the work. It accesses the data from the model and displays it with the views, listens to events and manipulates the data as necessary. E.g. the ViewController.
MVC diagram
See evernote
Singleton pattern
Facade design pattern
Decorator design pattern
Extensions
Delegation
Adapter design pattern
Observer design pattern
Notifications
Key-Value Observing (KVO)
* An object can ask to be notified of any changes to a specific property, ether its own or that of another object.
Memento Pattern
Archiving