smithery.ai

ios-engineer

You MUST use this skill for ANY changes you make within to the iOS app. Senior iOS engineer with visual feedback capabilities via simulator MCP tools.

First seen Apr 9, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsRead, Grep, Glob, Edit(ios/*), Write(ios/*), Bash(xcodebuild *), Bash(xcrun simctl *), Bash(git *), Bash(./apollo-codegen*), Task, mcp__ios-simulator__*
Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,919 B
  • docs SUMMARY.md 170 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

iOS Engineer

Senior iOS engineer with expertise in building iOS applications and gathering visual feedback via iOS Simulator MCP integration.

Prerequisites

This skill requires external tools for simulator automation. Run the setup script:

.claude/plugins/ios-engineer/setup.sh

Required dependencies:

  • Xcode - iOS development environment
  • Homebrew - Package manager for macOS
  • pyenv - Python version manager (fb-idb requires Python ≤3.13, not 3.14+)
  • idb-companion - Facebook's iOS automation tool (brew tap facebook/fb && brew install idb-companion)
  • fb-idb - Python client for IDB (pip install fb-idb)
  • Node.js - For running MCP servers via npx

The setup script will configure pyenv to use Python 3.13.5 for this project via .python-version.

Visual Feedback Loop

This skill has access to iOS Simulator MCP tools that enable a powerful feedback loop:

Available MCP Tools

Tool Purpose
mcpios-simulatorui_view Take screenshot and return image data for analysis
mcpios-simulatoruidescribeall Get full accessibility tree of current screen
mcpios-simulatoruidescribepoint Describe element at specific coordinates
mcpios-simulatorui_tap Tap at coordinates (x, y)
mcpios-simulatorui_swipe Swipe gesture between coordinates
mcpios-simulatorui_type Type text into focused field
mcpios-simulatorscreenshot Save screenshot to file
mcpios-simulatorrecord_video Record screen video
mcpios-simulatorlaunch_app Launch app by bundle ID
mcpios-simulatorinstall_app Install .app bundle

Screenshots Directory

Screenshots and recordings are saved to ios/.screenshots/ (gitignored). This directory:

  • Keeps simulator artifacts organized within the iOS directory
  • Is automatically used by the MCP server via IOSSIMULATORMCPDEFAULTOUTPUT_DIR
  • Can be cleaned up with ios/.screenshots/cleanup.sh (deletes files older than 7 days)
  • Use ios/.screenshots/cleanup.sh --all to delete everything

Workflow: Build-See-Iterate

After making UI changes, follow this workflow:

1 Install Dependencies

xcodebuild -resolvePackageDependencies -project $PROJECT_NAME.xcodeproj -scheme $SCHEME
  1. Build the app
Use mcp__xcodebuild tools or:
xcodebuild -scheme $SCHEME -destination 'platform=iOS Simulator,name=$SIMULATOR' build
  1. Launch in simulator
mcp__ios-simulator__launch_app with bundle ID: $BUNDLE_ID
  1. Navigate to the changed screen
  • Use deep links: xcrun simctl openurl booted "$DEEPLINKSCHEME://..."
  • Or use ui_tap to navigate through the UI
  1. Capture and analyze
  • Use ui_view to get screenshot for visual analysis
  • Use uidescribeall to verify accessibility tree
  • Verify elements exist and are correctly positioned

When to Use Visual Feedback

Always use visual feedback for:

  • New UI components or screens
  • Layout changes (spacing, alignment, sizing)
  • Animation or transition work
  • Accessibility changes
  • Dark mode / appearance changes

Optional for:

  • Business logic changes with no UI impact
  • GraphQL query/mutation changes (test via backend)
  • Minor text changes (can verify via accessibility tree)

Core Patterns

Coding Best Practices

  • Prefer composition over inheritance
  • Extract reusable views into separate files

Accessibility

  • Always set accessibilityIdentifier for testable elements
  • Use semantic labels for VoiceOver
  • Test with uidescribeall to verify hierarchy

Code Quality Workflow

After completing ANY iOS work:

  1. Build - Verify no compilation errors
  1. Visual verification - Use simulator MCP tools to see your changes
  1. Accessibility check - Use uidescribeall to verify element tree

Simulator Automation Examples

Take screenshot after navigation

1. mcp__ios-simulator__launch_app(bundleId: "$BUNDLE_ID")
2. Wait 3 seconds for app load
3. mcp__ios-simulator__ui_view() - analyze the home screen
4. mcp__ios-simulator__ui_tap(x: 200, y: 400) - tap on element
5. mcp__ios-simulator__ui_view() - verify navigation worked

Verify accessibility

1. mcp__ios-simulator__ui_describe_all() - get full element tree
2. Verify expected elements are present with correct labels
3. Check for missing accessibility identifiers

Test dark mode

xcrun simctl ui booted appearance dark
# Then use ui_view to capture and compare