iOS 5 introduces over 200 new features and 1,500 new APIs, along with new development tools to help simplify and speed up application development. Obviously, we won't be able to cover all of these in a single class. Instead, this class focuses on the three most important changes: automatic reference counting, storyboards and iCloud storage, as well as examining a number of the more-specialized new features, from custom view containers to facial recognition.
During this class, you will get hands-on experience using many of the new features found in iOS 5. In particular, the class will focus on those features that can radically change how developers create applications: from graphically laying out the application's entire workflow to automating memory management. However, while these features can greatly simplify or speed up application development, they won't be big selling points in the App Store.
Developers who are already familiar with creating iOS apps using the 3.x or 4.x SDK, and who want to learn about the most exciting new features in iOS 5. As well as anyone who wants to add new iOS 5 features to their existing applications.
Students should have the following prerequisite knowledge prior to attending this course:
Experience using previous versions of the iOS SDK. Recommended: iOS 4.x experience. Recommended: to run code on an iOS device, you must bring a suitable test device (iPhone, iPad or iPod Touch) running iOS 5 or later, and you must enroll in Apple's iOS Developer Program ($99 per year, sign up at http://developer.apple.com/programs/ios/). For this class most of the hands-on exercises can be run in the simulator; however, you may run into exercises that require an iOS device to fully experience them.
Memory management is traditionally one of the most difficult aspects in iOS development--particularly for new developers. Automatic Reference Counting (ARC) greatly simplifies the development of new iOS applications by automating the most tedious aspects of memory management. This lesson begins by describing what ARC is and how ARC works. You will then learn the new rules and conventions needed to use ARC successfully. Additionally, while ARC greatly simplifies memory management, it cannot do everything. You will learn about all the little details that ARC cannot sweep under the rug, specifically: retain cycles and toll-free bridging with C libraries.
Interface Builder has traditionally simplified the development of views and controllers, letting developers graphically design their user interfaces and wire together UI events to methods in their code. Storyboards take this technology to the next level, letting developers graphically design the flow and segues between different views. With storyboards, you can rapidly design your application's skeleton, freeing you to focus your attention on the application's logic. This lesson will cover the different storyboard elements: scenes, containers, segues and relationships. You will learn how to interact with storyboards, including passing data back and forth across a segue or relationship, and programmatically loading storyboard elements. You will also look at the limits and restrictions placed on storyboards. Finally, you will get some hands-on experience building your own storyboards from scratch.
iCloud storage is probably the single most important new feature in the iOS 5 SDK. This technology lets developers automatically sync data across all their user's devices, from their iPhone and iPad, to even their Mac or PC. This lesson will provide a solid overview of iCloud storage's capabilities. The course will examine what iCloud does, what it doesn't do, and how it works. You will also learn about all the steps needed to enable iCloud storage in your own apps, and how you can simplify the process using the UIDocument and UIManagedDocument classes. Unfortunately, iCloud storage is too complicated to cover in depth in this class. In particular, you will not have time for a step-by-step walkthrough of implementing iCloud Storage. Students who want hands-on experience with all the implementation details should consider taking the "Implementing iCloud Storage" class.
The UIAppearance API lets developers easily customize the appearance of many UI control elements. In this lesson, you will learn which controls currently support the UIAppearance API. You will then look at methods for modifying a single control's appearance, modifying all copies of a control in the application, and automatically modifying a control's appearance based on its context.
With iOS 5, Apple has formalized the difference between container view controllers and content view controllers. Container view controllers are classes like UITabBarController or UINavigationController. While they may have a few UI elements, you primarily use them to display and manage other view controllers. Traditionally Apple created all the container view controllers, while you could only create the content view controllers. However, in iOS 5, you can now create your own custom containers as well. This lesson will cover the new API for creating custom container view controllers, as well as the rules for creating consistent view controller hierarchies.
iOS 5's new Twitter integration lets you easily add twitter support to any application. This lesson will start with simple Twitter interactions: displaying the tweet message view and setting its initial content. You will then learn how to directly access the Twitter API, when more power is needed.
iOS 5 introduces a range of new features for Core Data, from data encryption and multiple concurrency models to building hierarchies of managed object contexts. This lesson will look at these features. In particular, you will learn how they can be combined to rapidly implement powerful new features, like automatically saving data in the background.
Developers have been able to use Core Image on the Mac OS X desktop since 10.4. With iOS 5, it is now available on the iPhone and iPad as well. In this lesson, you will learn how to manipulate images using Core Image. This includes both applying filters and transforms to an image, as well as more advanced features like face recognition.
iOS 5 also introduced support for magazine and newspaper-like applications through the Newsstand API. In this lesson, you will learn the main features and limits of the Newsstand API, how it works and how you might implement your own Newsstand-based applications. Unfortunately, implementing a Newsstand app requires setting up a dedicated server for content and push notifications. Because of the complexity involved, this is beyond the scope of this class.