iOS
Building apps for iPhone and iPad.
iOS is taught here in 14 lessons, running from Xcode projects and SwiftUI views through to Next steps: widgets, watchOS, visionOS and the Swift ecosystem. Each lesson takes one topic, shows the working code, and links onward to the next, so the course can be read straight through in order.
| Track | Mobile Development |
| Lessons | 14 |
| Level | Beginner to intermediate |
| Reading time | about 3 hours |
| Prerequisites | Helpful, but not required: Android |
Lessons
- Xcode projects and SwiftUI viewsWhat an Xcode project is made of, and how a SwiftUI screen is composed from views and modifiers.
- State and navigationWhere each kind of state belongs, how the property wrappers differ, and how to move between screens with NavigationStack.
- Persistence and the App StorePicking between UserDefaults, files, SwiftData and the Keychain, then archiving and shipping a build for review.
- Swift essentials for iOSOptionals and unwrapping, structs versus classes, protocols, closures and error handling — the language features every SwiftUI view depends on.
- Layout, stacks and adaptive UICompose screens with VStack, HStack and ZStack, build grids, read available space safely, and make one layout work from iPhone SE to iPad with Dynamic Type.
- Lists, forms and data-driven viewsScroll large collections efficiently, give rows stable identity, build editable forms, add search and swipe actions, and plot the same data with Swift Charts.
- Networking with URLSession and async/awaitDecode JSON with Codable, write typed async requests, model errors properly, cancel work when a view disappears, paginate, and load images without blocking the UI.
- Architecture: MVVM, observation and dependency injectionSeparate view from logic with view models, use the Observation framework instead of ObservableObject, inject dependencies through the environment, and design for tests.
- Concurrency: actors, tasks and MainActorStructured concurrency with task groups, actor isolation that removes data races, Sendable checking, and the rules that decide when SwiftUI work runs on the main thread.
- Localization, accessibility and system integrationShip text in many languages with String Catalogs, format numbers and dates per locale, support right-to-left layouts, make VoiceOver usable, and expose your app to the system with widgets and App Intents.
- Security, privacy and data protectionStore secrets in the Keychain, enforce App Transport Security, declare data collection with privacy manifests, and use entitlements and file protection correctly.
- Testing, debugging and InstrumentsWrite fast unit tests with Swift Testing, drive the interface with XCUITest, use previews as a development tool, and profile leaks and slow frames in Instruments.
- Release engineering: TestFlight, CI and App Store ConnectCertificates and provisioning explained, automated builds with fastlane and Xcode Cloud, TestFlight distribution, phased release and turning crash reports into fixes.
- Next steps: widgets, watchOS, visionOS and the Swift ecosystemAdd extension targets correctly, share code across Apple platforms, depend on Swift packages safely, and choose where to take the project next.
More in Mobile Development
Android Flutter React Native Kotlin Swift
FAQ
How long does the iOS course take?
It has 14 lessons, about 3 hours of reading. Expect roughly twice that if you type out and run every example.
Do I need prior experience for iOS?
Not strictly. It helps to have read Android first, because some lessons build on it, but every lesson explains its own assumptions.
What should I read after iOS?
Continue with Flutter (14 lessons), the next course in Mobile Development.