10. MKMapView
• UIView subclass
• Based on adding “annotations”
• = model classes
• Support for user’s location
• Customizable maps & annotations
• Delegate-based API
11. MKAnnotation
• Protocol that enables model class for
showing up on maps
• coordinate, title, subtitle
• MKPlacemark
• conforms to MKAnnotation
• country, state, city, address
12. MKAnnotationView
• View related to a particular
MKAnnotation instance
• Reused in the map view
• MKPinAnnotationView
• The classic “iOS map pin”
• Three colors
13. Core Location
• Access to GPS module
• Configurable precision (vs. time)
• Significant Location Changes
• May run on background
14. CLLocationManager
• Provides callbacks for location and
heading
• Delegate based
• Check for availability and state of the
location services before using
15. CLGeocoder
• Allows geocoding and reverse
geocoding
• Does not use Google API
• ... doesn’t work perfectly outside the USA
• Block based
18. System dialogs
• Allow performing usual tasks in
a consistent manner
• Complete process handling
• Delegate based
19. Address Book
• Creating and searching contacts
• Allows manual access via C API
• ABAddressBookCreate
• ABAddressBookCopyArrayOfAllPeople
• ABAddressBookSave
• Contains predefined dialogs
22. ABNewPersonViewController
• System dialog for creating a contact
• May be pre-initialized
ABPersonViewController
• System dialog for displaying a contact
• Optional editing
23. UIImagePickerController
• System dialog for picking a photo
• Uses “sourceType” flag to determine
source
• camera, library, saved photos
• Check for camera before touching it
• Delegate based
25. MFMessageComposeViewController
• System dialog for composing an
SMS message
• No MMS / attachments
• May be pre-filled with message body
and recipients (string array)
• + (BOOL) canSendText;
27. Twitter API
• Native Twitter support
since iOS 5
• Uses Twitter app for
authentication
• Twitter uses OAuth 1.0a
under the hood =>
secure, hard to
implement
28. TWTweetComposeViewController
• System dialog for composing an
Tweet
• Text, Images, URLs
• add methods return NO if length exceeds 140 chars
• Block based
• TWTweetComposeViewControllerCompletionHandler
• + (BOOL) canSendTweet;
29. Facebook iOS SDK
• Facebook publishes official iOS SDK
• https://github.com/facebook/facebook-ios-sdk
• Requires Facebook application (web)
• Uses official Facebook app for
authentication
• Alternatively: web authentication, embedded FB authentication dialog
• Uses URL scheme handling
34. GCD
• Working with NSThread is difficult
• GCD makes an abstraction above
threads
• C API, functions/macros starting with
“dispatch_” prefix
35. Dispatch Queue
• Queue of blocks to be performed
• FIFO, synchronized
• Reference-counted
• dispatch_queue_create ➞ dispatch_release
• One queue per use-case
38. NSOperation
• Abstraction above “operation”
• Meant to be subclassed
• main - code to be executed
• start - start the operation
• cancel - set the cancel flag
• Operation priority
• Dependencies
• [op1 addDependency:op2];
41. NSOperationQueue
• NSOperations are not meant to be
run directly
• NSOperationQueue runs the
operations correctly
• Configurable number of concurrent
operations