When I started at Apple, I took ownership of two iOS development books that taught Swift and UIKit. One book targeted novices, and the other was for intermediate programmers. Below are the primary components of my six years working on this content.

Books

I split the large intermediate book into two courses and added new content to teach additional concepts. The resulting books were Develop in Swift Fundamentals and Develop in Swift Data Collections.

I built an AP Computer Science Principles course using the novice course as a starting point. The course uses three units to dive into a story that explores the impact of computing and other key AP topics. Those units are interleaved with four units that teach Swift and UIKit to cover the programming standards.

Xcode Playgrounds

The books include Xcode Playgrounds for learners to practice key concepts. As part of my work above, I developed a number of new playgrounds. Below are a few of my favorites.

Data Visualization

Teaches properties of Swift structs.

Pixel Art

Teaches composition of functions.

Simulation

Teaches about the concept of simulation and assigning values to variables in Swift.

App Design Workbook

I created the App Design Workbook to accompany the Develop in Swift curriculum. It leads learners through the design thinking process, from research through prototyping, testing, and evaluation.

Develop in Swift Tutorials

With the advent of SwiftUI in 2019, I researched a new approach for Develop in Swift, moving it online and adopting DocC as the publishing platform. The Develop in Swift Tutorials guide novice learners through a series of small projects that focus on a handful of Swift and SwiftUI skills.

I designed a framework-first approach to instruction: rather than introducing Swift language basics in isolation, the learners start coding in SwiftUI from the start and get key language concepts as they’re needed. The goal is to ramp people up to the point where they feel comfortable prototyping their own app ideas, and are eager to take the next step in their learning journey.