← Back to all articles

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)

  1. 0.1What "vibe coding" a Swift app actually means, and what it doesn'tRead lesson
  2. 0.2What you need before an AI can build you an iOS app: Mac, Xcode, Apple ID, simulatorRead lesson
  3. 0.3Choosing a coding agent for iOS in 2026: Claude Code, Codex, Antigravity, Muse Code, Xcode's ownRead lesson
  4. 0.4Your first hour: install Xcode, run the simulator, build the template app without AIRead lesson
  5. 0.5How coding agents read a project: AGENTS.md, CLAUDE.md, GEMINI.md, and what to put in themRead lesson
  6. 0.6Skills, plugins, MCP servers, hooks: the four words you'll see everywhere, explained onceRead lesson

What to do next: Level 1 →

Level 1

First app with an agent (day one)

  1. 1.1Build a SwiftUI to-do app with Claude Code: the brief, checks and repair workflowRead lesson
  2. 1.2Compare the same to-do app task in Codex without changing the acceptance criteriaRead lesson
  3. 1.3Prepare an Antigravity app-building trial and identify missing setupRead lesson
  4. 1.4Prepare a Muse app-building trial beyond tool discoveryRead lesson
  5. 1.5Writing an app brief an agent can build from: ten practice briefsRead lesson
  6. 1.6Generating an Xcode project the agent can edit: XcodeGen vs opening .xcodeproj by handRead lesson
  7. 1.7Running and seeing your app: simulator boot, install, launch, screenshot from the agentRead lesson
  8. 1.8What to do when the build fails: reading Xcode errors with an agentRead lesson

What to do next: Level 2 →

Level 2

Making the agent reliable (week one)

  1. 2.1Review Swift 6 settings and actor isolation before changing agent-generated codeRead lesson
  2. 2.2Getting an agent to run checks: hooks, Stop conditions and verification limitsRead lesson
  3. 2.3Making the agent prove it: screenshots as evidence, not "done"Read lesson
  4. 2.4Reviewing agent output before you commit: a focused checklistRead lesson
  5. 2.5Git for vibe coders: branches per prompt, checkpoints, and undoing an agent's messRead lesson
  6. 2.6Keeping the agent inside your design: tokens, no hardcoded colors, no fixed fontsRead lesson
  7. 2.7SwiftUI prompt practice: 25 scoped exercises and acceptance checksRead lesson
  8. 2.8When a SwiftUI agent task fails: ten failure categories to distinguishRead lesson

What to do next: Level 3 →

Level 3

Real features (weeks two to four)

  1. 3.1Local persistence contracts: Reading List JSON storage and a SwiftData alternativeRead lesson
  2. 3.2Search, filtering and empty states that pass accessibility reviewRead lesson
  3. 3.3Networking and Codable with an agent: the concurrency mistakes to catchRead lesson
  4. 3.4Navigation in SwiftUI: what agents get wrong with NavigationStackRead lesson
  5. 3.5Adding widgets with App Intents: a timeline and verification planRead lesson
  6. 3.6Designing Siri actions with App Intents and testable domain operationsRead lesson
  7. 3.7On-device AI: Foundation Models readiness and fallback designRead lesson
  8. 3.8Notifications, background tasks and the permissions agents forgetRead lesson
  9. 3.9Deep links and universal links, and using them for automated screenshotsRead lesson
  10. 3.10Localization with an agent: what to check before it "translates" everythingRead lesson

What to do next: Level 4 →

Level 4

Design and assets

  1. 4.1App icons in 2026: Liquid Glass, Icon Composer, and generating them from SVG layersRead lesson
  2. 4.2Color systems that survive dark mode and high contrast, generated from tokensRead lesson
  3. 4.3Typography in SwiftUI that respects Dynamic Type: rules an agent can followRead lesson
  4. 4.4Motion and haptics: what to ask an agent for, and what reduced-motion users needRead lesson
  5. 4.5Making an agent-built app look intentional, not templatedRead lesson
  6. 4.6Preparing repeatable simulator captures for App Store screenshotsRead lesson
  7. 4.7From Figma to SwiftUI with an agent: variables to tokens to codeRead lesson

What to do next: Level 5 →

Level 5

Quality and testing

  1. 5.1Swift Testing vs XCTest: what to have the agent generate in 2026Read lesson
  2. 5.2UI tests an agent can write and maintainRead lesson
  3. 5.3Accessibility review of an agent-built app: the checks that matterRead lesson
  4. 5.4Performance: hangs, launch time and the patterns agents introduceRead lesson
  5. 5.5Memory: retain cycles agents create in closures and CombineRead lesson
  6. 5.6Security review of an agent-built app: keychain, ATS, secrets in sourceRead lesson
  7. 5.7Static review vs the compiler: what heuristics catch and what they missRead lesson

What to do next: Level 6 →

Level 6

Shipping

  1. 6.1App Store readiness: the checks before you upload an agent-built appRead lesson
  2. 6.2Privacy manifests, permissions strings and the things agents leave blankRead lesson
  3. 6.3Preparing for TestFlight: signing, builds and account boundariesRead lesson
  4. 6.4Investigating App Review feedback without guessing the causeRead lesson
  5. 6.5Versioning, changelogs and release notes the agent can draftRead lesson
  6. 6.6CI for an iOS repo with agent-written code: what to run on every PRRead lesson

What to do next: Level 7 →

Level 7

Pro workflows

  1. 7.1Subagents for iOS: splitting review, build and design across agentsRead lesson
  2. 7.2Coordinating parallel coding work with isolated checkoutsRead lesson
  3. 7.3Writing your own review rule for a Swift codebaseRead lesson
  4. 7.4Writing your own skill for a Swift project: SKILL.md structure that agents followRead lesson
  5. 7.5Building a Claude Code plugin from a skillRead lesson
  6. 7.6Building a Codex plugin from the same skillRead lesson
  7. 7.7Cross-client packaging: verified Muse scope and an Antigravity test boundaryRead lesson
  8. 7.8Verifying a skill across clients: the client verification record methodRead lesson
  9. 7.9Measuring whether a skill helps: a paired benchmark protocolRead lesson
  10. 7.10Preparing to verify Xcode 27 agents with external skillsRead lesson
  11. 7.11Keeping up with Apple: refreshing references after each beta without breaking rulesRead lesson
  12. 7.12Planning a safe Swift 6 and iOS 27 migrationRead lesson

What to do next: Level 8 →

Level 8

Tips and tricks (short posts, one idea each)

  1. 8.1Ask for the finding, not the fix: why review-first prompts produce better SwiftRead lesson
  2. 8.2Ask about actor ownership before adding MainActorRead lesson
  3. 8.3"Show me the screenshot" as a standing instructionRead lesson
  4. 8.4Pin your Xcode version in AGENTS.md and stop the agent guessing APIsRead lesson
  5. 8.5One deep link per screen makes every screenshot automatableRead lesson
  6. 8.6Keep design tokens in one file and tell the agent it's the only source of colorRead lesson
  7. 8.7Review the XcodeGen spec before regenerating the projectRead lesson
  8. 8.8Use `#available` audits before every beta upgradeRead lesson
  9. 8.9Hooks beat reminders: enforce, don't requestRead lesson
  10. 8.10When the agent says "done", run the tests yourself onceRead lesson
  11. 8.11Small prompts, one screen at a time, commit between eachRead lesson
  12. 8.12Keep signing and account changes separate from code repairsRead lesson
  13. 8.13Reading agent transcripts: the three phrases that mean it guessedRead lesson
  14. 8.14Turn every failure into a rule: how findings become reviewsRead lesson
  15. 8.15Verify Muse observer behavior before recommending itRead lesson
  16. 8.16Codex worktrees for parallel screensRead lesson
  17. 8.17Treat background builds as running work, not completed tasksRead lesson
  18. 8.18Claude Code plan mode before any multi-file Swift changeRead lesson
  19. 8.19Ask the agent to search local Apple references before the webRead lesson
  20. 8.20What to put in .gitignore for agent-built Xcode projectsRead lesson

Explore all available articles →