swiftui-core について
swiftui-core は、Apple 各プラットフォーム向けの SwiftUI インターフェース構築を支援するコーディングスキルです。ビュー構成、ナビゲーション、SwiftData、状態管理に加え、アクセシビリティやプラットフォーム対応、実装レビューの手順を扱います。
主な機能
- 01コンポーザブルなビューとモディファイア
- 02NavigationStack と NavigationSplitView のパターン
- 03SwiftData による永続化
- 04@State、@Observable、@Environment による状態管理
- 05アクセシビリティとプラットフォーム対応の指針
- 06プレビューとデザイン資料
活用シーン
- 01SwiftUI ビューやコンポーネントの構築
- 02ナビゲーションと永続化の追加
- 03ビューのローカル状態と共有状態の管理
- 04アクセシビリティと適応型レイアウトの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ fusengine/ claude-plugins --skill swiftui-coreインストール後、Claude Code で/swiftui-coreを入力して読み込まれたか確認します。
詳細
リファレンスでは、ビュー/モディファイア、ナビゲーション、SwiftData、状態管理、各プラットフォームでの Liquid Glass、App Intents を詳しく解説します。また、アクセシビリティ(Dynamic Type の AX5 までのサイズ、VoiceOver、コントラスト、タップ対象、視差効果を減らす/透明度を下げる設定)、右から左への表示、モダリティ/シート/アラート/オンボーディング、システムサーフェス(ウィジェット、Live Activities、通知、App Shortcuts/Siri/スニペット)、iPhone Duo に関するルールを、ソース URL とともに Apple Human Interface Guidelines(HIG)から参照します。
ビジュアル仕様は、design-ios のハンドオフがある場合はそこから取得します。このスキルはその仕様を実装し、検証します。ベストプラクティス:ビューの body が複数の責務を担うようになった場合、または一目で読み取れなくなった場合にサブビューを抽出すること、ViewBuilder とモディファイアを組み合わせること、必ず #Preview を含めること、システムカラーを使うこと(カスタムカラーにはライト、ダーク、コントラスト強化の各バリエーションが必要です)、アイコンのみのコントロールにはすべてラベルを付けること、サイズクラスに応じてレイアウトを調整すること。
SwiftUI Core
すべての Apple プラットフォームで共通する SwiftUI の基礎です。
エージェントのワークフロー(必須)
実装を始める前に、必ず 3 つのエージェントを並行して起動してください。それぞれ name を指定して Agent を 1 回呼び出します。
- fuse-ai-pilot:explore-codebase - 既存の SwiftUI パターンを分析します
- fuse-ai-pilot:research-expert - Context7/Exa を使用して最新の SwiftUI ドキュメントを確認します
- mcp__apple-docs__search_apple_docs - SwiftUI のビューのパターンを確認します
実装後、検証のために fuse-ai-pilot:sniper を実行してください。
概要
使用する場面
- SwiftUI のビューやコンポーネントを構築するとき
- ナビゲーション(NavigationStack、SplitView)を実装するとき
- SwiftData でデータを永続化するとき
- 状態管理(@State、@Observable)を行うとき
- カスタムビューのモディファイアやレイアウトを作成するとき
SwiftUI Core を使う理由
| 機能 | メリット |
|---|---|
| 宣言型 UI | コードが少なく、自動で更新されます |
| クロスプラットフォーム | iOS/macOS/watchOS/visionOS で同じコードを使えます |
| @Observable | リアクティブな状態を簡単に扱えます |
| SwiftData | 最小限のコードで最新のデータ永続化を実現します |
主要な概念
ビューとモディファイア
合成可能な UI の構成要素です。30 行以上になったらサブビューを抽出します。
ナビゲーション
スタックベースのナビゲーションには NavigationStack、複数列レイアウトには NavigationSplitView を使います。
SwiftData
@Model を使った最新のデータ永続化機能です。ほとんどのユースケースで Core Data を置き換えます。
状態管理
ローカル状態には @State、共有状態には @Observable、依存関係の注入には @Environment を使います。
リファレンスガイド
| 必要な内容 | リファレンス |
|---|---|
| ビュー、モディファイア、レイアウト | views-modifiers.md |
| NavigationStack、ディープリンク | navigation.md |
| SwiftData、@Query、CloudKit | data-swiftdata.md |
| @State、@Observable、Environment | state-management.md |
| すべてのプラットフォームでの Liquid Glass | liquid-glass.md |
| Siri、ショートカット、App Intents | app-intents.md |
HIG のルール(UI に関するすべての作業で読み込んでください)
| 必要な内容 | リファレンス |
|---|---|
| Dynamic Type の AX5、VoiceOver、コントラスト、タップ対象、視差効果を減らす設定 | hig-accessibility.md |
| アラビア語/ヘブライ語のミラーリング、数字 | hig-rtl.md |
| シート、アラート、モダリティ、オンボーディング、起動、権限 | hig-modality.md |
| ウィジェット、Live Activities、通知、App Shortcuts、Siri、スニペット | hig-system-surfaces.md |
| iPhone Duo(折りたたみ式)、予約領域、縦向きツールバー | hig-iphone-duo.md |
ベストプラクティス
- 小さなビュー - 30行以上になったら切り出します
- 合成 - ViewBuilderとモディファイアを使用します
- プレビュー主導 - 常に#Previewを含めます
- システムカラー - カスタムカラーでは、ライト、ダーク、高コントラスト用のバリエーションを用意します(HIG color)
- アクセシビリティ - アイコンのみのコントロールにはラベルを付け、AX5でもレイアウトが崩れないようにし、iOSではタップ対象を44 pt以上にします(hig-accessibility.md)
- プラットフォームへの適応 - サイズクラスを使用し、固定幅やデバイス判定は避けます(HIG layout)