V
Vibe Code Academy

Portola iOS App

iOS Development with Claude Code

PD

Paula Dozsa

Builder, Portola

2-3 hours to set up workflow
Intermediate
SwiftiOSClaude CodeGitHubLinearSentry

Learn how Paula built a 200k MAU iOS app with zero prior iOS experience using Claude Code, agents, skills, and MCPs to establish a production-grade vibe coding workflow.

Prerequisites

  • Mac with Xcode installed
  • Claude Code CLI access
  • Basic understanding of mobile app concepts

Build Steps

1

Set Up Claude Code with Skills

Create markdown skill files that encode tribal knowledge - everything you would tell a new hire in their first week. Skills are loaded just-in-time by Claude to understand your codebase patterns.

2

Create a Build Agent

Set up an agent that knows how to build your app and gets a log of all errors. The agent can continuously rebuild your app, fix errors, and build again until it gets a working solution. This overcomes the assumption that LLMs can't see iOS output since it's not in a browser.

3

Set Up Review Agents

Create specialized reviewing agents: a logic reviewing agent using Opus for complex reasoning, and a pattern reviewing agent using Sonnet for checking code consistency. Different models excel at different tasks.

4

Build a PR Shepherd Agent

Create an agent that reads PR review comments and addresses them automatically. The PR shepherd commits changes based on reviewer feedback, going back and forth with review bots until the PR is ready.

5

Connect MCP Integrations

Set up MCPs (Model Context Protocols or 'Magic Cloud Powers') to give Claude access to external services. Connect GitHub for PRs, Linear for tickets, Sentry for crash logs, and Figma for designs - all in one conversation.

Code
// Example: Claude reads a bug ticket, pulls crash logs, checks Figma, and creates a fix PR
// MCPs connected: GitHub, Linear, Sentry, Figma, PostHog, Datadog
6

Enable Designer PRs via Slack

Set up a Slack integration where designers can submit visual changes. They post a screenshot with a description, and Claude creates a PR implementing the change. Users won't know the difference.