A rapid introduction that builds practical knowledge of iOS development from the ground up. This course carefully weaves topics in a way that reveals the inner workings of key mechanisms of Cocoa touch such as the responder chain, the view hierarchy, and target-action. The goal is not only to understand how to make an iOS app work, but also to understand why it works the way it does — insight that will help in resolving issues, learning new topics, and making better-informed design decisions.
Using Xcode – Learn to use Xcode to edit, build, and debug your projects. A lot of the coolest features of Xcode can take quite a while to discover on your own, so we'll make sure you learn all of our favorite techniques.
Swift Essentials – Get a quick review of the basics of the Swift language, as well as commonly used features of the Foundation framework — value classes, collections, and the NSKeyValueCoding informal protocol. (Note: if you need a more comprehensive introduction to Swift, our companion course, Swift Programming, can get you up to speed quickly.)
Bridging to Objective-C – We'll show you how to correctly bridge between Swift code and Objective-C classes and methods, as well as C library functions and low-level types.
Managing Memory – Learn the best techniques for working with both manual and automatic reference counting systems to manage your program’s memory, including easy-to-follow steps that can help you avoid common pitfalls.
Understanding Cocoa touch Design Patterns – Cocoa touch is the programming framework for iOS user interface development. You’ll get important insights into the framework’s use of key design patterns such as Model-View-Controller, Delegation, View Hierarchy, Responder Chain, and Target-Action.
Handling Touch Events – Learn simple ways to configure standard iOS user interface controls and custom components to automatically trigger your app’s custom behavior, as well as how and when to implement your own custom event methods.
Drawing and Animation – Learn to use Core Graphics and Core Animation APIs to customize iOS UI components, display and manipulate bitmaps, vectors, and images, and provide rich animation of graphical elements.
View Controllers – Discover how to use UIViewController and key subclasses such as UINavigationController, UIPopoverController, and UITabBarController to load and manage complex views, collaborate with other view controllers, and animate view transitions.
Nib Files and Storyboards – Learn how to visually create your app’s user interface components and connect them to your code, while gaining insight into how Interface Builder performs its magic under the covers, and how it can streamline development, ease maintenance, and help give your app a professional and polished appearance.
Table Views and Collection Views – Table views (instances of UITableView) and Collection Views (instances of UICollectionView) are used to present scrollable lists of items in iOS apps. Learn how to populate and manage their contents, as well as how to manage user interactions such as drill-down and editing.
Navigation – Learn to use instances of UINavigationController to manage navigation between two or more view controllers. You’ll learn how to manage important but subtle details, such as presenting navigation bar and toolbar buttons, and implementing the right callback methods to allow you to keep the state of your controllers in sync throughout a full sequence of navigations.
Persistence – There are many ways to store user and app data on iOS, but there are some important constraints; for example the file system is opaque outside of your app’s ‘sandbox.’ We’ll introduce you to all the popular mechanisms, from NSUserDefaults and simple file-based persistence, all the way through Core Data and web services.
Design for Modularity – Leverage built-in facilities in Cocoa touch to dynamically load UI components from an iOS app’s bundle directory to reduce complexity, improve performance, and dramatically simplify maintenance.
Profiling, Debugging, and Unit Testing – Learn to use Xcode's built-in XCTest framework and UI tooling to easily create, run, and manage unit tests. We'll also show you how to use the Instruments app to profile performance and identify hot spots, and share great techniques for using Xcode’s debugger to quickly isolate coding issues.
Professional developers who are interested in learning to develop iOS apps in Swift
You should have a basic knowledge of Swift, or have previously taken Swift Programming or the equivalent.
Take two great iOS programming courses at a reduced price. This comprehensive course combines Objective-C Programming — a rapid introduction that will get you up to speed on Objective-C quickly — and iOS Development in Objective-C, a thorough introduction to developing apps for the iOS platform. Includes a discussion on the role of Swift in the future of iOS development.More Information
Take two great iOS programming courses at a reduced price. This comprehensive course combines Swift Programming — a rapid introduction that will get you up to speed on Swift quickly — and iOS Development in Swift, a thorough introduction to developing apps for the iOS platform.More Information
A rapid introduction to the basics of Swift programming. This course is designed get you up to speed on Swift language features and Foundation framework APIs used in everyday Cocoa development. Provides deep insight into important aspects of key features such as optionals, generics, closures, and initializers.More Information
A rapid introduction to the fundamentals of iOS development in Objective-C. Helps you gain hands-on proficiency with UIKit, Foundation, and other Cocoa touch frameworks along with practical knowledge of Xcode and Interface Builder. Includes a discussion on the role of Swift.More Information
For current iOS developers transitioning from Objective-C to Swift. Helps you gain hands-on proficiency with Swift in the context of typical Cocoa touch project development tasks.More Information
Covers Core Data, RESTful web services, concurrency with GCD and NSOperationQueue, advanced Interface Builder techniques, and advanced design patterns to streamline the controller layer.More Information
This course will introduce you to concepts, principles, and guidelines that are fundamental to designing best-of-breed, native iOS applications in SwiftUI. You'll gain broad knowledge of SwiftUI components to give you full command of what the framework offers.More Information
Take two great iOS programming courses at a reduced price. This comprehensive course combines Swift Programming — a rapid introduction that will get you up to speed on Swift quickly — and SwiftUI Development, a thorough introduction to developing apps for the iOS platform.More Information