swift-apps について
SwiftUI と Apple フレームワークを使った、Apple プラットフォーム向けアプリの開発・保守を支援するスキルです。アーキテクチャ、UI パターン、アクセシビリティ、性能、検証をタスク別に案内します。
主な機能
- 01SwiftUI を軸にしたアプリ設計
- 02状態とデータフローの指針
- 03プラットフォーム別 UI パターン
- 04アクセシビリティと性能の確認
- 05タスク別リファレンス
活用シーン
- 01新しい画面の設計
- 02SwiftUI の状態管理のリファクタリング
- 03性能問題の調査
- 04macOS の操作性の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ petekp/ claude-code-setup --skill swift-appsインストール後、Claude Code で/swift-appsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/architecture-and-state.mdliquid-glass.mdmacos-quality-bar.mdofficial-docs-map.mdperformance-and-debugging.mdui-patterns.md詳細
Swift アプリ
SwiftUI を優先したパターン、明確な状態の所有権、プラットフォームへの忠実さ、アクセシビリティ、パフォーマンスへの配慮を備えた、Apple プラットフォーム向けのネイティブな使い心地のソフトウェアを開発します。 SwiftUI にウェブ風の抽象化レイヤーを重ねるのではなく、Apple のフレームワークを活用する、直接的で読みやすいコードを基本とします。
作業の進め方を選ぶ
- 新機能または画面:コードを書く前に、対象プラットフォーム、アプリの種類、主な操作、主要な状態、ナビゲーションモデル、データの所有権を定義します。次に、references/architecture-and-state.md と references/ui-patterns.md を読み込みます。
- リファクタリングまたは整理:動作を維持し、構造を簡素化し、間接性を減らして、状態の所有権を明確にします。次に、references/architecture-and-state.md を読み込みます。
- バグ修正:プロジェクトに実用的なテスト環境がある場合は、まず失敗するテストで再現します。コードを変更する前に、仮説を2〜3個挙げます。次に、references/performance-and-debugging.md と、該当するドメイン固有のリファレンスを読み込みます。
- パフォーマンスまたはカクつき:まずコードを確認し、レビューだけでは判断できない場合にプロファイリングに進みます。references/performance-and-debugging.md を読み込みます。
- Liquid Glass または新しいデザインシステム API:カスタムのぼかし効果を模倣するのではなく、ネイティブのマテリアルと利用可能な環境の判定を使います。references/liquid-glass.md を読み込みます。
- macOS 固有の作業:メニューコマンド、キーボード操作、ウインドウ、サイドバー、ツールバー、テキストの挙動を、仕上げではなく製品要件として扱います。references/macos-quality-bar.md を読み込みます。
- バージョンに依存する API の質問:正確な最新 API の形が重要な場合は、まず references/official-docs-map.md を読み込み、記憶より Apple のドキュメントを信頼します。
基本ルールを適用する
-
独自の構造よりも、まずシステムの構造を優先します。 カスタムコンテナより先に、
NavigationStack、NavigationSplitView、TabView、List、Form、Table、Commands、組み込みマテリアルを使います。 -
スクリーンショットではなく、状態を基準に設計します。 すべての機能で、読み込み中、空、エラー、オフライン、一部のみ利用可能、権限が制限された状態に対応します。
-
状態は、それを所有するビューの近くに置きます。
@State、@Binding、@Bindable、@Environment、@Observable、@Query、.taskを標準のツールセットとして使います。既存のコードベースでビューモデルを使っている場合や、ビュー以外の処理の調整に参照型が本当に必要な場合にのみ、ビューモデルを導入します。 -
bodyの処理を軽くし、アイデンティティを安定させます。body内での並べ替え、フィルタリング、フォーマット、画像のデコード、UUID の生成、I/O は避けます。負荷の高い処理は事前に計算またはキャッシュし、安定した ID を使います。 -
明示的な入力を受け取る、小さなビューを組み合わせます。 大きなモデルをあらゆる場所に渡すのではなく、用途を絞ったデータやバインディングを優先します。1つの型にロジックを積み重ねるのではなく、大きな
bodyを目的別のサブビューに分割します。 -
アクセシビリティとモーションを最優先の制約として扱います。 Dynamic Type、VoiceOver、視差効果を減らす設定、透明度を下げる設定、コントラスト、フォーカス順序、タッチターゲットのサイズを確認します。
-
プラットフォームに合わせます。 iPhone、iPad、Mac、Vision Pro では、操作に関する前提が異なります。製品に根拠のある逸脱理由がない限り、各プラットフォームの慣習を守ります。
適切なリファレンスを読み込む
| 必要な内容 | 読み込むファイル |
|---|---|
| 状態の所有権、Observation、非同期フロー、ルーティング、依存性注入 | references/architecture-and-state.md |
| コンテナの選択、コンポーネントの構成、シート、ナビゲーション、アプリシェルの配線 | references/ui-patterns.md |
| カクつき、無効化の集中発生、レイアウトの過剰な再計算、プロファイリング、バグのトリアージ、検証 | references/performance-and-debugging.md |
| メニューバー、ショートカット、ウィンドウ、サイドバー、ツールバー、Mac 向けの仕上げ、AppKit による回避策 | references/macos-quality-bar.md |
| Liquid Glass の配置、モディファイアの順序、コンテナ、利用可能性、トランジション | references/liquid-glass.md |
| 状態、ナビゲーション、シーン、Liquid Glass、パフォーマンスに関する Apple 公式ドキュメントと WWDC セッション | references/official-docs-map.md |
結果を提示する
- 最初に、対象プラットフォーム、アプリの種類、主要な操作モデルを明示します。
- アーキテクチャが自明でない場合は、採用した状態管理とデータフローのアプローチを説明します。
- すばやい反復にはプレビューを使います。ただし、シーン、ウィンドウ、フォーカス、アニメーション、パフォーマンスが関わる場合は、Simulator または実機で重要な動作を検証します。
- レビューでは、リスクの高い問題から順に報告します。正確性、プラットフォームとの不一致、アクセシビリティの不足、パフォーマンス上のリスク、スタイルの順です。
- デバッグでは、有力な仮説、それを裏付けた、または否定した証拠、最終的な根本原因を共有します。
- 最後に、テスト、ビルドまたは lint コマンド、プロファイリングの実施内容、残っている手動確認など、検証手順を示します。