A complete, curated roadmap for modern Apple developers.
Goal
Build a deep, long-lasting understanding of Apple development:
Swift → SwiftUI → Concurrency → Data → Testing → Performance → visionOS → Swift 6Rules
• Only sessions that still matter today
• No fluff, no hype
• Production-first mindsetHow to use
• Read top to bottom for historical context
• Or jump by topic using the learning paths at the end
What's New in Swift — WWDC19
https://developer.apple.com/videos/play/wwdc2019/402/
Property wrappers, opaque types, and the foundations of modern Swift
Modern Swift API Design — WWDC19
https://developer.apple.com/videos/play/wwdc2019/415/
How to design APIs that feel native. Essential for architecture
Introducing SwiftUI: Building Your First App — WWDC19
https://developer.apple.com/videos/play/wwdc2019/204/
The starting point. Watch this before anything else about SwiftUI
SwiftUI Essentials — WWDC19
https://developer.apple.com/videos/play/wwdc2019/216/
Views, modifiers, and the declarative model explained from scratch
Data Flow Through SwiftUI — WWDC19
https://developer.apple.com/videos/play/wwdc2019/226/
@State, @Binding, @ObservableObject. Fundamental to understanding SwiftUI
Building Custom Views with SwiftUI — WWDC19
https://developer.apple.com/videos/play/wwdc2019/237/
Composition, ViewBuilder, and how to create reusable components
Mastering Xcode Previews — WWDC19
https://developer.apple.com/videos/play/wwdc2019/233/
Previews as a development tool, not just for viewing UI
Great Developer Habits — WWDC19
https://developer.apple.com/videos/play/wwdc2019/239/
Organize, track, document, test, analyze... professional development
Getting Started with Xcode — WWDC19
https://developer.apple.com/videos/play/wwdc2019/404/
Editor, debugger, simulators. The basics done right
Testing in Xcode — WWDC19
https://developer.apple.com/videos/play/wwdc2019/413/
XCTest fundamentals. Unit tests, UI tests, performance tests
Designing for Accessibility — WWDC19
https://developer.apple.com/videos/play/wwdc2019/244/
Not optional. VoiceOver, Dynamic Type, and basic principles
Introducing Combine — WWDC19
https://developer.apple.com/videos/play/wwdc2019/722/
Publishers, subscribers, operators. Still relevant despite async/await
Combine in Practice — WWDC19
https://developer.apple.com/videos/play/wwdc2019/721/
Real cases: networking, form validation, KVO
What's New in Machine Learning — WWDC19
https://developer.apple.com/videos/play/wwdc2019/209/
Core ML 3, Create ML. The beginning of on-device ML
Advances in Foundation — WWDC19
https://developer.apple.com/videos/play/wwdc2019/723/
Ordered Collection Diffing, Codable improvements, Data compression
What's New in SwiftUI — WWDC20
https://developer.apple.com/videos/play/wwdc2020/10041/
LazyStacks, Grids, toolbars. SwiftUI starts becoming production-ready
Data Essentials in SwiftUI — WWDC20
https://developer.apple.com/videos/play/wwdc2020/10040/
@StateObject, @ObservedObject, @EnvironmentObject clarified
App Essentials in SwiftUI — WWDC20
https://developer.apple.com/videos/play/wwdc2020/10037/
@main, App protocol, Scene API. Goodbye AppDelegate (in SwiftUI)
Stacks, Grids, and Outlines in SwiftUI — WWDC20
https://developer.apple.com/videos/play/wwdc2020/10031/
LazyVGrid, LazyHGrid, OutlineGroup. Advanced layout
Structure Your App for SwiftUI Previews — WWDC20
https://developer.apple.com/videos/play/wwdc2020/10149/
Dependency injection for fast and useful previews
Build Document-Based Apps in SwiftUI — WWDC20
https://developer.apple.com/videos/play/wwdc2020/10039/
DocumentGroup, FileDocument, ReferenceFileDocument
Build SwiftUI views for widgets — WWDC20
https://developer.apple.com/videos/play/wwdc2020/10033/
Timeline, configuration, placeholder. The widget model
Widgets Code-along (Parts 1–3) — WWDC20
https://developer.apple.com/videos/play/wwdc2020/10034/
Watch Apple build a widget from scratch
Swift Packages: Resources and Localization — WWDC20
https://developer.apple.com/videos/play/wwdc2020/10169/
Assets, strings, files in SPM. Real modularization
Meet StoreKit Testing in Xcode — WWDC20
https://developer.apple.com/videos/play/wwdc2020/10659/
Purchase testing without sandbox. Game changer for IAPs
Advances in Xcode Build System — WWDC20
https://developer.apple.com/videos/play/wwdc2020/10147/
Build times, dependencies, targets. For large projects
Why is my app getting killed? — WWDC20
https://developer.apple.com/videos/play/wwdc2020/10078/
Memory, CPU, background tasks. Debugging production crashes
Meet async/await in Swift — WWDC21
https://developer.apple.com/videos/play/wwdc2021/10132/
The biggest change in Swift since ARC. Fundamental
Explore structured concurrency in Swift — WWDC21
https://developer.apple.com/videos/play/wwdc2021/10134/
Tasks, task groups, cancellation. How to think about concurrency
Protect mutable state with Swift actors — WWDC21
https://developer.apple.com/videos/play/wwdc2021/10133/
Actor isolation, Sendable, @MainActor. Thread safety without locks
Swift Concurrency: Behind the Scenes — WWDC21
https://developer.apple.com/videos/play/wwdc2021/10254/
How it works internally: cooperative thread pool, continuations
Use async/await with URLSession — WWDC21
https://developer.apple.com/videos/play/wwdc2021/10095/
Modern networking. Goodbye completion handlers
Meet AsyncSequence — WWDC21
https://developer.apple.com/videos/play/wwdc2021/10058/
Asynchronous data streams. For websockets, file reading, etc
What's New in SwiftUI — WWDC21
https://developer.apple.com/videos/play/wwdc2021/10018/
@FocusState, refreshable, task modifier, async images
Add rich graphics to your SwiftUI app — WWDC21
https://developer.apple.com/videos/play/wwdc2021/10021/
Canvas, TimelineView, custom graphics
Demystify SwiftUI — WWDC21
https://developer.apple.com/videos/play/wwdc2021/10022/
Identity, lifetime, dependencies. How SwiftUI decides what to update
Craft search experiences in SwiftUI — WWDC21
https://developer.apple.com/videos/play/wwdc2021/10176/
.searchable modifier and tokens
SF Symbols in SwiftUI — WWDC21
https://developer.apple.com/videos/play/wwdc2021/10349/
Rendering modes, variable color, custom symbols
ARC in Swift: Basics and Beyond — WWDC21
https://developer.apple.com/videos/play/wwdc2021/10216/
Reference counting, weak/unowned, retain cycles
Detect and Diagnose Memory Issues — WWDC21
https://developer.apple.com/videos/play/wwdc2021/10180/
Memory graph debugger, leak detection in Instruments
Discover breakpoint improvements — WWDC21
https://developer.apple.com/videos/play/wwdc2021/10209/
Advanced breakpoints, symbolic breakpoints
Xcode Cloud Workflows — WWDC21
https://developer.apple.com/videos/play/wwdc2021/10267/
Apple's native CI/CD
What's New in SwiftUI — WWDC22
https://developer.apple.com/videos/play/wwdc2022/10052/
NavigationStack, NavigationSplitView, Charts
The SwiftUI cookbook for navigation — WWDC22
https://developer.apple.com/videos/play/wwdc2022/10054/
Recipes for complex navigation
Compose custom layouts with SwiftUI — WWDC22
https://developer.apple.com/videos/play/wwdc2022/10056/
Layout protocol. Full control over layout
SwiftUI on iPad: Organize your interface — WWDC22
https://developer.apple.com/videos/play/wwdc2022/10058/
Split views, toolbars, multitasking
SwiftUI on iPad: Add toolbars, titles, and more — WWDC22
https://developer.apple.com/videos/play/wwdc2022/110343/
Navigation bars, document groups
What's New in Swift — WWDC22
https://developer.apple.com/videos/play/wwdc2022/110354/
Regex, if let shorthand, buildPartialBlock
Embrace Swift generics — WWDC22
https://developer.apple.com/videos/play/wwdc2022/110352/
some, any, opaque types explained in depth
Design protocol interfaces in Swift — WWDC22
https://developer.apple.com/videos/play/wwdc2022/110353/
Primary associated types, type erasure
Eliminate data races using Swift Concurrency — WWDC22
https://developer.apple.com/videos/play/wwdc2022/110351/
Sendable, actor isolation, MainActor
Visualize and optimize Swift concurrency — WWDC22
https://developer.apple.com/videos/play/wwdc2022/110350/
Instruments for concurrency debugging
Hello Swift Charts — WWDC22
https://developer.apple.com/videos/play/wwdc2022/10136/
Intro to Swift Charts
Swift Charts: Raise the bar — WWDC22
https://developer.apple.com/videos/play/wwdc2022/10137/
Customization and advanced cases
Meet StoreKit 2 — WWDC22
https://developer.apple.com/videos/play/wwdc2022/10007/
Modern API for in-app purchases
Implement proactive in-app purchase restore — WWDC22
https://developer.apple.com/videos/play/wwdc2022/110404/
Proper handling of restorations
What's new in notarization for Mac apps — WWDC22
https://developer.apple.com/videos/play/wwdc2022/10109/
For distribution outside the Mac App Store
What's New in Swift — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10164/
Macros, if/switch expressions, noncopyable types
Expand on Swift macros — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10167/
Create your own macros
Write Swift macros — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10166/
Macro implementation, SwiftSyntax
Discover Observation in SwiftUI — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10149/
@Observable. The end of ObservableObject in SwiftUI
Migrate to Swift 6 — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10169/
Preparation for strict concurrency checking
Meet SwiftData — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10187/
Swift-native persistence. Core Data's replacement
Model your schema with SwiftData — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10195/
@Model, relationships, migrations
Build an app with SwiftData — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10154/
Complete app with SwiftData
Dive deeper into SwiftData — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10196/
Predicates, sorting, custom data stores
Migrate to SwiftData — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10189/
From Core Data to SwiftData
What's New in SwiftUI — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10148/
@Observable, Inspector, MapKit integration
Animate with springs — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10158/
Physics-based animations, KeyframeAnimator
Beyond scroll views — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10159/
ScrollView customization, scroll targets
Inspectors in SwiftUI — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10161/
Inspector sidebar pattern
Meet TipKit — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10229/
Onboarding and feature discovery
Wind your way through advanced animations — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10157/
PhaseAnimator, advanced keyframes
Fix failures faster with Xcode test reports — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10175/
Improved test reports
Simplify distribution in Xcode — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10224/
Notarization, TestFlight
What's new in Xcode 15 — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10186/
Bookmarks, enhanced macro expansion
Meet SwiftUI for spatial computing — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10109/
SwiftUI in 3D
Principles of spatial design — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10072/
Design for spatial environments
Design for spatial user interfaces — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10076/
UI patterns in visionOS
Meet ARKit for spatial computing — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10082/
Hand tracking, world sensing
Build spatial experiences with RealityKit — WWDC23
https://developer.apple.com/videos/play/wwdc2023/10080/
3D content, entities, components
What's New in Swift — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10136/
Noncopyable types, embedded Swift, C++ interop
Migrate your app to Swift 6 — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10169/
Complete data-race safety
A Swift Tour: Explore Swift's features and design — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10184/
Complete tour of the modern language
Go small with Embedded Swift — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10197/
Swift for microcontrollers
Consume noncopyable types in Swift — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10170/
Ownership, borrowing, consuming
What's New in SwiftUI — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10144/
Mesh gradients, custom containers, window management
Demystify SwiftUI containers — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10146/
ForEach, List, custom containers
SwiftUI essentials — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10150/
Core concepts revisited with best practices
Enhance your UI animations and transitions — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10145/
Zoom transitions, custom transitions
Bring your app's core features to users with App Intents — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10210/
Siri, Shortcuts, Spotlight integration
Meet Swift Testing — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10179/
New modern testing framework
Go further with Swift Testing — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10195/
Parameterized tests, suites, traits
Debug with structured logging — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10138/
OSLog structured logging
Analyze heap memory — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10173/
Memory graph, leaks in complex apps
Run, Break, Inspect: Explore effective debugging — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10198/
LLDB, breakpoints, memory inspection
What's new in Xcode 16 — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10135/
Thread Performance Checker, Predictive code completion
Analyze heap memory — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10173/
Transient growth, persistent growth, leaks
Profile and optimize your game's memory — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10106/
Metal, textures, mesh optimization
Optimize app power and performance for spatial computing — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10100/
Battery life in visionOS
Create enhanced spatial computing experiences — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10093/
Advanced RealityKit, custom effects
Build a spatial drawing app with RealityKit — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10104/
Hands-on RealityKit
Compose interactive 3D content in Reality Composer Pro — WWDC24
https://developer.apple.com/videos/play/wwdc2024/10102/
Content creation for visionOS
These are the most recent. Check them after mastering WWDC19-24
What's New in Swift — WWDC25
https://developer.apple.com/videos/play/wwdc2025/10159/
What's New in SwiftUI — WWDC25
https://developer.apple.com/videos/play/wwdc2025/10144/
What's New in Xcode 17 — WWDC25
https://developer.apple.com/videos/play/wwdc2025/10185/
- What's New in Swift (WWDC19)
- Modern Swift API Design (WWDC19)
- Meet async/await in Swift (WWDC21)
- Explore structured concurrency (WWDC21)
- Protect mutable state with Swift actors (WWDC21)
- Swift Concurrency: Behind the Scenes (WWDC21)
- Embrace Swift generics (WWDC22)
- Design protocol interfaces (WWDC22)
- Eliminate data races (WWDC22)
- Migrate to Swift 6 (WWDC24)
- Introducing SwiftUI (WWDC19)
- SwiftUI Essentials (WWDC19)
- Data Flow Through SwiftUI (WWDC19)
- Building Custom Views (WWDC19)
- What's New in SwiftUI (WWDC20)
- Data Essentials (WWDC20)
- App Essentials (WWDC20)
- Demystify SwiftUI (WWDC21)
- What's New in SwiftUI (WWDC22)
- Compose custom layouts (WWDC22)
- Discover Observation (WWDC23)
- SwiftUI essentials (WWDC24)
- Demystify SwiftUI containers (WWDC24)
- Modern Swift API Design (WWDC19)
- Advances in Foundation (WWDC19)
- Data Essentials in SwiftUI (WWDC20)
- Structure Your App for SwiftUI Previews (WWDC20)
- Swift Packages: Resources and Localization (WWDC20)
- Meet Observation (WWDC23)
- Meet SwiftData (WWDC23)
- Model your schema with SwiftData (WWDC23)
- Dive deeper into SwiftData (WWDC23)
- Great Developer Habits (WWDC19)
- Testing in Xcode (WWDC19)
- ARC in Swift: Basics and Beyond (WWDC21)
- Detect and Diagnose Memory Issues (WWDC21)
- Meet Swift Testing (WWDC24)
- Go further with Swift Testing (WWDC24)
- Run, Break, Inspect (WWDC24)
- Analyze heap memory (WWDC24)
- Why is my app getting killed? (WWDC20)
- Visualize and optimize Swift concurrency (WWDC22)
- Optimize SwiftUI performance (WWDC24)
- Analyze heap memory (WWDC24)
- Profile and optimize your game's memory (WWDC24)
- Principles of spatial design (WWDC23)
- Design for spatial user interfaces (WWDC23)
- Meet SwiftUI for spatial computing (WWDC23)
- Meet ARKit for spatial computing (WWDC23)
- Build spatial experiences with RealityKit (WWDC23)
- Create enhanced spatial computing experiences (WWDC24)
- Build a spatial drawing app with RealityKit (WWDC24)
- Swift by Sundell — Technical deep dives
- NSHipster — Foundation and obscure APIs
- Hacking with Swift — Tutorials and news
- Swift Evolution — Language proposals
- objc.io — Advanced topics
- Advanced Swift — objc.io
- Swift in Depth — Tjeerd in 't Veen
- Thinking in SwiftUI — objc.io
- Point-Free — TCA, Dependencies, macros
- Airbnb iOS — Animations
- Kickstarter iOS — Full open source app
- SF Symbols — Apple's icon system
- Instruments — Profiling and performance
- Create ML — Machine learning without code
If you complete this curriculum:
You won't just know Apple development.
You'll understand why it works the way it does.
And that's what makes you senior.
Missing an essential session? Better descriptions? Broken links?
Open an issue or PR. This is a community project.
Criteria for adding sessions:
- Must be relevant today (no deprecated technologies)
- Must teach fundamental concepts or reusable patterns
- Must be production-ready (not demos or experiments)
CC0 1.0 Universal — Public Domain
Use it, share it, improve it.