The mobile operating system that runs on the iPhone, iPad, iPod touch, and Apple TV.
- Read Programming with Objective-C
- Watch Try Objective-C
- Watch Try iOS
- Read Learn Objective-C on the Mac
- Read Beginning iOS 6 Development: Exploring the iOS SDK
- Read About Memory Management
- Read chapters 6 - 15, 17 - 19, 24, 28 - 30 of Cocoa Design Patterns
- Read and hack on sample code
- Read the Mobile Human Interface Guidelines
- Use Xcode (and the built-in Interface Builder) to compile an iOS app.
- Use the basic data types (NSInteger, NSString), collection objects (NSArray, NSDictionary), and know when to use them instead of C primitives (int, char, etc).
- Design and use basic design patterns like MVC, delegates, callbacks, and notifications.
- Understand the difference between using the mutable (NSMutableArray, NSMutableDictionary, NSMutableString) and immutable objects in Objective-C, their advantages and disadvantages.
- Describe and use ARC and MRC for memory management, as well as the rules of the retain/release/autorelease cycle.
- Use the basic display and navigation elements (UIWindow, UIView, UINavigationBar, UIToolbar, etc).
- Implement a solution using an UITableView, with navigation and a custom UITableViewCell.
- Implement the various iOS controls (UISwitch, UILabel, UISegmentedControl, etc).
- Understand and implement the usage of iPad specific UI controls, UIPopoverController and UISplitView.
- Implement network communications using AFNetworking or NSURLConnection.
- Use CoreLocation to get location coordinates.
- Access the cameras to take pictures or access pictures from the device's photo gallery.
- Implement UX and design best practices as prescribed by Apple.
- Meet App Store submission requirements and submit an app.
- Maintain an active ADC account and refer to the official documentation.
- Keep up-to-date on iOS news.
- Subscribe to iOS Dev Weekly
- Subscribe to objc.io
- Subscribe to NSHipster
- Learn about Grand Central Dispatch
- Learn about CocoaPods
- Create and manage Core Data objects and schemas.
- Decide when to best use a category vs subclassing
- Decide when to best use Singletons.
- Decide when to best use Delegates.
- Decide when to best use Proxies.
- Decide when to best use Closures.
- Implement animations using CoreAnimation and optimize drawing using CoreGraphics.
- Implement a multi-tasking environment free of race conditions (using appropriate locking techniques such as mutexes and semaphores, message passing, etc).
- Implement task driven concurrency using the Grand Central Dispatch (GCD) framework.
- Design and use APIs that prefer the use of closures instead of selectors and delegates.
- Create and use UIStoryboards to define and organize the application flow and transitions between screens.
- Debug memory leaks using NSZombieEnabled, Instruments, and other tools.
- Use CocoaPods to define your project's dependencies.
- Create an universal app that contains code for both the iPhone/iPod and iPad devices.