iOS Development in Swift
A rapid introduction to the fundamentals of iOS development in Swift. Helps you gain hands-on proficiency with UIKit, Foundation, and other Cocoa touch frameworks along with practical knowledge of Xcode and Interface Builder. Includes coverage of bridging to Objective-C code and C libraries.
Description
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.
- Learn the fundamentals of UIKit and other iOS frameworks.
- Learn the mechanics of bridging to Objective-C code and C libraries.
- Work with touch events and keyboard input, and understand the event distribution system.
- Understand custom drawing, animation, and layout.
- Work with views, controls, and view controllers
- Get a solid understanding of framework design patterns such as Delegate and Data Source.
- Gain hands-on experience with nib files, storyboards, and segues.
- Work with advanced view controllers to manage table views and navigation.
- Understand how to access the file system to tore and retrieve user data.
- Learn to use framework mechanisms to help manage concurrency.
Course Outline
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.
Audience
Professional developers who are interested in learning to develop iOS apps in Swift
Prerequisites
You should have a basic knowledge of Swift, or have previously taken Swift Programming or the equivalent.