SwiftUI Roadmap
A step-by-step SwiftUI roadmap: what to learn in order, the related skills and the best places to learn each step.
The stack, end to end
- Mobile: let and var, Optionals, Closures, Structs, classes and enums, Protocols, Error handling, Xcode and the Simulator, SwiftUI views, State and bindings, Lists and navigation, Forms and animation, URLSession and Codable, async/await, SwiftData, Core Data basics, Keychain, MVVM, Dependency injection, Swift Testing and XCTest, XCUITest, Clean Architecture, App Store Connect, TestFlight, Code signing, Fastlane, Xcode Cloud, CI/CD
Swift language fundamentals
Learn Swift on its own before building screens: constants and variables, types, optionals, functions and closures, structs, classes, enums, protocols and error handling. Swift is strict on purpose, so most mistakes show up before the app runs.
Skills
- let and var
- Optionals
- Closures
- Structs, classes and enums
- Protocols
- Error handling
Tips
- Prefer let and structs. Learn optionals well, because they are in every API.
Where to learn
- The Swift Programming Language (book) (docs, free)
- Swift: Getting started (docs, free)
Xcode and SwiftUI: build your first apps
Install Xcode and build screens with SwiftUI: views and modifiers, stacks, state and bindings, lists, navigation, forms and animation. You need a Mac to build native iPhone apps.
Skills
- Xcode and the Simulator
- SwiftUI views
- State and bindings
- Lists and navigation
- Forms and animation
Tips
- Build a small app after each topic. Follow Apple’s own tutorials first, they are well written.
Where to learn
- Develop in Swift tutorials (docs, free)
- SwiftUI tutorials (Apple) (docs, free)
- 100 Days of SwiftUI (course, free)
- Stanford CS193p (course, free)
Networking, async/await and saving data
Call REST APIs with URLSession and Codable, write async code with async/await, and keep data on the phone with SwiftData (or Core Data in older projects). Store secrets in the Keychain.
Skills
- URLSession and Codable
- async/await
- SwiftData
- Core Data basics
- Keychain
Tips
- Read the real JSON of an API before writing your model. Never put a private API key inside the app.
Where to learn
- SwiftData documentation (docs, free)
- URLSession documentation (docs, free)
- Concurrency in The Swift Programming Language (docs, free)
Architecture and testing
Keep code clean as the app grows: MVVM with the Observable macro, dependency injection through protocols, and tests with Swift Testing, XCTest and XCUITest. Know MVC, Clean Architecture, VIPER and the Coordinator and Repository patterns by name.
Skills
- MVVM
- Dependency injection
- Swift Testing and XCTest
- XCUITest
- Clean Architecture
Tips
- Do not over-build. Add structure when a screen has real logic or needs tests.
Where to learn
- Swift Testing documentation (docs, free)
- XCTest documentation (docs, free)
Release: TestFlight, App Store and CI/CD
Ship the app: signing, TestFlight beta testing, App Store Connect, review and privacy information, then automate builds and tests with Xcode Cloud, GitHub Actions, Bitrise or Fastlane, and release safely with phased rollout.
Skills
- App Store Connect
- TestFlight
- Code signing
- Fastlane
- Xcode Cloud
- CI/CD
Tips
- Read the App Review Guidelines before you build, not after. Fees and rules change, so check Apple’s site.
Where to learn
- App Store Connect help (docs, free)
- TestFlight overview (docs, free)
- fastlane docs (docs, free)
Frequently asked questions
Where should I start with SwiftUI?
Start at step 1 and work down in order, because later steps build on earlier ones. If you are signed in, the roadmap compares your resume with each step and marks where you could start.
Is SwiftUI worth learning?
Check how many job adverts in your area mention SwiftUI, and whether it fits the kind of work you want. This roadmap shows what to learn; the Browse jobs page shows what employers are asking for.
How do I know I am ready to apply?
When you can build a small project from start to finish without copying a tutorial, and explain why you made your choices. Apply while you keep learning; you do not need to know everything.