🍎 The Unofficial Apple Developer Curriculum
WWDC19 → WWDC25
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
🟦 WWDC19 — Foundations
🧠 Swift & Language
What's New in Swift — WWDC19
https://developer.apple.com/videos/play/wwdc2019/364/
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
🎨 SwiftUI — The Beginning
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
🛠 Xcode & Developer Workflow
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
🔌 Frameworks & Platforms
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
🟦 WWDC20 — SwiftUI Becomes Real
🎨 SwiftUI Architecture & Layout
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
🧩 Documents, Widgets & Modularity
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
🛠 Tooling & Monetization
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
🟦 WWDC21 — Modern Concurrency Era
🧠 Swift Concurrency
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
🎨 SwiftUI & UIKit Interop
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
🧪 Memory, ARC & Debugging
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
🟦 WWDC22 — Structure & Scale
🎨 SwiftUI Navigation & Layout
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
🧠 Swift Language & Safety
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
📊 Data & Monetization
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
🟦 WWDC23 — Modern State & Data
🧠 Swift & State
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
💾 Persistence
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
🎨 SwiftUI & Tooling
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
🧪 Testing & Debugging
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
🥽 visionOS
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
🟦 WWDC24 — Performance & Swift 6
🧠 Swift 6
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
🎨 SwiftUI Performance
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
🧪 Testing & Tooling
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
🚀 Performance
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
🥽 visionOS Advanced
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
🟦 WWDC25 — Current State
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/
🧭 Recommended Learning Paths
🎯 Path 1: Swift Fundamentals → Modern Concurrency
- 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)
🎯 Path 2: SwiftUI Zero to Hero
- 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)
🎯 Path 3: Architecture & Data
- 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)
🎯 Path 4: Testing & Debugging
- 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)
🎯 Path 5: Performance & Optimization
- 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)
🎯 Path 6: visionOS Specialist
- 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)
📚 Extra Resources
Blogs & Newsletters
- 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
Books
- Advanced Swift — objc.io
- Swift in Depth — Tjeerd in 't Veen
- Thinking in SwiftUI — objc.io
Open Source
- Point-Free — TCA, Dependencies, macros
- Airbnb iOS — Animations
- Kickstarter iOS — Full open source app
Tools
- SF Symbols — Apple's icon system
- Instruments — Profiling and performance
- Create ML — Machine learning without code
🎓 Final Note
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.
🤝 Contributing
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)
📄 License
CC0 1.0 Universal — Public Domain
Use it, share it, improve it.