Swift Essentials for iOS
Learn Swift 6 and SwiftUI by building a real expense tracker, from your first constant to TestFlight.
- 4.4 (589 ratings)
- 5,600 learners
- Beginner
- 4h 15m total
- Updated June 2026
What you’ll learn
- Write safe Swift with optionals, guard and exhaustive switch
- Choose between structs, classes and enums for your data
- Build SwiftUI screens with state, lists, navigation and forms
- Fetch and decode JSON with async/await and Codable
- Persist data with SwiftData and test it with Swift Testing
- Read Swift 6 concurrency errors and fix data races
Who it’s for
Swift rewards you for being precise. Its type system, optionals and Swift 6 concurrency checks stop whole classes of crashes before your app ever runs, but only if you understand what the compiler is telling you. This course teaches the language the way working iOS engineers use it: values first, safety always, and no magic you can't explain.
You build Pocket Budget, a small expense tracker, one lesson at a time. You model expenses with structs and enums, build screens with SwiftUI and the Observation framework, fetch exchange rates with async/await, store data with SwiftData, write tests with Swift Testing, and send a build to testers through TestFlight.
- Who it’s for
- Career switchers and web developers who want to build native iPhone apps with modern Swift and SwiftUI.
- Before you start
- Basic programming in any language (variables, functions, loops) and a Mac with Xcode installed.
Hands-on practice
- Guided exercises: spot the bug, fill the command, order the steps.
Course content
4 sections · 15 lessons · 4h 15m total
- Constants, Variables and Types12 min
- Optionals Without Crashes16 min
- Collections and Control Flow17 min
- Functions and Closures18 min
- Section checkpoint5 questions
- Structs, Classes and Value Semantics17 min
- Enums with Associated Values16 min
- Protocols and Extensions16 min
- Error Handling and Typed Throws18 min
- Section checkpoint5 questions
- Views and Modifiers17 min
- State, Bindings and @Observable19 min
- Lists, Navigation and Forms19 min
- Section checkpoint5 questions
- async/await and Swift 6 Concurrency20 min
- Networking with URLSession and Codable17 min
- Saving Data with SwiftData17 min
- Testing and TestFlight16 min
- Section checkpoint5 questions
Your instructor

Daniel Okafor
Staff Engineer · Brightline
- 4.7 instructor rating
- 12,450 learners
- 2 courses
Daniel wrote iOS apps in Objective-C, then Swift, for six years before joining Brightline's platform team, where he now owns the shared TypeScript libraries that 40 product engineers build on. Both jobs taught him the same lesson: a good type system catches the bug before the customer does.
What learners say
4.4
589 ratings
Yuki Sato
8 months ago
Optionals finally make sense. The walk-through of if let, guard let and why force-unwrapping crashes was exactly what I needed coming from JavaScript.
Rania Aziz
5 months ago
A good introduction to SwiftUI with @Observable and NavigationStack. The practice is guided rather than live code, so I set up Xcode on my own to really get my hands dirty.
Ivan Petrov
last month
The language lessons are clear, but the concurrency lesson lost me by introducing actors and Sendable at once. I needed a few small examples before the big one.