Lesson 06 · iOS with Swift & SwiftUI
iOS Capstone — Build & Test a Reading-List App
The track's capstone: build, test and ship-prep a complete Reading List app - a SwiftData Book model with status and rating, a live @Query list with an @Observable filter view model, a create-or-edit sheet under NavigationStack, a real accessibility pass, an XCTest unit suite plus a UI-test sketch, and an honest walkthrough of signing, TestFlight and App Store review with the common rejection buckets.
Prerequisites: iOS: Persistence with SwiftData & UserDefaults
Learning objectives
By the end of this lesson, you will be able to:
- Assemble a complete SwiftUI app from a written spec - SwiftData model, list screen, editor sheet, filtering and navigation - and drive it to done through milestones with acceptance criteria
- Factor testable logic out of views into pure functions on the model and prove it with an XCTest unit-test target
- Apply the core accessibility pass - labels on icon-only controls, combined rows, spoken ratings, Dynamic Type through text styles - and verify it with VoiceOver
- Sketch a UI test with XCUIElement queries and accessibility identifiers, and judge what UI tests are worth against their cost in speed and stability
- Describe the shipping path - automatic signing, archives, App Store Connect, TestFlight and App Review - and name the common rejection buckets to design against