2025年後半の本格展開以来、Claude(Anthropic)のAgent Skills機能は開発者のワークフローを激変させました。その中でも、特にiOSアプリ開発者やQAエンジニアの間で「三種の神器」の一つとして数えられているのが、conorluddy氏による**「iOS Simulator Skill」**です。
本記事では、このスキルの核心であるAccessibility APIを活用したセマンティック操作から、内部で動くidb (Facebook iOS Device Bridge) の統合、そしてエラー処理のメカニズムまでを詳細に解説します。
1. スキルの概要と主要機能
このスキルを導入すると、ClaudeはiOS Simulatorを「ピクセル(座標)」ではなく、**「UIの意味(要素)」**として理解し、操作できるようになります。
主な機能
- ビルド・実行の自動化: Xcodeを直接触らずに、アプリのビルド、インストール、起動を完結。
- セマンティック操作: 「ログインボタンをタップ」といった指示を、Accessibilityプロパティ(Label, ID, Type)に基づいて実行。
- 画面マッピング: 現在の画面上の全操作可能要素をツリー構造で取得(Screen Mapping)。
- デバッグ・検証支援: スクリーンショット取得、ログ収集、状態確認。
- アクセシビリティ監査: accessibility_audit.py によるWCAG準拠チェック。
2. 核心技術:Accessibility APIによる「意味ベース操作」
従来の自動化ツール(画像認識や固定座標)と一線を画すのが、iOSのAccessibility APIの徹底活用です。
なぜAccessibilityベースなのか?
- UI変更への耐性: レイアウトや画面サイズが変わっても、要素の「役割(Role)」や「ラベル」が変わらなければスクリプトは壊れません。
- AIとの親和性: Claudeが「"同意する"を押して」と理解した際、そのまま find-text "同意する" というコマンドに変換できるため、トークン消費を抑えつつ高い精度を維持できます。
主要なプロパティ活用表
プロパティ 用途 スキルでの活用例
accessibilityLabel 要素の表示テキスト --find-text "ログイン"
elementType / role 要素の種類(Button等) --find-type TextField
accessibilityIdentifier 開発用一意ID ID指定による確実な特定
frame / bounds 内部的な座標計算 タップ位置の自動算出(ユーザーは意識不要)
