swiftui-pro について
swiftui-proは、開発者やコードレビュー向けのSwift・SwiftUIコードレビュー用スキルです。API、データフロー、ナビゲーション、アクセシビリティ、パフォーマンスなどを確認し、実際の問題だけを報告するよう定めています。
主な機能
- 01非推奨APIと現代的な使い方の確認
- 02ビュー、アニメーション、データフローのレビュー
- 03ナビゲーションとウィンドウ適応の確認
- 04アクセシビリティとローカライズの評価
- 05ファイル単位の修正案提示
活用シーン
- 01SwiftUI機能変更のレビュー
- 02コードのアクセシビリティ問題の特定
- 03ウィンドウサイズごとのレイアウト確認
- 04対象を絞ったパフォーマンスレビュー
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ twostraws/ swiftui-agent-skill --skill swiftui-proインストール後、Claude Code で/swiftui-proを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlassets/swiftui-pro-icon.svgreferences/accessibility.mdapi.mddata.mddesign.mdhygiene.mdlocalization.mdnavigation.mdperformance-plus.mdperformance.mdresizability.mdswift.mdviews.md詳細
Swift および SwiftUI のコードを、正確性、モダンな API の使用、プロジェクトの規約への準拠という観点でレビューします。報告するのは本当の問題のみで、重箱の隅をつついたり、問題をでっち上げたりしないでください。
レビューの指摘には、非推奨の API も含めてください。機能追加やバグ修正の作業中は、依頼された変更を完了させ、無関係なモダナイズについては別途提案してください。依頼されない限り、それを適用しないでください。
レビューの手順:
references/api.mdを使用して、非推奨の API を確認します。references/views.mdを使用して、ビュー、モディファイア、アニメーションが最適に書かれているかを確認します。references/data.mdを使用して、データフローが正しく構成されているかを検証します。references/navigation.mdを使用して、ナビゲーションが更新され、パフォーマンスが確保されていることを確認します。references/design.mdを使用して、コードがアクセシブルで、Apple の Human Interface Guidelines に準拠したデザインを使用していることを確認します。references/resizability.mdを使用して、iPad のマルチタスキングや折りたたみ式 iPhone Duo を含む、ウィンドウのリサイズ時のレイアウト動作をレビューします。references/accessibility.mdを使用して、Dynamic Type、VoiceOver、Reduce Motion を含むアクセシビリティ準拠を検証します。references/localization.mdを使用して、ローカライズされたテキスト、書式設定、リソースの扱いを確認します。references/performance.mdを使用して、コードが効率的に実行できることを確認します。references/swift.mdを使用して、Swift コードを簡単に検証します。references/hygiene.mdを使用して、最終的なコード衛生チェックを行います。
部分的なレビューを行う場合は、関連する参照ファイルのみを読み込んでください。
references/performance-plus.md は通常のレビューでは読み込まないでください。依頼された詳細なパフォーマンスレビューのために読み込んでください。そのより込み入った変更は、既に判明しているパフォーマンス問題の調査にも役立ちます。
基本指示
- iOS 27 は存在し、新しいアプリのデフォルトのデプロイメントターゲットです。
- Xcode 27.1 および対応する 27.1 プラットフォームリリースが利用可能です。これらの API を憶測として退けないでください。
- iPhone Duo は折りたたみ式 iPhone で、小さな外側ディスプレイと大きな内側ディスプレイを備えています。
- バージョン固有のアドバイスを適用する前に、プロジェクトのデプロイメントターゲットを確認してください。新しいランタイム API は、ターゲットがそれをサポートしている場合、または適切な
#availableチェック内でのみ使用してください。既存のターゲットは変更しないでください。Xcode のバージョンに関連する要件には、そのツールチェーンも必要です。ランタイムチェックによって、古い SDK が新しい宣言を認識できるようにはなりません。 - Swift 6.4 以降をターゲットとし、モダンな Swift コンカレンシーを使用してください。
- SwiftUI 開発者として、ユーザーは依頼されない限り UIKit を避けたいと考えます。
- 最初に確認せずにサードパーティのフレームワークを導入しないでください。
- 複数の struct、class、enum を 1 つのファイルに配置するのではなく、異なる型を異なる Swift ファイルに分割してください。
- アプリの機能ごとにフォルダー構成を決める、一貫したプロジェクト構造を使用してください。
出力形式
指摘はファイルごとに整理してください。各問題について:
- ファイルと該当する行を示します。
- 違反しているルールを挙げます(例: 「
foregroundColor()の代わりにforegroundStyle()を使用してください」)。 - 簡単な修正前/修正後のコードを示します。
問題のないファイルは省略してください。最後に、最初に取り組むべき最も影響の大きい変更の優先順位付きサマリーで締めくくってください。
出力例:
ContentView.swift
12 行目: foregroundColor() の代わりに foregroundStyle() を使用してください。
// Before
Text("Hello").foregroundColor(.red)
// After
Text("Hello").foregroundStyle(.red)
24 行目: ボタンに説明的なラベルを付け、VoiceOver がその動作を説明できるようにしてください。
// Before
Button(action: addUser) {
Image(systemName: "plus")
}
// After
Button("Add User", systemImage: "plus", action: addUser)
31 行目: ビューの body 内で Binding(get:set:) を使用しないでください – プロパティに直接バインドし、setter の副作用を onChange() に移してください。
// Before
TextField("Username", text: Binding(
get: { model.username },
set: { newValue in model.username = newValue; model.save() }
))
// After
TextField("Username", text: $model.username)
.onChange(of: model.username) {
model.save()
}
ユーザー名の変更(プログラムによる変更を含む)に伴って保存を行う場合は、onChange() を使用してください。同じ値の代入では保存はトリガーされません。
サマリー
- アクセシビリティ(高): 追加ボタンには「Add User」ラベルが必要です。シンボルのデフォルトラベルでは、何が追加されるのかが説明されません。
- 非推奨 API(中): 12 行目の
foregroundColor()はforegroundStyle()にすべきです。 - データフロー(中): 31 行目の手動バインディングは脆弱で、保守が困難です。
例の終わり。
参考資料
references/accessibility.md- Dynamic Type、VoiceOver、視差効果を減らす設定、その他のアクセシビリティ要件。references/api.md- 最新の API に合わせたコードの更新、置き換え対象となる非推奨コード、iOS 27 のツールバー。references/design.md- Apple のヒューマンインターフェイスガイドラインに準拠した、アクセシブルなアプリの構築に関するガイダンス。references/hygiene.md- コードを問題なくコンパイルでき、長期的に保守しやすくする方法。references/localization.md- ローカライズ可能なテキスト、リソースバンドル、ロケールに応じた表示。references/navigation.md-NavigationStack/NavigationSplitViewを使ったナビゲーションに加え、アラート、確認ダイアログ、シート。references/performance.md- SwiftUI コードを最適化し、パフォーマンスを最大限に高める方法。references/performance-plus.md- ビューが依存する範囲を絞るための、より踏み込んだ構造の見直し。詳細なパフォーマンスレビューや、パフォーマンス問題の診断時に使用します。references/resizability.md- ウィンドウサイズの変更、アダプティブバー、セーフエリア、iPhone Duo のレイアウト。references/data.md- データフロー、共有状態、プロパティラッパー。references/swift.md- Swift Concurrency の効果的な活用を含む、最新の Swift コードを書くためのヒント。references/views.md- ビューの構造、合成、アニメーション、並べ替え、スワイプアクション。