{"id":42436502,"url":"https://github.com/davidcafor/wwdc-developer-curriculum","last_synced_at":"2026-01-31T08:00:34.176Z","repository":{"id":334861466,"uuid":"1141733568","full_name":"davidcafor/wwdc-developer-curriculum","owner":"davidcafor","description":"A curated roadmap of foundational WWDC sessions (2019-2025) for modern iOS developers. Focus on core concepts, not hype.","archived":false,"fork":false,"pushed_at":"2026-01-27T07:51:59.000Z","size":18,"stargazers_count":43,"open_issues_count":0,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-30T21:54:18.091Z","etag":null,"topics":["apple-developer","architecture","concurrency","ios-development","roadmap","swift","swiftdata","swiftui","wwdc","xcode"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidcafor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-25T10:35:35.000Z","updated_at":"2026-01-30T11:31:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/davidcafor/wwdc-developer-curriculum","commit_stats":null,"previous_names":["davidcafor/wwdc-developer-curriculum"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/davidcafor/wwdc-developer-curriculum","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidcafor%2Fwwdc-developer-curriculum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidcafor%2Fwwdc-developer-curriculum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidcafor%2Fwwdc-developer-curriculum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidcafor%2Fwwdc-developer-curriculum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidcafor","download_url":"https://codeload.github.com/davidcafor/wwdc-developer-curriculum/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidcafor%2Fwwdc-developer-curriculum/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28934610,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T07:49:44.436Z","status":"ssl_error","status_checked_at":"2026-01-31T07:49:34.274Z","response_time":128,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple-developer","architecture","concurrency","ios-development","roadmap","swift","swiftdata","swiftui","wwdc","xcode"],"created_at":"2026-01-28T05:39:39.814Z","updated_at":"2026-01-31T08:00:34.151Z","avatar_url":"https://github.com/davidcafor.png","language":null,"readme":"# 🍎 The Unofficial Apple Developer Curriculum\n### WWDC19 → WWDC25\n\nA complete, curated roadmap for modern Apple developers.\n\n\u003e **Goal**  \n\u003e Build a deep, long-lasting understanding of Apple development:  \n\u003e Swift → SwiftUI → Concurrency → Data → Testing → Performance → visionOS → Swift 6\n\u003e\n\u003e **Rules**  \n\u003e • Only sessions that still matter today  \n\u003e • No fluff, no hype  \n\u003e • Production-first mindset\n\u003e\n\u003e **How to use**  \n\u003e • Read top to bottom for historical context  \n\u003e • Or jump by topic using the learning paths at the end\n\n---\n\n## 🟦 WWDC19 — Foundations\n\n### 🧠 Swift \u0026 Language\n**What's New in Swift** — WWDC19  \nhttps://developer.apple.com/videos/play/wwdc2019/402/  \n*Property wrappers, opaque types, and the foundations of modern Swift*\n\n**Modern Swift API Design** — WWDC19  \nhttps://developer.apple.com/videos/play/wwdc2019/415/  \n*How to design APIs that feel native. Essential for architecture*\n\n---\n\n### 🎨 SwiftUI — The Beginning\n**Introducing SwiftUI: Building Your First App** — WWDC19  \nhttps://developer.apple.com/videos/play/wwdc2019/204/  \n*The starting point. Watch this before anything else about SwiftUI*\n\n**SwiftUI Essentials** — WWDC19  \nhttps://developer.apple.com/videos/play/wwdc2019/216/  \n*Views, modifiers, and the declarative model explained from scratch*\n\n**Data Flow Through SwiftUI** — WWDC19  \nhttps://developer.apple.com/videos/play/wwdc2019/226/  \n*@State, @Binding, @ObservableObject. Fundamental to understanding SwiftUI*\n\n**Building Custom Views with SwiftUI** — WWDC19  \nhttps://developer.apple.com/videos/play/wwdc2019/237/  \n*Composition, ViewBuilder, and how to create reusable components*\n\n**Mastering Xcode Previews** — WWDC19  \nhttps://developer.apple.com/videos/play/wwdc2019/233/  \n*Previews as a development tool, not just for viewing UI*\n\n---\n\n### 🛠 Xcode \u0026 Developer Workflow\n**Great Developer Habits** — WWDC19  \nhttps://developer.apple.com/videos/play/wwdc2019/239/  \n*Organize, track, document, test, analyze... professional development*\n\n**Getting Started with Xcode** — WWDC19  \nhttps://developer.apple.com/videos/play/wwdc2019/404/  \n*Editor, debugger, simulators. The basics done right*\n\n**Testing in Xcode** — WWDC19  \nhttps://developer.apple.com/videos/play/wwdc2019/413/  \n*XCTest fundamentals. Unit tests, UI tests, performance tests*\n\n**Designing for Accessibility** — WWDC19  \nhttps://developer.apple.com/videos/play/wwdc2019/244/  \n*Not optional. VoiceOver, Dynamic Type, and basic principles*\n\n---\n\n### 🔌 Frameworks \u0026 Platforms\n**Introducing Combine** — WWDC19  \nhttps://developer.apple.com/videos/play/wwdc2019/722/  \n*Publishers, subscribers, operators. Still relevant despite async/await*\n\n**Combine in Practice** — WWDC19  \nhttps://developer.apple.com/videos/play/wwdc2019/721/  \n*Real cases: networking, form validation, KVO*\n\n**What's New in Machine Learning** — WWDC19  \nhttps://developer.apple.com/videos/play/wwdc2019/209/  \n*Core ML 3, Create ML. The beginning of on-device ML*\n\n**Advances in Foundation** — WWDC19  \nhttps://developer.apple.com/videos/play/wwdc2019/723/  \n*Ordered Collection Diffing, Codable improvements, Data compression*\n\n---\n\n## 🟦 WWDC20 — SwiftUI Becomes Real\n\n### 🎨 SwiftUI Architecture \u0026 Layout\n**What's New in SwiftUI** — WWDC20  \nhttps://developer.apple.com/videos/play/wwdc2020/10041/  \n*LazyStacks, Grids, toolbars. SwiftUI starts becoming production-ready*\n\n**Data Essentials in SwiftUI** — WWDC20  \nhttps://developer.apple.com/videos/play/wwdc2020/10040/  \n*@StateObject, @ObservedObject, @EnvironmentObject clarified*\n\n**App Essentials in SwiftUI** — WWDC20  \nhttps://developer.apple.com/videos/play/wwdc2020/10037/  \n*@main, App protocol, Scene API. Goodbye AppDelegate (in SwiftUI)*\n\n**Stacks, Grids, and Outlines in SwiftUI** — WWDC20  \nhttps://developer.apple.com/videos/play/wwdc2020/10031/  \n*LazyVGrid, LazyHGrid, OutlineGroup. Advanced layout*\n\n**Structure Your App for SwiftUI Previews** — WWDC20  \nhttps://developer.apple.com/videos/play/wwdc2020/10149/  \n*Dependency injection for fast and useful previews*\n\n---\n\n### 🧩 Documents, Widgets \u0026 Modularity\n**Build Document-Based Apps in SwiftUI** — WWDC20  \nhttps://developer.apple.com/videos/play/wwdc2020/10039/  \n*DocumentGroup, FileDocument, ReferenceFileDocument*\n\n**Build SwiftUI views for widgets** — WWDC20  \nhttps://developer.apple.com/videos/play/wwdc2020/10033/  \n*Timeline, configuration, placeholder. The widget model*\n\n**Widgets Code-along (Parts 1–3)** — WWDC20  \nhttps://developer.apple.com/videos/play/wwdc2020/10034/  \n*Watch Apple build a widget from scratch*\n\n**Swift Packages: Resources and Localization** — WWDC20  \nhttps://developer.apple.com/videos/play/wwdc2020/10169/  \n*Assets, strings, files in SPM. Real modularization*\n\n---\n\n### 🛠 Tooling \u0026 Monetization\n**Meet StoreKit Testing in Xcode** — WWDC20  \nhttps://developer.apple.com/videos/play/wwdc2020/10659/  \n*Purchase testing without sandbox. Game changer for IAPs*\n\n**Advances in Xcode Build System** — WWDC20  \nhttps://developer.apple.com/videos/play/wwdc2020/10147/  \n*Build times, dependencies, targets. For large projects*\n\n**Why is my app getting killed?** — WWDC20  \nhttps://developer.apple.com/videos/play/wwdc2020/10078/  \n*Memory, CPU, background tasks. Debugging production crashes*\n\n---\n\n## 🟦 WWDC21 — Modern Concurrency Era\n\n### 🧠 Swift Concurrency\n**Meet async/await in Swift** — WWDC21  \nhttps://developer.apple.com/videos/play/wwdc2021/10132/  \n*The biggest change in Swift since ARC. Fundamental*\n\n**Explore structured concurrency in Swift** — WWDC21  \nhttps://developer.apple.com/videos/play/wwdc2021/10134/  \n*Tasks, task groups, cancellation. How to think about concurrency*\n\n**Protect mutable state with Swift actors** — WWDC21  \nhttps://developer.apple.com/videos/play/wwdc2021/10133/  \n*Actor isolation, Sendable, @MainActor. Thread safety without locks*\n\n**Swift Concurrency: Behind the Scenes** — WWDC21  \nhttps://developer.apple.com/videos/play/wwdc2021/10254/  \n*How it works internally: cooperative thread pool, continuations*\n\n**Use async/await with URLSession** — WWDC21  \nhttps://developer.apple.com/videos/play/wwdc2021/10095/  \n*Modern networking. Goodbye completion handlers*\n\n**Meet AsyncSequence** — WWDC21  \nhttps://developer.apple.com/videos/play/wwdc2021/10058/  \n*Asynchronous data streams. For websockets, file reading, etc*\n\n---\n\n### 🎨 SwiftUI \u0026 UIKit Interop\n**What's New in SwiftUI** — WWDC21  \nhttps://developer.apple.com/videos/play/wwdc2021/10018/  \n*@FocusState, refreshable, task modifier, async images*\n\n**Add rich graphics to your SwiftUI app** — WWDC21  \nhttps://developer.apple.com/videos/play/wwdc2021/10021/  \n*Canvas, TimelineView, custom graphics*\n\n**Demystify SwiftUI** — WWDC21  \nhttps://developer.apple.com/videos/play/wwdc2021/10022/  \n*Identity, lifetime, dependencies. How SwiftUI decides what to update*\n\n**Craft search experiences in SwiftUI** — WWDC21  \nhttps://developer.apple.com/videos/play/wwdc2021/10176/  \n*.searchable modifier and tokens*\n\n**SF Symbols in SwiftUI** — WWDC21  \nhttps://developer.apple.com/videos/play/wwdc2021/10349/  \n*Rendering modes, variable color, custom symbols*\n\n---\n\n### 🧪 Memory, ARC \u0026 Debugging\n**ARC in Swift: Basics and Beyond** — WWDC21  \nhttps://developer.apple.com/videos/play/wwdc2021/10216/  \n*Reference counting, weak/unowned, retain cycles*\n\n**Detect and Diagnose Memory Issues** — WWDC21  \nhttps://developer.apple.com/videos/play/wwdc2021/10180/  \n*Memory graph debugger, leak detection in Instruments*\n\n**Discover breakpoint improvements** — WWDC21  \nhttps://developer.apple.com/videos/play/wwdc2021/10209/  \n*Advanced breakpoints, symbolic breakpoints*\n\n**Xcode Cloud Workflows** — WWDC21  \nhttps://developer.apple.com/videos/play/wwdc2021/10267/  \n*Apple's native CI/CD*\n\n---\n\n## 🟦 WWDC22 — Structure \u0026 Scale\n\n### 🎨 SwiftUI Navigation \u0026 Layout\n**What's New in SwiftUI** — WWDC22  \nhttps://developer.apple.com/videos/play/wwdc2022/10052/  \n*NavigationStack, NavigationSplitView, Charts*\n\n**The SwiftUI cookbook for navigation** — WWDC22  \nhttps://developer.apple.com/videos/play/wwdc2022/10054/  \n*Recipes for complex navigation*\n\n**Compose custom layouts with SwiftUI** — WWDC22  \nhttps://developer.apple.com/videos/play/wwdc2022/10056/  \n*Layout protocol. Full control over layout*\n\n**SwiftUI on iPad: Organize your interface** — WWDC22  \nhttps://developer.apple.com/videos/play/wwdc2022/10058/  \n*Split views, toolbars, multitasking*\n\n**SwiftUI on iPad: Add toolbars, titles, and more** — WWDC22  \nhttps://developer.apple.com/videos/play/wwdc2022/110343/  \n*Navigation bars, document groups*\n\n---\n\n### 🧠 Swift Language \u0026 Safety\n**What's New in Swift** — WWDC22  \nhttps://developer.apple.com/videos/play/wwdc2022/110354/  \n*Regex, if let shorthand, buildPartialBlock*\n\n**Embrace Swift generics** — WWDC22  \nhttps://developer.apple.com/videos/play/wwdc2022/110352/  \n*some, any, opaque types explained in depth*\n\n**Design protocol interfaces in Swift** — WWDC22  \nhttps://developer.apple.com/videos/play/wwdc2022/110353/  \n*Primary associated types, type erasure*\n\n**Eliminate data races using Swift Concurrency** — WWDC22  \nhttps://developer.apple.com/videos/play/wwdc2022/110351/  \n*Sendable, actor isolation, MainActor*\n\n**Visualize and optimize Swift concurrency** — WWDC22  \nhttps://developer.apple.com/videos/play/wwdc2022/110350/  \n*Instruments for concurrency debugging*\n\n---\n\n### 📊 Data \u0026 Monetization\n**Hello Swift Charts** — WWDC22  \nhttps://developer.apple.com/videos/play/wwdc2022/10136/  \n*Intro to Swift Charts*\n\n**Swift Charts: Raise the bar** — WWDC22  \nhttps://developer.apple.com/videos/play/wwdc2022/10137/  \n*Customization and advanced cases*\n\n**Meet StoreKit 2** — WWDC22  \nhttps://developer.apple.com/videos/play/wwdc2022/10007/  \n*Modern API for in-app purchases*\n\n**Implement proactive in-app purchase restore** — WWDC22  \nhttps://developer.apple.com/videos/play/wwdc2022/110404/  \n*Proper handling of restorations*\n\n**What's new in notarization for Mac apps** — WWDC22  \nhttps://developer.apple.com/videos/play/wwdc2022/10109/  \n*For distribution outside the Mac App Store*\n\n---\n\n## 🟦 WWDC23 — Modern State \u0026 Data\n\n### 🧠 Swift \u0026 State\n**What's New in Swift** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10164/  \n*Macros, if/switch expressions, noncopyable types*\n\n**Expand on Swift macros** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10167/  \n*Create your own macros*\n\n**Write Swift macros** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10166/  \n*Macro implementation, SwiftSyntax*\n\n**Discover Observation in SwiftUI** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10149/  \n*@Observable. The end of ObservableObject in SwiftUI*\n\n**Migrate to Swift 6** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10169/  \n*Preparation for strict concurrency checking*\n\n---\n\n### 💾 Persistence\n**Meet SwiftData** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10187/  \n*Swift-native persistence. Core Data's replacement*\n\n**Model your schema with SwiftData** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10195/  \n*@Model, relationships, migrations*\n\n**Build an app with SwiftData** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10154/  \n*Complete app with SwiftData*\n\n**Dive deeper into SwiftData** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10196/  \n*Predicates, sorting, custom data stores*\n\n**Migrate to SwiftData** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10189/  \n*From Core Data to SwiftData*\n\n---\n\n### 🎨 SwiftUI \u0026 Tooling\n**What's New in SwiftUI** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10148/  \n*@Observable, Inspector, MapKit integration*\n\n**Animate with springs** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10158/  \n*Physics-based animations, KeyframeAnimator*\n\n**Beyond scroll views** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10159/  \n*ScrollView customization, scroll targets*\n\n**Inspectors in SwiftUI** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10161/  \n*Inspector sidebar pattern*\n\n**Meet TipKit** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10229/  \n*Onboarding and feature discovery*\n\n**Wind your way through advanced animations** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10157/  \n*PhaseAnimator, advanced keyframes*\n\n---\n\n### 🧪 Testing \u0026 Debugging\n**Fix failures faster with Xcode test reports** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10175/  \n*Improved test reports*\n\n**Simplify distribution in Xcode** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10224/  \n*Notarization, TestFlight*\n\n**What's new in Xcode 15** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10186/  \n*Bookmarks, enhanced macro expansion*\n\n---\n\n### 🥽 visionOS\n**Meet SwiftUI for spatial computing** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10109/  \n*SwiftUI in 3D*\n\n**Principles of spatial design** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10072/  \n*Design for spatial environments*\n\n**Design for spatial user interfaces** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10076/  \n*UI patterns in visionOS*\n\n**Meet ARKit for spatial computing** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10082/  \n*Hand tracking, world sensing*\n\n**Build spatial experiences with RealityKit** — WWDC23  \nhttps://developer.apple.com/videos/play/wwdc2023/10080/  \n*3D content, entities, components*\n\n---\n\n## 🟦 WWDC24 — Performance \u0026 Swift 6\n\n### 🧠 Swift 6\n**What's New in Swift** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10136/  \n*Noncopyable types, embedded Swift, C++ interop*\n\n**Migrate your app to Swift 6** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10169/  \n*Complete data-race safety*\n\n**A Swift Tour: Explore Swift's features and design** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10184/  \n*Complete tour of the modern language*\n\n**Go small with Embedded Swift** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10197/  \n*Swift for microcontrollers*\n\n**Consume noncopyable types in Swift** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10170/  \n*Ownership, borrowing, consuming*\n\n---\n\n### 🎨 SwiftUI Performance\n**What's New in SwiftUI** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10144/  \n*Mesh gradients, custom containers, window management*\n\n**Demystify SwiftUI containers** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10146/  \n*ForEach, List, custom containers*\n\n**SwiftUI essentials** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10150/  \n*Core concepts revisited with best practices*\n\n**Enhance your UI animations and transitions** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10145/  \n*Zoom transitions, custom transitions*\n\n**Bring your app's core features to users with App Intents** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10210/  \n*Siri, Shortcuts, Spotlight integration*\n\n---\n\n### 🧪 Testing \u0026 Tooling\n**Meet Swift Testing** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10179/  \n*New modern testing framework*\n\n**Go further with Swift Testing** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10195/  \n*Parameterized tests, suites, traits*\n\n**Debug with structured logging** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10138/  \n*OSLog structured logging*\n\n**Analyze heap memory** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10173/  \n*Memory graph, leaks in complex apps*\n\n**Run, Break, Inspect: Explore effective debugging** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10198/  \n*LLDB, breakpoints, memory inspection*\n\n**What's new in Xcode 16** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10135/  \n*Thread Performance Checker, Predictive code completion*\n\n---\n\n### 🚀 Performance\n**Analyze heap memory** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10173/  \n*Transient growth, persistent growth, leaks*\n\n**Profile and optimize your game's memory** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10106/  \n*Metal, textures, mesh optimization*\n\n**Optimize app power and performance for spatial computing** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10100/  \n*Battery life in visionOS*\n\n---\n\n### 🥽 visionOS Advanced\n**Create enhanced spatial computing experiences** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10093/  \n*Advanced RealityKit, custom effects*\n\n**Build a spatial drawing app with RealityKit** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10104/  \n*Hands-on RealityKit*\n\n**Compose interactive 3D content in Reality Composer Pro** — WWDC24  \nhttps://developer.apple.com/videos/play/wwdc2024/10102/  \n*Content creation for visionOS*\n\n---\n\n## 🟦 WWDC25 — Current State\n\n*These are the most recent. Check them after mastering WWDC19-24*\n\n**What's New in Swift** — WWDC25  \nhttps://developer.apple.com/videos/play/wwdc2025/10159/\n\n**What's New in SwiftUI** — WWDC25  \nhttps://developer.apple.com/videos/play/wwdc2025/10144/\n\n**What's New in Xcode 17** — WWDC25  \nhttps://developer.apple.com/videos/play/wwdc2025/10185/\n\n---\n\n## 🧭 Recommended Learning Paths\n\n### 🎯 Path 1: Swift Fundamentals → Modern Concurrency\n1. What's New in Swift (WWDC19)\n2. Modern Swift API Design (WWDC19)\n3. Meet async/await in Swift (WWDC21)\n4. Explore structured concurrency (WWDC21)\n5. Protect mutable state with Swift actors (WWDC21)\n6. Swift Concurrency: Behind the Scenes (WWDC21)\n7. Embrace Swift generics (WWDC22)\n8. Design protocol interfaces (WWDC22)\n9. Eliminate data races (WWDC22)\n10. Migrate to Swift 6 (WWDC24)\n\n### 🎯 Path 2: SwiftUI Zero to Hero\n1. Introducing SwiftUI (WWDC19)\n2. SwiftUI Essentials (WWDC19)\n3. Data Flow Through SwiftUI (WWDC19)\n4. Building Custom Views (WWDC19)\n5. What's New in SwiftUI (WWDC20)\n6. Data Essentials (WWDC20)\n7. App Essentials (WWDC20)\n8. Demystify SwiftUI (WWDC21)\n9. What's New in SwiftUI (WWDC22)\n10. Compose custom layouts (WWDC22)\n11. Discover Observation (WWDC23)\n12. SwiftUI essentials (WWDC24)\n13. Demystify SwiftUI containers (WWDC24)\n\n### 🎯 Path 3: Architecture \u0026 Data\n1. Modern Swift API Design (WWDC19)\n2. Advances in Foundation (WWDC19)\n3. Data Essentials in SwiftUI (WWDC20)\n4. Structure Your App for SwiftUI Previews (WWDC20)\n5. Swift Packages: Resources and Localization (WWDC20)\n6. Meet Observation (WWDC23)\n7. Meet SwiftData (WWDC23)\n8. Model your schema with SwiftData (WWDC23)\n9. Dive deeper into SwiftData (WWDC23)\n\n### 🎯 Path 4: Testing \u0026 Debugging\n1. Great Developer Habits (WWDC19)\n2. Testing in Xcode (WWDC19)\n3. ARC in Swift: Basics and Beyond (WWDC21)\n4. Detect and Diagnose Memory Issues (WWDC21)\n5. Meet Swift Testing (WWDC24)\n6. Go further with Swift Testing (WWDC24)\n7. Run, Break, Inspect (WWDC24)\n8. Analyze heap memory (WWDC24)\n\n### 🎯 Path 5: Performance \u0026 Optimization\n1. Why is my app getting killed? (WWDC20)\n2. Visualize and optimize Swift concurrency (WWDC22)\n3. Optimize SwiftUI performance (WWDC24)\n4. Analyze heap memory (WWDC24)\n5. Profile and optimize your game's memory (WWDC24)\n\n### 🎯 Path 6: visionOS Specialist\n1. Principles of spatial design (WWDC23)\n2. Design for spatial user interfaces (WWDC23)\n3. Meet SwiftUI for spatial computing (WWDC23)\n4. Meet ARKit for spatial computing (WWDC23)\n5. Build spatial experiences with RealityKit (WWDC23)\n6. Create enhanced spatial computing experiences (WWDC24)\n7. Build a spatial drawing app with RealityKit (WWDC24)\n\n---\n\n## 📚 Extra Resources\n\n### Blogs \u0026 Newsletters\n- [Swift by Sundell](https://www.swiftbysundell.com/) — Technical deep dives\n- [NSHipster](https://nshipster.com/) — Foundation and obscure APIs\n- [Hacking with Swift](https://www.hackingwithswift.com/) — Tutorials and news\n- [Swift Evolution](https://www.swift.org/swift-evolution/) — Language proposals\n- [objc.io](https://www.objc.io/) — Advanced topics\n\n### Books\n- **Advanced Swift** — objc.io\n- **Swift in Depth** — Tjeerd in 't Veen  \n- **Thinking in SwiftUI** — objc.io\n\n### Open Source\n- [Point-Free](https://github.com/pointfreeco) — TCA, Dependencies, macros\n- [Airbnb iOS](https://github.com/airbnb/lottie-ios) — Animations\n- [Kickstarter iOS](https://github.com/kickstarter/ios-oss) — Full open source app\n\n### Tools\n- **SF Symbols** — Apple's icon system\n- **Instruments** — Profiling and performance\n- **Create ML** — Machine learning without code\n\n---\n\n## 🎓 Final Note\n\nIf you complete this curriculum:\n\nYou won't just *know* Apple development.  \nYou'll understand **why it works the way it does**.\n\nAnd that's what makes you senior.\n\n---\n\n## 🤝 Contributing\n\nMissing an essential session? Better descriptions? Broken links?\n\nOpen an issue or PR. This is a community project.\n\n**Criteria for adding sessions:**\n- Must be relevant today (no deprecated technologies)\n- Must teach fundamental concepts or reusable patterns\n- Must be production-ready (not demos or experiments)\n\n---\n\n## 📄 License\n\nCC0 1.0 Universal — Public Domain  \nUse it, share it, improve it.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidcafor%2Fwwdc-developer-curriculum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidcafor%2Fwwdc-developer-curriculum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidcafor%2Fwwdc-developer-curriculum/lists"}