1.
Use Foundation to:
Create and manage collections such as arrays and dictionaries.
Access images and other resources stored in your app.
Create and manage strings.
Post and observe notifications.
Create date and time objects.
Automatically discover devices on IP networks.
Manipulate URL streams.
Perform code asynchronously.
2.
Use UIKit to:
Construct and manage your user interface.
Handle touch and motion-based events.
Present text and web content.
Optimize your app for multitasking.
Create custom user-interface elements.
3.
Use Core Data to:
Save and retrieve objects from storage.
Support basic undo/redo.
Validate property values automatically.
Filter, group, and organize data in memory.
Manage results in a table view with [NSFetchedResultsController
].
Support document-based applications