Learning path
Swift & iOS Development learning path: everything to study, topic by topic
Comprehensive Swift and iOS assessment covering language fundamentals, object-oriented and protocol-oriented programming, SwiftUI and UIKit, concurrency with async/await and actors, data persistence, networking, app architecture patterns, testing, and app distribution.
Short answer
To learn Swift & iOS Development, work through 6 modules and 24 topics in the order they build on each other. It starts with Swift Fundamentals, then moves on to OOP & Protocols and SwiftUI & UIKit. Use the map as a checklist, or measure your level and study only what is missing.
What you will study
Topics are grouped by module. Open one to see its objectives and key concepts.
1 · Swift Fundamentals4 topics
Variables & Types
Let and var declarations, type inference, basic types (Int, Double, String, Bool), type aliases, tuples, type safety, and type casting with as/is operators
Objectives
- Declare constants and variables with proper type annotations
- Understand Swift's type safety and type inference system
Key concepts
- let vs var
- type inference
- Int, Double, String, Bool
- type aliases
- tuples
- type safety
- as/is operators
- Any and AnyObject
Control Flow
If/else, switch statements with pattern matching, for-in loops, while and repeat-while, guard statements, labeled statements, fallthrough, and where clauses
Objectives
- Write idiomatic Swift control flow with guard and switch
- Use pattern matching in switch statements effectively
Key concepts
- if/else statements
- switch with pattern matching
- for-in loops
- while and repeat-while
- guard statements
- labeled statements
- fallthrough keyword
- where clauses
Functions & Closures
Function signatures with argument labels, default parameters, variadic parameters, inout parameters, closures, trailing closure syntax, capturing values, and @escaping
Objectives
- Write functions with proper argument labels and parameter types
- Understand closure capture semantics and escaping closures
Key concepts
- argument labels
- default parameters
- variadic parameters
- inout parameters
- closure syntax
- trailing closures
- capturing values
- @escaping closures
Optionals
Optional types, optional binding (if let, guard let), nil coalescing operator, optional chaining, force unwrapping, implicitly unwrapped optionals, and map/flatMap on optionals
Objectives
- Safely unwrap optionals using binding and chaining
- Avoid force unwrapping in production code
Key concepts
- Optional type
- if let binding
- guard let binding
- nil coalescing (??)
- optional chaining
- force unwrapping (!)
- implicitly unwrapped optionals
- map/flatMap on Optional
2 · OOP & Protocols4 topics
Classes & Structs
Value types vs reference types, memberwise initializers, designated and convenience initializers, inheritance, deinit, ARC basics, identity operators (===), and copy-on-write
Objectives
- Choose between structs and classes based on value/reference semantics
- Implement proper initialization chains
Key concepts
- value types vs reference types
- memberwise initializers
- designated initializers
- convenience initializers
- inheritance
- ARC basics
- identity operators (===)
- copy-on-write
Protocols
Protocol definition, protocol conformance, protocol inheritance, protocol composition, associated types, protocol extensions with default implementations, and Equatable/Hashable/Codable
Objectives
- Design protocols with associated types and default implementations
- Apply protocol-oriented programming patterns
Key concepts
- protocol definition
- protocol conformance
- protocol inheritance
- protocol composition (&)
- associated types
- protocol extensions
- default implementations
- Equatable/Hashable/Codable
Extensions & Generics
Type extensions, computed properties in extensions, conditional conformance, generic types and functions, type constraints, where clauses, and opaque types (some)
Objectives
- Write generic code with proper type constraints
- Use extensions to organize and add functionality
Key concepts
- type extensions
- computed properties in extensions
- conditional conformance
- generic functions
- generic types
- type constraints
- where clauses
- opaque types (some)
Enums & Pattern Matching
Enum cases with associated values, raw values, CaseIterable, recursive enums, pattern matching with switch/if case/guard case, and enum with methods and computed properties
Objectives
- Design enums with associated values for domain modeling
- Apply pattern matching to extract associated values
Key concepts
- associated values
- raw values
- CaseIterable
- recursive enums (indirect)
- if case let
- guard case let
- switch exhaustiveness
- enum methods
3 · SwiftUI & UIKit4 topics
SwiftUI Basics
View protocol, body property, VStack/HStack/ZStack, Text/Image/Button views, modifiers, @ViewBuilder, previews, and composing views
Objectives
- Build declarative UIs with SwiftUI view composition
- Apply modifiers correctly to customize views
Key concepts
- View protocol
- body property
- VStack/HStack/ZStack
- Text/Image/Button
- view modifiers
- @ViewBuilder
- previews
- view composition
SwiftUI State Management
@State, @Binding, @ObservedObject, @StateObject, @EnvironmentObject, @Environment, Observable macro (@Observable), and data flow in SwiftUI
Objectives
- Choose the correct property wrapper for each data flow scenario
- Manage state effectively across view hierarchies
Key concepts
- @State
- @Binding
- @ObservedObject
- @StateObject
- @EnvironmentObject
- @Environment
- @Observable macro
- data flow patterns
UIKit Fundamentals
UIViewController lifecycle, UIView hierarchy, Auto Layout constraints, UITableView/UICollectionView, delegation pattern, and Interface Builder vs programmatic UI
Objectives
- Implement UIKit views with Auto Layout constraints
- Understand the UIViewController lifecycle methods
Key concepts
- UIViewController lifecycle
- UIView hierarchy
- Auto Layout
- UITableView
- UICollectionView
- delegation pattern
- programmatic UI
- Interface Builder
Navigation & Routing
NavigationStack (SwiftUI), NavigationPath, UINavigationController (UIKit), tab-based navigation, modal presentation, deep linking, and coordinator pattern
Objectives
- Implement navigation flows in both SwiftUI and UIKit
- Design deep linking and routing strategies
Key concepts
- NavigationStack
- NavigationPath
- UINavigationController
- tab-based navigation
- modal presentation
- deep linking
- coordinator pattern
- programmatic navigation
4 · Concurrency4 topics
Async/Await
Async functions, await keyword, Task and TaskGroup, structured concurrency, async let bindings, continuation APIs, and AsyncSequence/AsyncStream
Objectives
- Write structured concurrent code with async/await
- Bridge callback-based APIs to async/await using continuations
Key concepts
- async functions
- await keyword
- Task
- TaskGroup
- structured concurrency
- async let
- withCheckedContinuation
- AsyncSequence
Actors
Actor model, actor isolation, nonisolated keyword, @MainActor, global actors, Sendable protocol, @Sendable closures, and actor reentrancy
Objectives
- Design thread-safe types using actors
- Understand actor isolation and Sendable constraints
Key concepts
- actor keyword
- actor isolation
- nonisolated
- @MainActor
- global actors
- Sendable protocol
- @Sendable closures
- actor reentrancy
GCD & Operations
DispatchQueue (serial, concurrent, main), DispatchGroup, DispatchSemaphore, OperationQueue, Operation subclassing, quality of service, and thread safety with locks
Objectives
- Manage concurrent work with GCD queues and groups
- Choose appropriate dispatch patterns for different scenarios
Key concepts
- DispatchQueue
- serial vs concurrent
- main queue
- DispatchGroup
- DispatchSemaphore
- OperationQueue
- quality of service (QoS)
- thread safety
Combine Framework
Publisher and Subscriber protocols, operators (map, filter, flatMap, combineLatest), Subjects (PassthroughSubject, CurrentValueSubject), @Published, cancellables, and error handling
Objectives
- Build reactive data pipelines with Combine operators
- Manage subscriptions and memory with cancellables
Key concepts
- Publisher protocol
- Subscriber protocol
- map/filter/flatMap
- combineLatest/merge/zip
- PassthroughSubject
- CurrentValueSubject
- @Published
- AnyCancellable
5 · Data & Networking4 topics
Core Data
NSManagedObject, NSPersistentContainer, NSFetchRequest, predicates, relationships, migrations, NSFetchedResultsController, and background contexts
Objectives
- Design Core Data models with relationships and migrations
- Perform thread-safe operations with background contexts
Key concepts
- NSManagedObject
- NSPersistentContainer
- NSFetchRequest
- NSPredicate
- relationships
- migrations
- NSFetchedResultsController
- background contexts
Networking & URLSession
URLSession configuration, URLRequest, data/upload/download tasks, authentication challenges, background sessions, caching policies, and URL components
Objectives
- Build robust networking layers with URLSession
- Handle authentication and background transfers
Key concepts
- URLSession
- URLRequest
- data tasks
- upload/download tasks
- authentication challenges
- background sessions
- URLCache
- URLComponents
Codable & JSON
Codable protocol (Encodable/Decodable), JSONEncoder/JSONDecoder, coding keys, custom encoding/decoding, nested containers, date strategies, and PropertyListEncoder
Objectives
- Implement Codable conformance for complex data models
- Handle custom JSON structures with coding keys and containers
Key concepts
- Codable protocol
- JSONEncoder
- JSONDecoder
- CodingKeys
- custom encode/decode
- nested containers
- date decoding strategies
- PropertyListEncoder
SwiftData
@Model macro, ModelContainer, ModelContext, @Query macro, relationships, sorting and filtering, migration strategies, and CloudKit integration
Objectives
- Design data models with SwiftData and @Model macro
- Integrate SwiftData with SwiftUI using @Query
Key concepts
- @Model macro
- ModelContainer
- ModelContext
- @Query macro
- relationships
- sorting and filtering
- migration strategies
- CloudKit integration
6 · Advanced iOS4 topics
App Architecture
MVC, MVVM, MVP, VIPER, TCA (The Composable Architecture), dependency injection, coordinator pattern, clean architecture, and modularization strategies
Objectives
- Evaluate and apply architecture patterns for iOS apps
- Design modular and testable app architectures
Key concepts
- MVC pattern
- MVVM pattern
- dependency injection
- coordinator pattern
- clean architecture
- modularization
- TCA
- unidirectional data flow
Testing
XCTest framework, Swift Testing (@Test, #expect), unit tests, UI tests with XCUITest, mocking with protocols, test doubles, code coverage, and snapshot testing
Objectives
- Write effective unit and UI tests for iOS applications
- Design testable code using dependency injection and protocols
Key concepts
- XCTest
- Swift Testing (@Test, #expect)
- unit tests
- XCUITest
- mocking with protocols
- test doubles
- code coverage
- snapshot testing
Performance Optimization
Instruments profiling, memory leaks and retain cycles, lazy loading, image caching, list performance, render loop optimization, and Energy Impact diagnostics
Objectives
- Profile and diagnose performance issues with Instruments
- Prevent and fix memory leaks and retain cycles
Key concepts
- Instruments profiling
- memory leaks
- retain cycles
- lazy loading
- image caching
- list performance
- render loop
- Energy Impact
App Distribution
App Store Connect, provisioning profiles, code signing, TestFlight, CI/CD pipelines with Xcode Cloud, App Store Review guidelines, and enterprise distribution
Objectives
- Configure code signing and provisioning for distribution
- Set up CI/CD pipelines for automated testing and deployment
Key concepts
- App Store Connect
- provisioning profiles
- code signing
- TestFlight
- Xcode Cloud
- App Store Review guidelines
- enterprise distribution
- CI/CD pipelines
Levels: Junior, Mid, and Senior
Explain it in your own words
Graded by AI · no account · 1 questionNo options to guess from: you write, the AI grades against the topic's rubric and tells you what level your answer reads at.
Already studying Swift & iOS Development?
The assessment measures topic by topic, and your plan skips what you already know.
Open to read. An account is only needed to be measured.
Frequently asked questions
Where should I start studying Swift & iOS Development?
Start with Swift Fundamentals: Variables & Types, Control Flow, and Functions & Closures. The map orders topics by what they depend on, so each one prepares the next.
How long does a full Swift & iOS Development assessment take?
A full assessment of this path takes about 45 minutes. Study time depends on where you start; a diagnostic shows which topics you can skip.
Do I need an account to use this page?
No. The map, objectives and key concepts are open. You only need an account to be measured, get your gap by topic and receive a plan.