Thomas Ricouard's Agentic iOS Workflow

Table of content
Thomas Ricouard's Agentic iOS Workflow

Thomas Ricouard is a Staff iOS Engineer at Medium and creator of IceCubesApp, a Mastodon client built entirely in SwiftUI with over 6,800 GitHub stars. He spent only 2% of his time in Xcode last year, instead building iOS apps through Cursor and Claude Code.

Background

Ricouard has shipped multiple open-source SwiftUI apps:

He works at Medium and previously worked at Google. Based in France, he blogs at dimillian.medium.com and shares his workflows extensively.

The Agentic iOS Stack

Ricouard’s workflow replaces Xcode as the primary editor while keeping it as a build system:

ToolPurpose
CursorPrimary editor with AI completion
Claude CodeAgentic coding in Cursor or terminal
XcodeBuildMCPBuild, run, manage simulators
Swift LSPCode highlighting and navigation
XcodebuildCompilation backend
GitHub Copilot (Xcode extension)Occasional Xcode work

From his State of Agentic iOS Engineering post:

“As iOS developers, we’re used to Xcode, but let me get this straight: I probably spent only 2% of my time actually in Xcode last year.”

XcodeBuildMCP Integration

XcodeBuildMCP is the bridge that lets AI agents build and test iOS apps. Install it in your Claude MCP configuration:

{
  "mcpServers": {
    "xcodebuild": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/xcodebuild-mcp"]
    }
  }
}

The MCP server provides:

From his XcodeBuildMCP workflow article:

“The Cursor Agent can now build, run, and see your app!”

Vibe Coding SwiftUI

Ricouard tested Claude 4 on iOS projects using his “vibe coding” methodology:

  1. Create empty SwiftUI project in Xcode
  2. Open project in Cursor
  3. Describe the app you want
  4. Let Claude generate structure, views, and models
  5. Use XcodeBuildMCP to validate compilation

Results:

His verdict on Claude and SwiftUI:

“It’s quite good at SwiftUI. It consistently finds the correct way to do stuff, fixes issues, and does what I requested.”

Claude Code in Cursor

Ricouard evolved from using Cursor’s built-in agent to Claude Code:

“I’ve switched from using the Cursor agent to using Claude Code in my terminal to using Claude Code in Cursor itself because the integration is so good!”

The combination gives you:

Open Source Tools

Ricouard created supporting tools for his workflow:

Codex Skill Manager - macOS app to manage Codex, Claude Code, and other AI agent skills

AppRouter - SwiftUI navigation package extracted from IcySky using Claude Code:

“Thanks to Claude Code, I was able to extract code from my Icy Sky codebase into a standalone Swift Package in minutes instead of hours - it did the renaming, documentation, etc.”

Workflow Example

Starting a new iOS feature:

You: Create a settings screen with toggle for dark mode,
     notification preferences, and account management.
     Use the existing UserSettings model.

Claude: I'll create a SettingsView with these sections...
        [creates SettingsView.swift, SettingsViewModel.swift]
        [uses XcodeBuildMCP to build and verify]
        Build succeeded. The app runs on simulator.

For existing codebases, Claude reads the project structure and follows established patterns.

Key Takeaways

PrincipleImplementation
Skip Xcode editingUse Cursor as primary editor
Keep Xcode for buildsXcodeBuildMCP bridges the gap
Trust Claude on SwiftUIIt understands Apple frameworks well
Start in Xcode, edit in CursorCreate project properly, then switch
Use MCP for automationLet agents control simulators and builds

Next: Jesse Vincent’s Superpowers Framework

Topics: ios swiftui claude-code cursor mcp