ios-dev について
ios-devは、Apple開発スキルを案内する調整用スキルです。iOS開発で必要なガイドやAPIリファレンスを選びやすくし、特定のアーキテクチャを必須とせず、レビュー、改善、機能開発の手順を扱います。
主な機能
- 01関連するAppleスキルへの案内
- 02SwiftUIとUIKitのガイダンス
- 03トピック別APIリファレンス索引
- 04コードレビュー用の正確性チェックリスト
- 05レビューと機能開発のワークフロー
活用シーン
- 01SwiftUI機能の参考資料選び
- 02既存iOSコードのレビュー
- 03開発トピックに対応するAPIの検索
- 04正確性ルールに沿ったコード確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ prisma-labs-dev/ apple-skills --skill ios-devインストール後、Claude Code で/ios-devを入力して読み込まれたか確認します。
詳細
iOS 開発
まずはここから始めてください。このスキルは Apple スキルコレクションを調整し、どのスキルをいつ使うかを案内します。これにより、確かな指針と API リファレンスを合わせて利用できます。
運用ルール
- SwiftUI と UIKit はどちらも第一級の選択肢です。タスクに合う方を選んでください。より高い制御性や柔軟性が得られるなら、UIKit はいつでも有効な選択肢です。両者を橋渡しする場合は、状態の同期、ライフサイクル、アニメーションと環境の境界に注意してください。
- 特定のアーキテクチャ(MVVM、VIPER、MV、TCA など)を押し付けないでください。ビジネスロジックとビューを分離するよう促しつつ、その方法を指定しないでください。
- UI の完成度には高い基準を設けてください。アプリは最新世代のものらしく、流れるようで、デザイン性が高く、生き生きと感じられるべきです。細部までこだわってください。体験の向上につながるなら、カスタムコンポーネント、斬新なインタラクション、カスタム Metal シェーダーも問題ありません。システムのデフォルトは最低ラインであり、上限ではありません。
- その完成度をどう実現するかは指定しないでください。独自のスタイルを押し付けたり、「Apple 公認」であることを基準にしたり、美的なチェックリストを課したりしないでください。デザインの方向性は、アプリごとに自分の判断で決めてください。
higとios-liquid-glassのスキルには、システムが提供する機能が記載されています。これらは参考資料であり、スタイルを義務付けるものではありません。画面をデザインしたり、見栄えを良くしたりするタスクでは、参照先に振り分けるドキュメントはありません。自分の感性でデザインしてください。API の仕組みや事実に基づく最低基準(タップ対象のサイズなど)が必要な場合に限り、参照資料を grep してください。 - パフォーマンスの最適化は、一律の要件としてではなく、理由に裏打ちされた提案として提示してください。
- API の正確な詳細が必要な場合は、フレームワークリファレンススキルを grep してください。Apple の完全なドキュメントが含まれています。
タスク別ワークフロー
既存コードをレビューする
- コードを読み、該当するトピックを特定します
- 以下の正確性チェックリストを実行します。違反はバグです
- トピックルーターを使って、各トピックに関連するガイドを読み込みます
- API の正確性については、該当するフレームワークリファレンススキルを grep します
既存コードを改善する
- まず正確性チェックリストを実行します
- パフォーマンスの問題には、
guide-swiftui-performance-auditを使います - ナビゲーション、状態、パターンに関する質問には、Apple の
swiftui-specialist(Xcode 27 に同梱。ユーザーのスキルディレクトリにエクスポート済み)を使い、次にswiftuiAPI リファレンスを参照します - API の詳細については、該当するフレームワークリファレンススキルを grep します
新機能を構築する
- まずデータフローを設計し、所有する状態と注入される状態を特定します
- UI パターンとアプリの配線には、Apple の
swiftui-specialistを使い、次にswiftuiAPI リファレンスを参照します - API の詳細については、該当するフレームワークリファレンススキルを grep します
- 差分計算が最適になるようビューを構成します。早い段階でサブビューを切り出してください
- 作業を終える前に正確性チェックリストを実行します
トピック別ルーター
ガイド列には、見解を含む簡潔なパターンガイドがあります。API リファレンス列には、grep 可能な Markdown 形式の Apple ドキュメント全文があります。各機能の情報を掲載しているフレームワークを探すには、apple-docs-index を使用してください。
| トピック | ガイド | API リファレンス |
|---|---|---|
| 状態管理 | swiftui-specialist (Apple, Xcode 27) | swiftui (state.md, binding.md, observation.md, environment.md) |
| ビューの構成 | — | swiftui (view-protocol.md) |
| パフォーマンス | guide-swiftui-performance-audit | — |
| ナビゲーション | swiftui-specialist (Apple, Xcode 27) | swiftui (navigationstack.md, navigationsplitview.md, navigationlink.md) |
| シートとモーダル | swiftui-specialist (Apple, Xcode 27) | swiftui (sheet.md, inspector.md, alert.md, confirmationdialog.md) |
| リストと ForEach | swiftui-specialist (Apple, Xcode 27) | swiftui (list.md) |
| ScrollView | swiftui-specialist (Apple, Xcode 27) | swiftui (scrollview.md) |
| フォームと入力 | — | swiftui (form.md, textfield.md, picker.md, toggle.md, slider.md) |
| グラフ | guide-swiftui-charts | swiftui (chart.md, charts-overview.md) |
| アニメーション | swiftui-specialist (Apple, Xcode 27) | swiftui (swiftui-overview.md) |
| レイアウト | swiftui-specialist (Apple, Xcode 27) | swiftui (geometryreader.md, grid.md, hstack.md, vstack.md, zstack.md, spacer.md) |
| TabView | swiftui-specialist (Apple, Xcode 27) | swiftui (tabview.md) |
| Liquid Glass | — | ios-liquid-glass |
| アクセシビリティ | swiftui-specialist (Apple, Xcode 27) | hig (a11y/人間工学に関する事実) |
| macOS アプリ | guide-macos-spm-packaging | swiftui, uikit |
| データ永続化 | guide-swiftdata | swiftdata |
| テスト | guide-swift-testing | swift-testing, xcuitest |
| 並行処理 | guide-swift-concurrency | swift-concurrency |
| アプリ内課金 | — | storekit |
| マップ | — | mapkit |
| ヘルスデータ | — | healthkit |
| 通知 | — | usernotifications |
| App Intents / Siri | app-intents-specialist, app-intents-whats-new-27 (Apple, Xcode 27) | — |
| ウィジェット | — | widgetkit |
| App Store のメタデータ | apple-aso | — |
| ドキュメントの検索 | apple-docs-index | — |
正確性チェックリスト
これらは厳守すべきルールです。違反は常に不具合です。
-
@Stateプロパティはprivateにする -
@Bindingは、子ビューが親の状態を変更する必要がある場合にのみ使用する - 渡された値を
@Stateとして宣言しない。更新がサイレントに無視される -
@Observableクラスには@Stateを使用し、@StateObjectやObservableObjectは使用しない - バインディングが必要な、注入された Observable には
@Bindableを使用する -
ForEachには安定した識別子を使用する。動的コンテンツで.indicesを使用しない - 各
ForEach要素が生成するビューの数は一定にする -
.animation(_:value:)には必ずvalue:パラメーターを含める -
@FocusStateプロパティはprivateにする -
@Observableクラスには@MainActorを指定する。Swift 6 の厳格な並行処理では必須 -
@Observableクラス内のプロパティラッパー(@AppStorage、@SceneStorage、@Query)には@ObservationIgnoredを付ける。マクロと競合し、コンパイラーエラーが発生する -
bodyにビジネスロジックを記述しない。.task、.onChange、またはメソッドを使用する - 本当に避けられない場合を除き、
AnyViewを使用しない。より適切な構成で解決する
関連スキル
システム API リファレンス:
/ios-liquid-glass— Liquid Glass API リファレンス
ワークフローガイド:
/swiftui-specialist— Apple の SwiftUI ベストプラクティス(Xcode 27):構成、データフロー、環境、ForEach の識別性、ローカライズ、緩やかな非推奨化/swiftui-whats-new-27— iOS 27 の SwiftUI の変更点(@State マクロ、@ContentBuilder、並べ替え可能、ツールバーのオーバーフロー)/guide-swiftui-charts— マーク、軸、選択、スタイル設定、アクセシビリティ/guide-swiftui-performance-audit— パフォーマンスの問題を診断して修正する/guide-swift-testing— Swift Testing のパターン、非同期テスト、よくあるエージェントのミス/guide-swift-concurrency— 並行処理のパターン、アクター、診断、バグのパターン/guide-swiftdata— SwiftData のパターン、述語、CloudKit の制約/guide-macos-spm-packaging— SwiftPM で macOS アプリをビルドする
ユーティリティ:
/apple-docs-index— 適切な Apple ドキュメントを探す/apple-aso— App Store 最適化
コメント
Markdown 対応