ios-hig について
SwiftUIでiOSアプリを開発する人向けの、Apple Human Interface Guidelinesの実践ガイドです。6分野のルールをまとめ、モジュール型MVVM-Cアーキテクチャを前提としています。
主な機能
- 016分野のHIGルール
- 02ナビゲーションと操作設計の指針
- 03アクセシビリティとフィードバックの指針
- 04UXパターンとビジュアルデザインのルール
- 05モジュール型MVVM-Cの設計契約
活用シーン
- 01タブバーと階層型ナビゲーションの設計
- 02VoiceOverとDynamic Type対応の確認
- 03読み込み・エラー・空状態の設計
- 04iOSアプリのHIG準拠状況の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill ios-higインストール後、Claude Code で/ios-higを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
metadata.jsonassets/templates/_template.mdreferences/_sections.mdacc-color-contrast.mdacc-color-independent.mdacc-dynamic-type.mdacc-focus-management.mdacc-labels.mdacc-reduce-motion.mdacc-scaled-metric.mdacc-view-that-fits.mdfeed-empty-states.mdfeed-error-states.mdfeed-loading-states.mdfeed-notifications.mdfeed-success-confirmation.mdinter-drag-drop.mdinter-gesture-patterns.mdinter-haptic-feedback.mdinter-keyboard-handling.mdinter-list-search.mdinter-pull-to-refresh.mdinter-swipe-actions.mdinter-touch-targets.mdnav-navigation-stack.mdnav-tab-bar.mdnav-toolbar-placement.mdux-confirmation-dialog.mdux-data-entry.mdux-modality.md詳細
Apple iOS HIG のベストプラクティス
SwiftUI で構築する iOS アプリにおける Apple Human Interface Guidelines 準拠のための包括的なガイドです。ナビゲーション、インタラクションデザイン、アクセシビリティ、ユーザーフィードバック、UX パターン、ビジュアルデザインの 6 カテゴリーにわたる 34 のルールを収録しています。
Clinic アーキテクチャ契約(iOS 26 / Swift 6.2)
このスキルのすべてのガイダンスは、Clinic のモジュール型 MVVM-C アーキテクチャを前提としています。
- Feature モジュールがインポートするのは
DomainとDesignSystemのみです(Dataは不可、兄弟 Feature も不可) - App ターゲットは集約点であり、
DependencyContainer、具象コーディネーター、Route Shell の配線を所有します Domainは純粋な Swift を維持し、モデルと、リポジトリ、*Coordinating、ErrorRouting、AppErrorの各コントラクトを定義しますDataは SwiftData/ネットワーク/同期/再試行/バックグラウンド I/O を担当し、Domain のプロトコルを実装します- 読み取り/書き込みフローでは、デフォルトで stale-while-revalidate 方式の読み取りと、キューに入れた楽観的書き込みを使用します
- ViewModel はリポジトリのプロトコルを直接呼び出します(デフォルトのユースケース/インタラクター層は設けません)
適用する場面
次のような場合は、これらのガイドラインを参照してください。
- タブバー、NavigationStack、または分割ビューを使ったナビゲーション階層を構築するとき
- タッチ操作、ジェスチャ、触覚フィードバックを設計するとき
- VoiceOver、Dynamic Type、カラーコントラストを使ってアクセシビリティを確保するとき
- 読み込み状態、エラー処理、空の状態を実装するとき
- オンボーディングフロー、権限リクエスト、確認ダイアログを構築するとき
- ダークモード、SF Symbols、標準レイアウトマージンに対応するとき
- HIG 準拠についてアプリをレビューするとき
優先度別ルールカテゴリー
| 優先度 | カテゴリー | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | ナビゲーション | CRITICAL | nav- |
| 2 | インタラクションデザイン | CRITICAL | inter- |
| 3 | アクセシビリティ | CRITICAL | acc- |
| 4 | ユーザーフィードバック | HIGH | feed- |
| 5 | UX パターン | HIGH | ux- |
| 6 | ビジュアルデザイン | HIGH | vis- |
クイックリファレンス
1. ナビゲーション(CRITICAL)
nav-tab-bar- トップレベルのナビゲーション用にタブバーを設計しますnav-navigation-stack- 階層型ナビゲーションには NavigationStack を使用しますnav-toolbar-placement- 標準の配置方法を使ってツールバーにアクションを配置します
2. インタラクションデザイン(CRITICAL)
inter-touch-targets- タッチターゲットを最小 44pt に保ちますinter-gesture-patterns- 標準的なジェスチャパターンを使用しますinter-haptic-feedback- 意味のあるイベントに触覚フィードバックを追加しますinter-keyboard-handling- キーボードの表示に適切に対応しますinter-drag-drop- コンテンツの転送にドラッグ&ドロップをサポートしますinter-pull-to-refresh- リストで引っ張って更新する操作をサポートしますinter-swipe-actions- コンテキストに応じた操作にスワイプアクションを追加しますinter-list-search- 標準搭載の検索には searchable を使用します
3. アクセシビリティ(CRITICAL)
acc-labels- 意味のあるアクセシビリティラベルを設定しますacc-dynamic-type- すべてのテキストで Dynamic Type をサポートしますacc-color-contrast- 十分なカラーコントラストを維持しますacc-reduce-motion- 視差効果を減らす設定を尊重しますacc-color-independent- 色だけに頼ることは避けてくださいacc-focus-management- 支援技術向けにフォーカスを管理しますacc-scaled-metric- サイズを柔軟に調整するには ScaledMetric を使用しますacc-view-that-fits- レイアウトを柔軟に調整するには ViewThatFits を使用します
4. ユーザーフィードバック(HIGH)
feed-loading-states- 適切なローディングインジケーターを表示するfeed-error-states- 明確な復旧手段を示してエラーに対処するfeed-notifications- 通知を適切に使用するfeed-success-confirmation- 操作の成功を適切に確認するfeed-empty-states- 役立つ空の状態を設計する
5. UX パターン(HIGH)
ux-onboarding- 最小限のオンボーディングを設計するux-permissions- 適切な状況で権限をリクエストするux-modality- モダリティを適切に使用するux-confirmation-dialog- 破壊的な操作には確認ダイアログを使用するux-data-entry- データ入力の負担を最小限に抑えるux-undo- 破壊的な操作を取り消せるようにするux-settings- 設定を論理的に整理する
6. ビジュアルデザイン(HIGH)
vis-dark-mode- セマンティックカラーでダークモードをサポートするvis-sf-symbols- 適切な描画モードとウェイトでSF Symbolsを使用するvis-layout-margins- 標準のレイアウトマージンとセーフエリアを使用する
使用方法
詳しい説明とコード例については、各リファレンスファイルを参照してください。
- セクションの定義 - カテゴリー構造と影響レベル
- ルールのテンプレート - 新しいルールを追加するためのテンプレート
リファレンスファイル
| ファイル | 説明 |
|---|---|
| references/_sections.md | カテゴリーの定義と順序 |
| assets/templates/_template.md | 新しいルール用のテンプレート |
コメント
Markdown 対応