Talk 09

iOS app with zero experience

iosportola

Summary

Overview

Paula Dozsa, an iOS engineer at Portola with 8 years of experience, challenges the conventional wisdom that vibe coding is only for prototypes and side projects. She demonstrates how her team uses Claude to ship production features for Tolan, an AI companion app with hundreds of thousands of users. The session focuses on practical workflows for integrating AI coding into existing codebases through skills, agents, hooks, and MCP integrations.

Main Discussion

The Tolan App Context

Paula works on Tolan, an AI companion app that combines iOS and Unity development. The app aims to be a "best friend that knows everything about the world" and promotes mental health and real-life friendships. Recent features she built with Claude include a customization shop and planet decoration system.

Production Vibe Coding in Action

The standout example was a token animation built in 5 minutes that would have taken hours manually. Claude produced production-ready SpriteKit code with physics-aware coin animations, rotation, and easing - exceeding the original Figma design in quality.

The Four Pillars of Their Setup

  • Skills: 13+ markdown files encoding tribal knowledge and patterns
  • Agents: Specialized workers for building, reviewing (Opus for logic, Sonnet for patterns), and PR shepherding
  • Hooks: Guardrails that run before/after Claude uses tools
  • MCPs: Integrations with GitHub, Linear, Sentry, Figma, PostHog, Datadog
  • Team Dynamics

    • Designers with no coding experience now open iOS and backend PRs
    • Engineers review AI-generated code before merging
    • Features ship to the App Store in 3-5 days
    • Claude is treated like "an intern that learns very quickly"

    Key Takeaways

    • Vibe coding is production-ready - Not just for prototypes; Portola ships Claude-generated code to hundreds of thousands of users
    • Setup investment pays off - Time spent configuring skills, agents, and hooks enables consistent, high-quality output
    • Treat Claude like a new hire - Onboard it with your patterns, architecture decisions, and conventions through skills
    • MCPs are your MVPs - Integrating GitHub, Linear, Sentry, and Figma lets Claude work across systems like a real engineer
    • Agents can self-review - PR shepherd agents read review comments and address them before human review
    • Different models for different tasks - Use Opus for logic review, Sonnet for pattern review
    • Designers can ship code - Non-engineers can create production PRs with proper guardrails and review
    • Let AI surprise you - The token animation exceeded the original design because Claude wasn't constrained by exact specifications
    • Speed enables experimentation - Moving from idea to App Store in days lets the team iterate quickly
    • Ask Claude to write your Claude setup - Use the AI to help configure skills and agents
    • Skills capture onboarding knowledge - Create skills alongside actual new hire onboarding questions
    • Hooks prevent known mistakes - Automated guardrails catch patterns you've identified as problematic
    • Voice input is the next frontier - Team members are exploring voice-based prompting (mention of Monologue)
    • iOS development is AI-compatible - Despite not being browser-based, agents can build apps and parse error logs
    • The gardening metaphor - Set conditions for AI to produce, then embrace unexpected quality outcomes

    Memorable Moments

    The Token Animation Demo

    Paula showed a SpriteKit animation of coins flying into a counter, built in 5 minutes with a simple prompt. Claude added rotating coins in flight - a feature not even in the original design - demonstrating AI's "feel for physics."
    "I did not expect that an LLM would have a feel for the physics of it and how things should look. But it actually did a better job than what was even prototyped in the Figma file."

    The Gardening vs. Sculpting Metaphor

    Dan Shipper offered a powerful reframe: traditional development is like sculpting (control every detail), while AI-assisted development is like gardening (set conditions, accept emergent outcomes).

    Designers Opening PRs

    The revelation that designers with no coding experience now open iOS and backend PRs - and those PRs are "basically ready to go" after Claude's self-review process.

    The Dan Pattern

    The observation that successful AI adoption requires a champion: "If you don't have a Dan, you should get one." A "cabal of pro AI Dans" is reportedly injecting Claude into startups everywhere.

    Key Concepts

    Production Vibe Coding

    Using AI-assisted coding (vibe coding) to ship features directly to production in apps with real users, not just for prototypes or experiments.

    Skills (Claude Configuration)

    Markdown files written in plain English that encode domain-specific knowledge, patterns, and conventions for Claude to follow when generating code.

    Agent Specialization

    Creating purpose-built AI agents that handle specific tasks (building, reviewing, PR shepherding) and can use different models based on task complexity.

    PR Shepherd Agent

    An agent that reads comments left on pull requests by review agents, addresses the feedback, and commits fixes - iterating until the PR is ready for human review.

    Hooks (Guardrails)

    Scripts that run before or after Claude uses tools, blocking unwanted patterns and enforcing constraints.

    Notable Quotes

    "I wanted to challenge something that I hear a lot, specifically that Vibe Coding is only for prototypes or side projects or projects that you're building from scratch."
    "Vibe coding can be used in production. And, you know, your non-engineers can ship code and your users won't know the difference."
    "I wouldn't necessarily say that you can vibe code anything, but it's ready for a lot more than I think most people think right now."
    "I did not expect that an LLM would have a feel for the physics of it and how things should look. But it actually did a better job than what was even prototyped in the Figma file."

    Tools Mentioned

    Claude (Anthropic)Opus (Claude Opus 4.5)SonnetCodex (OpenAI)CursorSwiftSpriteKitUnityXcodeGitHub MCPLinear MCPSentry MCPFigma MCPPostHog MCPDatadog MCP

    Transcript

    09 of 18