Guided learning · Series roadmap
From first prompt
to shipped app.
A step-by-step Swift learning path, from opening Xcode to reviewing, testing and shipping an app.
All 84 lessons are available to read, with a diagram in each. These educational guides distinguish recorded results from practice exercises and blocked hands-on labs. Read each lesson’s evidence section before treating an example as verified.
Level 0
Orientation (for people who have never opened Xcode)
- 0.1What "vibe coding" a Swift app actually means, and what it doesn'tRead lesson
- 0.2What you need before an AI can build you an iOS app: Mac, Xcode, Apple ID, simulatorRead lesson
- 0.3Choosing a coding agent for iOS in 2026: Claude Code, Codex, Antigravity, Muse Code, Xcode's ownRead lesson
- 0.4Your first hour: install Xcode, run the simulator, build the template app without AIRead lesson
- 0.5How coding agents read a project: AGENTS.md, CLAUDE.md, GEMINI.md, and what to put in themRead lesson
- 0.6Skills, plugins, MCP servers, hooks: the four words you'll see everywhere, explained onceRead lesson
Level 1
First app with an agent (day one)
- 1.1Build a SwiftUI to-do app with Claude Code: the brief, checks and repair workflowRead lesson
- 1.2Compare the same to-do app task in Codex without changing the acceptance criteriaRead lesson
- 1.3Prepare an Antigravity app-building trial and identify missing setupRead lesson
- 1.4Prepare a Muse app-building trial beyond tool discoveryRead lesson
- 1.5Writing an app brief an agent can build from: ten practice briefsRead lesson
- 1.6Generating an Xcode project the agent can edit: XcodeGen vs opening .xcodeproj by handRead lesson
- 1.7Running and seeing your app: simulator boot, install, launch, screenshot from the agentRead lesson
- 1.8What to do when the build fails: reading Xcode errors with an agentRead lesson
Level 2
Making the agent reliable (week one)
- 2.1Review Swift 6 settings and actor isolation before changing agent-generated codeRead lesson
- 2.2Getting an agent to run checks: hooks, Stop conditions and verification limitsRead lesson
- 2.3Making the agent prove it: screenshots as evidence, not "done"Read lesson
- 2.4Reviewing agent output before you commit: a focused checklistRead lesson
- 2.5Git for vibe coders: branches per prompt, checkpoints, and undoing an agent's messRead lesson
- 2.6Keeping the agent inside your design: tokens, no hardcoded colors, no fixed fontsRead lesson
- 2.7SwiftUI prompt practice: 25 scoped exercises and acceptance checksRead lesson
- 2.8When a SwiftUI agent task fails: ten failure categories to distinguishRead lesson
Level 3
Real features (weeks two to four)
- 3.1Local persistence contracts: Reading List JSON storage and a SwiftData alternativeRead lesson
- 3.2Search, filtering and empty states that pass accessibility reviewRead lesson
- 3.3Networking and Codable with an agent: the concurrency mistakes to catchRead lesson
- 3.4Navigation in SwiftUI: what agents get wrong with NavigationStackRead lesson
- 3.5Adding widgets with App Intents: a timeline and verification planRead lesson
- 3.6Designing Siri actions with App Intents and testable domain operationsRead lesson
- 3.7On-device AI: Foundation Models readiness and fallback designRead lesson
- 3.8Notifications, background tasks and the permissions agents forgetRead lesson
- 3.9Deep links and universal links, and using them for automated screenshotsRead lesson
- 3.10Localization with an agent: what to check before it "translates" everythingRead lesson
Level 4
Design and assets
- 4.1App icons in 2026: Liquid Glass, Icon Composer, and generating them from SVG layersRead lesson
- 4.2Color systems that survive dark mode and high contrast, generated from tokensRead lesson
- 4.3Typography in SwiftUI that respects Dynamic Type: rules an agent can followRead lesson
- 4.4Motion and haptics: what to ask an agent for, and what reduced-motion users needRead lesson
- 4.5Making an agent-built app look intentional, not templatedRead lesson
- 4.6Preparing repeatable simulator captures for App Store screenshotsRead lesson
- 4.7From Figma to SwiftUI with an agent: variables to tokens to codeRead lesson
Level 5
Quality and testing
- 5.1Swift Testing vs XCTest: what to have the agent generate in 2026Read lesson
- 5.2UI tests an agent can write and maintainRead lesson
- 5.3Accessibility review of an agent-built app: the checks that matterRead lesson
- 5.4Performance: hangs, launch time and the patterns agents introduceRead lesson
- 5.5Memory: retain cycles agents create in closures and CombineRead lesson
- 5.6Security review of an agent-built app: keychain, ATS, secrets in sourceRead lesson
- 5.7Static review vs the compiler: what heuristics catch and what they missRead lesson
Level 6
Shipping
- 6.1App Store readiness: the checks before you upload an agent-built appRead lesson
- 6.2Privacy manifests, permissions strings and the things agents leave blankRead lesson
- 6.3Preparing for TestFlight: signing, builds and account boundariesRead lesson
- 6.4Investigating App Review feedback without guessing the causeRead lesson
- 6.5Versioning, changelogs and release notes the agent can draftRead lesson
- 6.6CI for an iOS repo with agent-written code: what to run on every PRRead lesson
Level 7
Pro workflows
- 7.1Subagents for iOS: splitting review, build and design across agentsRead lesson
- 7.2Coordinating parallel coding work with isolated checkoutsRead lesson
- 7.3Writing your own review rule for a Swift codebaseRead lesson
- 7.4Writing your own skill for a Swift project: SKILL.md structure that agents followRead lesson
- 7.5Building a Claude Code plugin from a skillRead lesson
- 7.6Building a Codex plugin from the same skillRead lesson
- 7.7Cross-client packaging: verified Muse scope and an Antigravity test boundaryRead lesson
- 7.8Verifying a skill across clients: the client verification record methodRead lesson
- 7.9Measuring whether a skill helps: a paired benchmark protocolRead lesson
- 7.10Preparing to verify Xcode 27 agents with external skillsRead lesson
- 7.11Keeping up with Apple: refreshing references after each beta without breaking rulesRead lesson
- 7.12Planning a safe Swift 6 and iOS 27 migrationRead lesson
Level 8
Tips and tricks (short posts, one idea each)
- 8.1Ask for the finding, not the fix: why review-first prompts produce better SwiftRead lesson
- 8.2Ask about actor ownership before adding MainActorRead lesson
- 8.3"Show me the screenshot" as a standing instructionRead lesson
- 8.4Pin your Xcode version in AGENTS.md and stop the agent guessing APIsRead lesson
- 8.5One deep link per screen makes every screenshot automatableRead lesson
- 8.6Keep design tokens in one file and tell the agent it's the only source of colorRead lesson
- 8.7Review the XcodeGen spec before regenerating the projectRead lesson
- 8.8Use `#available` audits before every beta upgradeRead lesson
- 8.9Hooks beat reminders: enforce, don't requestRead lesson
- 8.10When the agent says "done", run the tests yourself onceRead lesson
- 8.11Small prompts, one screen at a time, commit between eachRead lesson
- 8.12Keep signing and account changes separate from code repairsRead lesson
- 8.13Reading agent transcripts: the three phrases that mean it guessedRead lesson
- 8.14Turn every failure into a rule: how findings become reviewsRead lesson
- 8.15Verify Muse observer behavior before recommending itRead lesson
- 8.16Codex worktrees for parallel screensRead lesson
- 8.17Treat background builds as running work, not completed tasksRead lesson
- 8.18Claude Code plan mode before any multi-file Swift changeRead lesson
- 8.19Ask the agent to search local Apple references before the webRead lesson
- 8.20What to put in .gitignore for agent-built Xcode projectsRead lesson