Best Practices for Shipping iOS and macOS Apps with Claude Code
Best Practices for Shipping iOS and macOS Apps with Claude Code
Claude Code can write decent Swift, decent Rust, and decent Flutter. But if you think that means you can hand it a spec and get a shippable app, you are going to have a bad time. The senior engineer is still you.
Where Claude Code Excels
Claude Code is genuinely good at writing individual components in each language. A SwiftUI view? Clean and functional. A Rust data processor? Handles the happy path well. A Flutter widget? Matches the design spec closely.
The code quality within a single file or module is surprisingly high. If your app were just a collection of independent components, Claude Code would be all you need.
Where It Falls Apart
Integration points. The boundary between Swift and Rust via FFI. The bridge between Flutter and native platform code. The handoff between your local database and your sync layer. These are the places where Claude Code produces code that compiles but does not work correctly under real conditions.
The model does not have intuition about:
- Memory management across FFI boundaries - who owns this pointer?
- Threading models that differ between languages - Swift's actor isolation vs Rust's ownership
- Platform-specific lifecycle events - what happens when the app backgrounds mid-sync?
- Error propagation across language boundaries - how does a Rust panic surface in Swift?
The Best Practices
- Write the integration layer yourself - let Claude handle the components on either side
- Review every FFI boundary - the model gets ownership and lifetime semantics wrong often
- Test on real devices early - simulator-only testing hides threading and performance issues
- Use CLAUDE.md to document integration contracts - so agents do not accidentally change the interface between layers
- Keep the human on the critical path - code review is not optional, it is the job
The Senior Engineer Role
Your value is not typing code faster. It is knowing which code matters, where the risks are, and what will break in production. Claude Code amplifies your ability to ship, but only if you are directing it with the judgment of someone who has shipped before.
- Writing Code to Reviewing Code - The AI Shift
- Building with Claude Code - macOS Agent
- AI Coding Skill Is Decomposing Problems, Not Prompting
Fazm is an open source macOS AI agent. Open source on GitHub.