Claude Code can write, build and test mobile apps: it edits Swift, Kotlin and TypeScript, runs your build tools, and on a Mac it can run your iOS app in the desktop app's iOS Simulator pane and tap through it to check its own work. Android and React Native work goes through the command-line tools you already use, and skills from Expo and community authors add platform-specific rules.
This guide covers the iOS Simulator pane, testing from the CLI, Android and cross-platform workflows, useful skills and the guardrails to set. Facts come from Anthropic's docs, read on 26 October 2026.
How does Claude Code test iOS apps in the simulator?
Through the iOS Simulator pane in Claude Code Desktop. Anthropic's docs describe it as being "in public beta in Claude Code Desktop on macOS," available on Pro, Max, Team and Enterprise plans, except Enterprise organizations with a HIPAA configuration.
Requirements from the same page:
- Claude Desktop v1.24012.0 or later
- A Mac, since Apple's iOS Simulator runs only on macOS
- Xcode with the iOS platform installed; Xcode 26.x or Xcode 27 is recommended
- A local session, because cloud and SSH sessions can't reach your Mac's simulators
There's no command to open it. Start a session in the Code tab with your app's project folder, then phrase the task around running or checking the app. This prompt is from Anthropic's docs:
Build the app and run it in the simulator to check the onboarding flow.
When the app launches, the pane opens beside the conversation and streams the device screen. Claude installs the app, taps through it and reads the screen to verify its changes. To target a device, name it, for example "run it on the iPhone SE simulator."
The pane is interactive. You can tap and swipe, press Home with Cmd+Shift+H, rotate with Cmd+Right Arrow, save a screenshot with Cmd+S or a recording with Cmd+R, and switch devices from the device menu. You and Claude drive the same device, so wait for the Claude is using this device badge to clear before you tap.
Each device belongs to the session that launched it, so parallel sessions don't share a simulator. A session can open up to 4 device panes, and Claude Code Desktop shuts down the simulators it booted when you quit, archive the session, or 10 minutes after you detach a device.
How do you test iOS apps from the Claude Code CLI?
The CLI has no simulator pane. Anthropic's docs say "From the CLI, Claude reaches the iOS Simulator through computer use instead," which controls the simulator on your screen as you would with a mouse.
Computer use in the CLI is a research preview on macOS that requires a Pro or Max plan. It isn't available on Team or Enterprise plans, and it needs an interactive session, so it doesn't work with -p. To set it up, run /mcp, select the built-in computer-use server, choose Enable, and grant macOS Accessibility and Screen Recording permissions when asked. This example is from Anthropic's docs:
Open the iOS Simulator, launch the app, tap through the onboarding
screens, and tell me if any screen takes more than a second to load.
Xcode also connects the other way. Anthropic's Xcode announcement says "Xcode 26.3 introduces a native integration with the Claude Agent SDK," and that "Developers using Claude Code can integrate with Xcode over MCP and capture visual Previews without leaving the CLI." The computer use guide covers the CLI setup in more detail.
Can Claude Code help with Android development?
Yes, through code and the command line. Claude Code reads and edits Kotlin, Java and Gradle files and runs commands in your shell, so it can run the Gradle builds, tests and lint tasks you already use and read their output.
What Anthropic doesn't document is an Android equivalent of the iOS pane. For visual checks, take a screenshot from the emulator and attach it, or describe what you see. Computer use in Claude Code Desktop works on macOS and Windows and can operate apps that have no CLI, but it requires a Pro or Max plan and isn't available on Team or Enterprise. The Kotlin prompts and Flutter prompts collections have starting points.
How do you use Claude Code with React Native and Expo?
Start with project instructions. The CLAUDE.md template for React Native and Expo lists the install, dev build and EAS commands, the Expo Router layout and native rules, so every session uses the right tools instead of guessing.
Then add skills. Expo maintains official skills in its expo/skills repository, and Vercel publishes a React Native rules skill. For the iOS side of an Expo or React Native app, the simulator pane applies too, since "Any project that builds an app for the iOS Simulator works," according to Anthropic's docs.
Which skills help with mobile development?
| Need | Skill | Maintainer |
|---|---|---|
| SwiftUI review | SwiftUI Pro | Paul Hudson |
| SwiftUI writing and review | swiftui-expert-skill | Antoine van der Lee |
| Swift concurrency | Swift Concurrency Pro | Paul Hudson |
| Expo dev clients | expo-dev-client | Expo |
| Native-feeling Expo screens | expo-native-ui | Expo |
| SwiftUI and Jetpack Compose via @expo/ui | expo-ui | Expo |
| Native modules | expo-module | Expo |
| React Native in an existing native app | expo-brownfield | Expo |
| OTA update health | eas-update-insights | Expo |
| React Native and Expo rules | React Native skill | Vercel |
Each page covers what the skill checks and how to install it. The Claude Code skills guide explains how skills load.
Which prompts work well for mobile work?
These are example prompts written for this guide, not taken from Anthropic's docs:
Add a settings screen with a dark mode toggle that persists across launches. Follow the patterns in Views/Profile. Then build, run it on the iPhone 16 simulator, toggle the setting, relaunch the app and confirm it stuck.
Review the SwiftUI views in Features/Checkout for deprecated APIs, unnecessary view updates and missing accessibility labels. Report findings first; don't edit yet.
The Android build fails after the Kotlin upgrade. Run the Gradle build, read the error, and propose the smallest fix. Don't change dependency versions without asking.
Our Expo app crashes on launch on iOS only. Read the native logs from the last run, find the cause, and explain it before you change any config.
The Swift prompts and React prompts collections have more.
What guardrails should mobile developers set?
- Builds follow your permission mode. Anthropic's docs note that building the app prompts according to your session's permission mode "because
xcodebuildruns your project's build scripts on your Mac." Opening a URL on the device does too. - Use test accounts. Claude's screenshots of a simulated device "are sent to Anthropic and kept under your normal conversation retention settings, so don't sign in to real accounts on a device Claude uses."
- Organizations can turn it off. The
disableMobileSimulatorToolsmanaged setting blocks Claude's simulator tools while leaving the pane usable for your own taps. - Keep signing secrets out of reach. Add deny rules for keystores, provisioning profiles and
.envfiles. The permissions guide shows the syntax.
Where do you keep your mobile prompts and skills?
Mobile teams reuse the same build-and-verify prompts on every screen. Kipt keeps prompts and Agent Skills as Markdown in a private GitHub repo you own, with {{name}} blanks for things like a screen or device name, and installs your skills into Claude Code or Codex with npx skills add. To turn a prompt into a skill folder, try the free SKILL.md generator.