build-iphone-apps について
build-iphone-appsは、iOSアプリの要望を伝え、実装をClaudeに任せるユーザー向けのスキルです。作業を用途別のワークフローに分け、ビルド、テスト、シミュレーターで変更を検証します。
主な機能
- 01一般的なアプリ作業に対応するワークフロー選択
- 02xcodebuildによるビルドとテスト
- 03iOS Simulatorでアプリを起動
- 04テストによるロジックと変更の検証
- 05ユーザー視点での結果報告
活用シーン
- 01要望をもとに新しいiOSアプリを作成
- 02クラッシュの調査やアプリ機能の追加
- 03アプリのテスト、最適化、リリース準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mosif16/ codex-skills --skill build-iphone-appsインストール後、Claude Code で/build-iphone-appsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/accessibility.mdapp-architecture.mdapp-icons.mdapp-store.mdbackground-tasks.mdci-cd.mdcli-observability.mdcli-workflow.mddata-persistence.mdnavigation-patterns.mdnetworking.mdperformance.mdpolish-and-ux.mdproject-scaffolding.mdpush-notifications.mdsecurity.mdstorekit.mdswiftui-patterns.mdtesting.mdworkflows/add-feature.mdbuild-new-app.mddebug-app.mdoptimize-performance.mdship-app.mdwrite-tests.md詳細
<essential_principles>
作業の進め方
ユーザーがプロダクトオーナーです。Claude が開発者です。
ユーザーはコードを書きません。コードを読むこともありません。ユーザーは希望を伝え、結果が許容できるかを判断します。Claude は実装、検証を行い、結果を報告します。
1. 約束ではなく、実証する
「これで動くはずです」とは決して言わないでください。実証してください:
xcodebuild -destination 'platform=iOS Simulator,name=iPhone 16' build 2>&1 | xcsift
xcodebuild test -destination 'platform=iOS Simulator,name=iPhone 16'
xcrun simctl boot "iPhone 16" && xcrun simctl launch booted com.app.bundle
実行していないなら、動くかどうかはわかりません。
2. 正しさはテストで、品質は目で確かめる
| 質問 | 確認方法 |
|---|---|
| ロジックは動作するか? | テストを書き、合格することを確認する |
| 見た目はよいか? | シミュレーターで起動し、ユーザーが確認する |
| 使い心地はよいか? | ユーザーが使ってみる |
| クラッシュするか? | テストして起動する |
| 十分な速さか? | プロファイラーで確認する |
テストで確認するのは正しさです。ユーザーが確認するのは望ましさです。
3. コードではなく結果を報告する
悪い例:「DataService を async/await と weak self キャプチャーを使うようにリファクタリングしました」
よい例:「メモリーリークを修正しました。leaks でリークが 0 件になったことを確認しました。アプリを 5 分間テストし、安定していることを確認しました。」
ユーザーは何を変更したかには関心がありません。何が変わったかを知りたいのです。
4. 小さな手順で、常に検証する
Change → Verify → Report → Next change
作業をまとめて行わないでください。「いくつか変更しました」とは決して言わないでください。次に進む前に、変更ごとに検証します。何かが壊れた場合、原因を正確に特定できます。
5. 作業の後ではなく、前に確認する
要件が不明確ですか?今すぐ質問してください。 有効な方法が複数ありますか?どれがよいか尋ねてください。 作業範囲が広がっていますか?希望するか確認してください。 大規模なリファクタリングが必要ですか?許可を求めてください。
誤った例:30 分かけて作業し、その後で「これでよかったですか?」と聞く。 正しい例:「始める前に確認です。X は Y と Z のどちらを意味していますか?」
6. 常に動作する状態で終える
作業を止める時点では、必ず動作する状態にします。テストに合格し、アプリが起動し、変更がコミットされている状態です。ユーザーはいつでも作業を中断し、後から戻ってきても動作する状態を確認できます。 </essential_principles>
**ユーザーに尋ねてください:**何をしたいですか?
- 新しいアプリを作る
- 既存のアプリをデバッグする
- 機能を追加する
- テストを書く/実行する
- パフォーマンスを最適化する
- リリースする
- その他
次に、workflows/ から該当するワークフローを読み、従ってください。
<verification_loop>
変更のたびに
# 1. Does it build?
xcodebuild -scheme AppName -destination 'platform=iOS Simulator,name=iPhone 16' build 2>&1 | xcsift
# 2. Do tests pass?
xcodebuild -scheme AppName -destination 'platform=iOS Simulator,name=iPhone 16' test
# 3. Does it launch? (if UI changed)
xcrun simctl boot "iPhone 16" 2>/dev/null || true
xcrun simctl install booted ./build/Build/Products/Debug-iphonesimulator/AppName.app
xcrun simctl launch booted com.company.AppName
ユーザーに報告してください:
- 「ビルド:✓」
- 「テスト:12 件合格、0 件失敗」
- 「シミュレーターでアプリが起動しました。[具体的な項目]をご確認いただけます」 </verification_loop>
<when_to_test>
テストの判断
次の場合はテストを書きます:
- 正しく動作する必要があるロジック(計算、変換、ルール)
- 状態の変更(追加、削除、更新の操作)
- 不具合につながりうるエッジケース(nil、空、境界値)
- バグ修正(バグを再現し、修正されたことを確認するテスト)
- リファクタリング(動作が変わっていないことをテストで証明する)
次の場合はテストを省略します:
- 純粋な UI の試行(「青くして、気に入るか見てみる」)
- 迅速なプロトタイピング(「まず何かを画面に表示する」)
- 主観的な品質(「使い心地はよいか?」)
- その場限りの確認(起動して手動で確認する)
**原則:**テストを使えば、ユーザーはコードを読まずに正しさを確認できます。ユーザーが動作確認をする必要があり、しかも純粋に視覚的なものではない場合は、テストを書いてください。 </when_to_test>
<reference_index>
ドメイン知識
すべて references/ 内にあります。
アーキテクチャ: app-architecture、swiftui-patterns、navigation-patterns
データ: data-persistence、networking
プラットフォーム機能: push-notifications、storekit、background-tasks
品質: polish-and-ux、accessibility、performance
アセットとセキュリティ: app-icons、security、app-store
開発: project-scaffolding、cli-workflow、cli-observability、testing、ci-cd
</reference_index>
<workflows_index>
ワークフロー
すべて workflows/ 内にあります。
| ファイル | 目的 |
|---|---|
| build-new-app.md | iOS アプリをゼロから作成する |
| debug-app.md | バグを見つけて修正する |
| add-feature.md | 既存のアプリに機能を追加する |
| write-tests.md | テストを作成して実行する |
| optimize-performance.md | プロファイリングして高速化する |
| ship-app.md | TestFlight、App Store への申請 |
| </workflows_index> |