The following courses are available in private or public settings delivered in person or online. The topics include Swift, SwiftUI, Combine, iOS, Functional Programming, and learning to program. We also create custom content for some of the worlds finest companies.

Contact us at to book or inquire about a course, presentation, or keynote for your group, company, conference, or public event.

Many of the topics are also covered in our Books and Videos.


One day

This fast moving workshop examines the many ways we work with state in a SwiftUI app. It's easy to focus on the shiny, pretty aspects of SwiftUI, but the secrets to a clean design and better performance center around the flow of data. We begin with the requirements and best practices for @State, @Binding and the combination of ObservableObjects and @Published. We briefly explore AsyncStreams and AsyncSequences before moving to the all-new Observable APIs. Finally, we see how easy it is to persist model data using the new SwiftData framework.

One day

Swift Macros transform Swift code in powerful ways that you've seen in Apple APIs such as #Preview, @Observable, and @Model. We'll use these and others as inspiration for building a wide range of Swift Macros in a variety of ways.

Two days

The async / await family includes syntax and APIs that combine to provide language level support for working with concurrency and asynchronous code. You'll learn everything starting with when and how to use async, await, and Task. You'll use continuations to replace and wrap delegates and closure-based APIs. For multiple values over time, you'll meet AsyncSequence and AsyncStream. You'll write structured concurrency with async let and TaskGroups. We end protecting shared mutable state with actors.

One day

This hands-on introduction to SwiftUI shows you how to combine and configure elements and lay them out. You'll learn the new paradigm for data flow in SwiftUI as well as new and familiar tools for creating tabs, sheets, lists, grids, and navigation for your app.

One day

This best selling one day intensive class introduces experienced programmers to important concepts and techniques of coding with Swift. The first half of the course covers the language fundamentals and the second half examines classes, enumerations, structs, and protocols.

One - Two days

Swift supports a functional programming style. This course explores the benefits of working with value types, higher-order functions, and passing closures while digging in deeper to map(), flatMap(), and others in the Swift Programming Language.

One day

The Combine framework unifies how we communicate with Apple APIs and our own code for asynchronous events. This one day class gets you up to speed with the techniques and mind-set to master Combine.

Two - Three days

Experienced developers with a background in Swift will learn to use idiomatic Swift for iOS development. You can't write great modern iOS apps by translating Objective-C code into Swift. In this course we embrace the latest tools, techniques, and idioms for writing Swifty iOS apps.