mcpField
S
swiftui-pro

swiftui-pro

github.com/mengtoテスト・品質7.1k67 回インストール5 日前に更新
リポジトリ

swiftui-pro について

swiftui-proは、SwiftとSwiftUIの正確性、最新APIの使用、プロジェクト規約を確認するコードレビュー用スキルです。分野別の参照資料に沿って問題を調べ、実際の問題のみをファイル単位の修正案とともに報告します。

主な機能

  1. 01非推奨APIと最新の用法を確認
  2. 02データフローとナビゲーションをレビュー
  3. 03アクセシビリティと性能を確認
  4. 04ファイル別に問題と修正コードを提示
  5. 05実際の問題のみを報告

活用シーン

  1. 01SwiftUIのコード変更をレビュー
  2. 02VoiceOverとDynamic Typeの対応確認
  3. 03ナビゲーションやデータフローの問題特定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mengto/skills --skill swiftui-pro

インストール後、Claude Code で/swiftui-proを入力して読み込まれたか確認します。

詳細

Swift および SwiftUI のコードについて、正確性、最新 API の使用状況、プロジェクトの規約への準拠をレビューします。実際に問題がある場合のみ報告し、細かな指摘や根拠のない問題の指摘はしないでください。

レビューの手順:

  1. references/api.md を使って、非推奨 API がないか確認します。
  2. references/views.md を使って、ビュー、モディファイア、アニメーションが最適に記述されているか確認します。
  3. references/data.md を使って、データフローが正しく設定されているか検証します。
  4. references/navigation.md を使って、ナビゲーションが最新の状態で、パフォーマンスに優れているか確認します。
  5. references/design.md を使って、Apple のヒューマンインターフェイスガイドラインに準拠した、アクセシブルなデザインが使われているか確認します。
  6. references/accessibility.md を使って、Dynamic Type、VoiceOver、Reduce Motion を含むアクセシビリティへの準拠を検証します。
  7. references/performance.md を使って、コードが効率的に実行できるか確認します。
  8. references/swift.md を使って、Swift コードを簡易検証します。
  9. references/hygiene.md を使って、最後にコードの健全性を確認します。

部分的なレビューを行う場合は、該当するリファレンスファイルのみを読み込みます。

基本方針

  • iOS 26 は存在し、新規アプリのデプロイターゲットとしてデフォルトになっています。
  • モダンな Swift Concurrency を使用し、Swift 6.2 以降を対象にしてください。
  • SwiftUI 開発者は、依頼がない限り UIKit の使用を避けることを望んでいます。
  • 事前に確認せず、サードパーティのフレームワークを導入しないでください。
  • 複数の構造体、クラス、列挙型を 1 つのファイルにまとめず、型ごとに別の Swift ファイルに分けてください。
  • 一貫性のあるプロジェクト構成を使用し、フォルダー構成はアプリの機能に基づいて決定してください。

出力形式

ファイルごとに指摘をまとめます。各問題について:

  1. ファイル名と該当する行を示します。
  2. 違反しているルールを明記します(例:「foregroundColor() の代わりに foregroundStyle() を使用する」)。
  3. 修正前と修正後のコードを簡潔に示します。

問題のないファイルは省略します。最後に、影響の大きい変更から優先順位を付けてまとめます。

出力例:

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()
    }
まとめ
  1. アクセシビリティ(高): 24 行目の追加ボタンは VoiceOver から認識できません。
  2. 非推奨 API(中): 12 行目の foregroundColor() は foregroundStyle() に置き換える必要があります。
  3. データフロー(中): 手動のバインディングは不安定で、保守が困難です。

出力例ここまで。

リファレンス

  • references/accessibility.md - Dynamic Type、VoiceOver、Reduce Motion、およびその他のアクセシビリティ要件。
  • references/api.md - 最新 API へのコード更新と、置き換え対象の非推奨コード。
  • 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 - ビューの構造、構成、アニメーション。

コメント