Claude Code plus Xcode Production iOS Workflow Kit showing inspect, plan, implement, verify, and report stages
A production-shaped Claude Code workflow for mixed SwiftUI and UIKit projects.

I do not need Claude Code to sound more confident. I need it to tell me what it inspected, what it assumed, what it changed, which Xcode checks actually ran, and what remains unverified.

Disclosure: I built and sell the Production iOS Workflow Kit discussed below. This article explains the engineering problem and the exact workflow behind the product; it is not an independent review.

The risky part of using an AI coding tool in an iOS repository is rarely Swift syntax. The bigger risk appears when the tool starts editing before it understands the real source of truth, the project scheme, minimum iOS version, persistence boundary, UIKit lifecycle, or release constraints.

A prompt such as “add a filter to this screen” sounds specific to a human who already knows the codebase. To a new coding agent, it leaves almost every important engineering decision open.

The central idea

Give the coding agent a reviewable workflow, not a wish.

The sequence I use is simple: inspect the repository, classify risk, plan narrowly, implement the smallest coherent change, verify it with real commands, and finish with an evidence-based report.

6workflow commands
10specialist agents
8focused rules
9/9sample tests passed

Why a generic iOS prompt fails before the first edit

Consider a small ticket: add All, Open, and Completed filters to a task list. The UI is easy. The unanswered questions are not.

Missing context What can go wrong What the workflow must establish
State ownership The filter is duplicated in a view, ViewModel, and repository. Identify the existing owner and keep one source of truth.
Persistence contract A presentation-only filter accidentally changes saved JSON. Prove which state is transient and which state is persisted.
Minimum iOS version The implementation uses an API unavailable to the app's deployment target. Read the actual target settings before selecting an API.
Xcode container and scheme The tool runs the wrong project, target, or test bundle. Discover the real .xcodeproj or .xcworkspace, scheme, and destination.
Definition of done “Implemented” means code was generated, not that it builds or behaves correctly. Name the exact tests, build, accessibility checks, and residual risk.

My rule: no edit should begin until the agent can name the relevant architecture, state owner, build container, scheme, test target, deployment target, and sensitive boundaries—or clearly mark them as unknown.

The six-stage workflow you can copy

This sequence works for features, bug fixes, reviews, test hardening, performance investigations, and release audits. The depth changes with the risk; the order stays stable.

  1. Inspect. Read the project instructions, target files, sibling patterns, state owner, repository or service boundary, project container, scheme, deployment target, and existing tests.
  2. Classify risk. Separate ordinary UI work from changes involving auth, purchases, PII, persistence, signing, destructive commands, or production release actions.
  3. Plan narrowly. State the smallest coherent change, files likely to move, tests to add or update, and assumptions that still need confirmation.
  4. Implement. Follow the repository's established SwiftUI, UIKit, Combine, MVVM, naming, dependency, and availability patterns instead of importing a new architecture.
  5. Verify. Run the narrowest relevant tests first, then the broader build or suite justified by the risk. Record exact commands and results.
  6. Report. Summarize the outcome, risk level, files changed, verification evidence, quality checks, and anything that remains unverified.

You can start with a small repository instruction like this:

Before editing:
- Inspect the project or workspace, scheme, target, deployment version, and nearby patterns.
- Identify the existing state owner and persistence or service boundary.
- Classify the task as low, medium, or high risk.
- Stop for human approval before auth, payment, PII, destructive persistence,
  signing, publishing, or production-release changes.
- Propose the smallest coherent plan.

Before calling the task complete:
- Run the relevant targeted tests and an appropriate build.
- Check main-thread delivery, cancellation, lifecycle, retain cycles,
  accessibility, and API availability where relevant.
- Report exact commands, results, changed files, assumptions, and residual risk.

That alone is better than a clever one-line prompt because it changes the completion contract. The agent is no longer rewarded for merely producing a diff.

A good completion report is part of the implementation

The final answer should be easy for another engineer to challenge. A compact report can look like this:

Outcome
Added All/Open/Completed filtering without changing persisted task data.

Risk
Low presentation-state change. No auth, payment, PII, or schema change.

Files
TaskListViewModel.swift
TaskListView.swift
TaskListViewModelTests.swift

Verification
- Targeted ViewModel tests: passed
- Generic iOS Simulator build: passed
- Dynamic Type and accessibility label check: completed

Residual risk
Localized filter titles still require product translation review.

Notice what this report does not say: everything is production-ready. It states the evidence that exists and the work that still belongs to a human or another environment.

Why iOS work benefits from specialist review

One general coding prompt rarely gives equal attention to SwiftUI state, UIKit lifecycle, concurrency, tests, accessibility, performance, and release metadata. These areas fail differently.

Area Questions worth forcing into the review
SwiftUI Who owns the state? Is identity stable? Are availability and cancellation handled? Is the view doing work that belongs elsewhere?
UIKit Are lifecycle timing, reuse, Auto Layout, main-thread updates, delegate ownership, and retain cycles correct?
Testing Which behavior is deterministic? Which target runs it? Does the command point at a real scheme and available simulator?
Accessibility Does the change survive Dynamic Type? Are labels, traits, focus order, hit targets, and reduced-motion behavior appropriate?
Performance Is there a measured symptom? Are updates, allocations, image work, or repeated layout passes visible in evidence rather than guessed?
Release What was built and tested? What still needs a device, signed archive, privacy review, entitlement check, or App Store action?

What I packaged into the Production iOS Workflow Kit

I turned this approach into a copy-ready system so I would not have to rebuild the same project context, command structure, safety gates, and completion format for every repository.

Repository context

Copy-ready AGENTS.md and customizable CLAUDE.md templates give Claude a map of the project, commands, architecture, conventions, and boundaries.

Six explicit workflows

/ios-feature, /ios-bugfix, /ios-review, /ios-test, /ios-performance, and /ios-release keep different jobs from collapsing into one generic prompt.

Rules and specialist agents

Eight focused rules and ten iOS agents cover architecture, Swift style, SwiftUI, UIKit, debugging, testing, performance, accessibility, CI, privacy, and release readiness.

Runnable evidence

The download includes a complete iOS 13+ TaskBoard Xcode project using SwiftUI, programmatic UIKit with SnapKit, Combine, MVVM, local JSON persistence, eight unit tests, and one UI test.

The package also includes two optional local hooks, six runbooks, six worked ticket-to-report examples, installation and customization documentation, a ten-profile adoption guide, Markdown and 16-page PDF guides, plus build, test, package-verification, ZIP, and checksum scripts.

Verification matters more than a feature count

What was actually checked in the shipped package

  • Debug and Release builds completed successfully.
  • 9 of 9 tests passed: eight unit tests and one UI test.
  • The test run used an iPhone 14 simulator on iOS 18.0.
  • SnapKit 5.7.1 resolved from its exact SPM pin.
  • Hook syntax, JSON, and behavior fixtures passed.
  • The release archive passed CRC, exact-membership, and SHA-256 checks.

There are limits. The sample's iOS 13 deployment target compiles, but runtime verification used iOS 18.0. The package does not claim a physical-device run, signed archive, App Store upload, backend integration, or production credential flow.

That distinction is deliberate. A workflow kit should improve the quality of engineering evidence; it should not pretend that a passing simulator build proves every release condition.

Keep human approval around sensitive boundaries

Extra care for production and fintech repositories

Stop for an authorized human decision before changing authentication, purchases, entitlements, PII handling, persistence schemas, destructive migrations, signing, privacy declarations, publishing, or production release behavior.

Do not place API keys, certificates, session tokens, real customer data, private analytics, payment records, or unapproved employer code in prompts or reusable instruction files. The included TaskBoard sample uses fictional local JSON data; it is not a secure-storage reference for regulated or sensitive data.

Who this is for—and who should skip it

It is a strong fit if you are

  • An intermediate or professional iOS developer using Claude Code.
  • Working in SwiftUI, UIKit, or a mixed application.
  • Maintaining MVVM or pragmatic Clean Architecture.
  • Trying to standardize features, bug fixes, reviews, tests, performance work, or release checks.
  • Willing to customize project names, schemes, targets, and policies.

Skip it if you expect

  • Autonomous App Store publishing or guaranteed approval.
  • A replacement for code review, device testing, or engineering judgment.
  • A beginner course on Swift or Xcode fundamentals.
  • Employer-specific, financial, backend, or proprietary production code.
  • A team license from one individual purchase.

Requirements and compatibility

The included object-version-77 sample project requires macOS with Xcode 16 or later. Claude Code must be installed and authenticated separately. Python 3 is used by the optional hooks, package verifier, and simulator-selection helper, while internet access is needed for Claude Code and the first SnapKit resolution.

The default profile is optimized for MVVM, Combine, SPM, SwiftUI, and programmatic UIKit. CocoaPods and Storyboard repositories can adapt the workflow to their real .xcworkspace and existing commands, but the included sample does not demonstrate that setup. Swift 6, TCA, Tuist, enterprise-managed, monorepo, and Swift-package repositories also need the documented adaptation instead of a blind copy.

Frequently asked questions

Does the kit install Claude Code?

No. Claude Code is installed and authenticated separately.

Will it rewrite my architecture?

The templates require repository inspection and discourage unnecessary rewrites. You still approve the plan and review every diff.

Are the hooks required?

No. They are opt-in, conservative, and do not auto-approve commands. They are defense in depth rather than a security guarantee.

Does it work with CocoaPods?

The workflow can be adapted to your existing .xcworkspace and pod commands. The included sample and verification scripts use an Xcode project with SPM; there is no CocoaPods sample.

Can I use it in a commercial app or client project?

Yes. The individual license permits use and modification in your own commercial applications and in client work. Redistribution of the kit itself is not included, and each additional developer needs a separate purchase.

Does it include real source code?

Yes. TaskBoard is a complete Xcode project with SwiftUI, programmatic UIKit with SnapKit, Combine, MVVM, JSON persistence, unit tests, and a UI test.

Claude Code + Xcode

Move from vague prompts to a reviewable iOS workflow.

Start with repository context, use the right workflow for the task, run real Xcode checks, and finish with evidence another engineer can inspect.

Get the Production iOS Workflow Kit →

One-time purchase · $18 USD · Price verified August 25, 2026 · Claude Code sold separately