swiftui-review について
Swift と SwiftUI の開発者向けコードレビュースキルです。プロジェクト固有の指針に沿って確認し、ファイルごとに修正可能な問題を報告します。API、アーキテクチャ、アクセシビリティ、データフロー、ナビゲーション、性能、コードの衛生状態を対象にします。
主な機能
- 01非推奨 API の確認
- 02SwiftUI のビューとアニメーションの検証
- 03データフローとナビゲーションの確認
- 04アクセシビリティと性能の検証
- 05修正コード付きのファイル別指摘
活用シーン
- 01マージ前の SwiftUI 変更レビュー
- 02アクセシビリティと Dynamic Type の確認
- 03アーキテクチャとコード衛生の監査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ fradser/ dotclaude --skill swiftui-reviewインストール後、Claude Code で/swiftui-reviewを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/accessibility.mdapi.mdclean-architecture.mddata.mddesign.mdhygiene.mdnavigation.mdperformance.mdswift.mdviews.md詳細
Swift および SwiftUI のコードについて、正しさ、最新 API の使用状況、プロジェクトの規約への準拠を確認します。本当に問題がある場合のみ報告し、細かな指摘や問題の捏造はしないでください。
レビューの手順:
references/api.mdを使って、非推奨の API を確認します。references/views.mdを使って、ビュー、モディファイア、アニメーションが最適に記述されているか確認します。references/data.mdを使って、データフローが正しく設定されているか検証します。references/navigation.mdを使って、ナビゲーションが最新の方法で実装され、パフォーマンスに優れているか確認します。references/design.mdを使って、Apple のヒューマンインターフェイスガイドラインに準拠したアクセシブルなデザインが採用されているか確認します。references/accessibility.mdを使って、Dynamic Type、VoiceOver、視差効果を減らす設定などへのアクセシビリティ対応を検証します。references/performance.mdを使って、コードが効率的に実行できるか確認します。references/swift.mdを使って、Swift コードを簡単に検証します。references/hygiene.mdを使って、コードの最終的な衛生状態を確認します。- アーキテクチャレビューでは、
references/clean-architecture.mdを使って、クリーンアーキテクチャへの準拠を確認します。
部分的なレビューを行う場合は、関連するリファレンスファイルのみを読み込んでください。
基本指示
重要:指摘を報告する前に、該当するすべてのリファレンスファイル(references/*.md)を読み込み、適用してください。これらのファイルで MUST または Never と記されたルールは必須です。見つかった違反はすべて指摘し、問題がないファイルのみ対象から除外してください。
- iOS 26 は存在し、新規アプリのデフォルトのデプロイメントターゲットです。
- Swift 6.2 以降を対象とし、最新の Swift 並行処理を使用してください。
- SwiftUI 開発者は、依頼がない限り UIKit の使用を避けたいと考えています。
- 事前に確認せず、サードパーティ製フレームワークを導入しないでください。
- 異なる種類の型は別々の Swift ファイルに分け、複数の構造体、クラス、列挙型を 1 つのファイルに配置しないでください。
- アプリの機能に基づいてフォルダー構成を決め、一貫性のあるプロジェクト構造にしてください。
出力形式
指摘をファイルごとに整理してください。各問題について:
- ファイル名と該当する行番号を示します。
- 違反しているルールを明記します(例:「
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 行目:ビュー本体内で Binding(get:set:) を避け、代わりに @State と onChange() を使用してください。
// Before
TextField("Username", text: Binding(
get: { model.username },
set: { model.username = $0; model.save() }
))
// After
TextField("Username", text: $model.username)
.onChange(of: model.username) {
model.save()
}
要約
- アクセシビリティ(高): 24 行目の追加ボタンは VoiceOver から認識できません。
- 非推奨 API(中): 12 行目の
foregroundColor()はforegroundStyle()に置き換える必要があります。 - データフロー(中): 31 行目の手動バインディングは壊れやすく、保守が困難です。
出力例ここまで。
リファレンス
references/accessibility.md- Dynamic Type、VoiceOver、視差効果を減らす設定など、その他のアクセシビリティ要件。references/api.md- 最新 API への更新方法と、置き換え対象となる非推奨コード。references/clean-architecture.md- クリーンアーキテクチャのパターン、レイヤー分離、MVVM、依存性注入、最新の SwiftUI アーキテクチャ。references/design.md- Apple のヒューマンインターフェイスガイドラインに準拠するアクセシブルなアプリの開発指針。references/hygiene.md- コードを問題なくコンパイルし、長期的に保守しやすくする方法。references/navigation.md-NavigationStack/NavigationSplitViewによるナビゲーション、アラート、確認ダイアログ、シート。references/performance.md- SwiftUI コードを最適化し、パフォーマンスを最大限に高める方法。references/data.md- データフロー、共有状態、プロパティラッパー。references/swift.md- Swift Concurrency の効果的な使用を含む、最新の Swift コードを記述するためのヒント。references/views.md- ビューの構成、コンポジション、アニメーション。