Basic computer programming concepts: You should be comfortable with basic concepts of computer programming, including variables, strings, logic, and classes. You’ll be expected to write code as part of the training.
Introduction to Swift and Playgrounds
Learn about the origin of Swift and some of its basic syntax.
Constants, Variables, and Data Types
Learn how to define constants for values that don’t change and variables for values that do. Learn the data types that are included in Swift and how they can help you write better code.
Learn about some of the operators in the Swift language, including basic math operators.
Learn how to use logical operators in Swift to check conditions; learn how to use control flow statements.
Learn how to create and store text using the string type. You’ll learn a variety of string methods that allow you to compare two strings, access specific characters within a string, and insert and remove values.
Learn how to declare functions with different parameters and return types.
Learn how to create structures in Swift.
Learn what makes classes different from structures and when to use classes instead of structures. Also learn about inheritance, superclasses, and subclasses.
Learn to use “optionals” to properly handle situations when data may or may not exist.
Learn about the various collection types available in Swift and how to choose the appropriate one for your program.
Learn how to create loops in Swift, control the conditions for looping, and specify when to stop.
Learn why some data can be expressed using only a broader type, and how you can test for specific kinds of data before using it.
Learn to use guard statements to better manage control flow.
Learn to write nicely structured code that’s easy to read. You’ll do this by properly scoping your constants and variables.
Learn when enumerations are commonly used, how to define an enumeration, and how to work with enumerations using switch statements.
Learn what protocols are, when to use them, and how to write your own. Learn how to enable objects to communicate with each other and how to extend protocols to provide shared functionality across multiple types.
Learn about closures, how to define them, how to use them as function arguments, and how to use some of the common functions that take closures as arguments.
Learn how to define an extension, as well as how and why to use extensions
Interface Builder Basics
Learn how to navigate through Interface Builder, add elements onto the canvas, and interact with those elements in the code.
Use Interface Builder to create the beginnings of an app, adding labels and images.
Controls in Action
Use Interface Builder to add buttons, switches, and sliders to a scene. Create actions and outlets, write some basic code, and learn how these tools work together.
Auto Layout and Stack Views
Learn the fundamentals of Auto Layout for building precisely designed user interfaces.
Segues and Navigation Controllers
Learn how to use segues to transition from one view controller to another, and how to define relationships between view controllers. Learn how navigation controllers can help you manage scenes that display related or hierarchical content.
Tab Bar Controllers
Learn how to use tab bar controllers to organize different kinds of information or different modes of operation.
View Controller Life Cycle
Learn more about the view controller life cycle so you can understand the potential of this important class.
Building Simple Workflows
Tie together the concepts you’ve learned so far to design simple workflows and familiar navigation hierarchies.
App Anatomy and Life Cycle
Explore the different life cycle states and the delegate hooks for executing logic as the app moves through each state.
Model View Controller
Learn how to organize files, structures, and classes into a design pattern called Model- View-Controller.
Learn the basics of creating table views in an iOS app.
Intermediate Table Views
Learn how to customize your table views by creating custom cells, dynamically inserting and removing cells, using static table views to present forms or other non-changing lists, and allowing the user to swipe to delete cells.
Learn how to implement data persistence using NSCoding, a protocol for saving files to your app’s Documents directory.
System View Controllers
Discover how to incorporate a variety of system view controllers for displaying alerts, sharing content, sending messages, and accessing the camera and photo library on an iOS device.
Building Complex Input Screens
Learn how to use a combination of static and dynamic table views. Explore how to use controls and views to build custom workflows that put an elegant face on any kind of business information.
Working with the Web: HTTP and URLSession
Discover how web data is sent and received, how URLs work, and how to fetch data for use in your app.
Working with the Web: Decoding JSON
Learn how to read and write basic JSON. Explore how to convert JSON to and from Swift types and into your own custom model objects.
Working with the Web: Concurrency
Become familiar with the concurrency system in iOS and learn how to make sure code that updates the user interface is executed in the right place