mcpField
N
neo-swift-ui

neo-swift-ui

github.com/benknightdark開発735 回インストール3 日前に更新
リポジトリ

neo-swift-ui について

neo-swift-uiは、iOS 16以降を対象とするSwiftUIプロジェクト向けの開発スキルです。UIコードの作成、デバッグ、リファクタリングを支援し、対象バージョンや状態管理に応じてナビゲーション、レイアウト、データフローを提案します。

主な機能

  1. 01デプロイ対象と状態管理方式の確認
  2. 02再利用可能なビュー階層の設計
  3. 03最新のナビゲーションとレイアウトAPIの活用
  4. 04状態バインディング、ビュー更新、構成の確認

活用シーン

  1. 01従来のナビゲーションをNavigationStackに移行
  2. 02最新の状態管理を使ったSwiftUI画面の構築
  3. 03複雑なビューの分割とデータフローの確認

インストール

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

$npx skills add https://github.com/benknightdark/neo-skills --skill neo-swift-ui

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

reference/
anti-patterns.md
coding-style.md
patterns.md

詳細

モダンな SwiftUI(iOS 16 以降)エキスパートスキル

対象となるケース

  • ユーザーが SwiftUI コードの作成、デバッグ、リファクタリング、またはレビューを依頼した場合。
  • 対象プロジェクトのバージョンが iOS 16 以降の場合(NavigationStack、Grid などの機能を活用)。
  • 状態管理(@State、@Observable)、カスタムレイアウト、またはアニメーションを扱う場合。

ワークフロー

  1. 状況把握(バージョンと環境の確認):
    • デプロイメントターゲットが iOS 16 以降かどうかを確認します。
    • 現在の状態管理方式(従来の ObservableObject とモダンな @Observable)を特定します。
    • ナビゲーションコンポーネントの使用状況を評価します(非推奨の NavigationView が引き続き使われているか確認します)。
  2. 検討(計画フェーズ):
    • 再利用性を最大化し、冗長な body の計算を最小化するビュー階層を計画します。
    • ナビゲーションが必要な場合は、NavigationStack または NavigationSplitView を使用します。
    • データのライフサイクルに応じて、適切なデータフローツール(State、Binding、Environment)を選択します。
  3. 実行(実装フェーズ):
    • SwiftUI の基本原則に従い、簡潔で宣言的な Swift コードを記述します。
    • 複雑なレイアウトの実装には、Grid、ViewThatFits、またはカスタムの Layout プロトコルを使用します。
    • モダンなモディファイア(例:detents を指定した .sheet)を活用します。
  4. 検証(標準的な検証):
    • 「God View」(ロジックや body の内容が過剰なビュー)がないか確認し、分割を提案します。
    • 不要なビューの更新を避けるため、@State と @Binding が正しく使われていることを確認します。
    • UI がスムーズに動作し、Apple の Human Interface Guidelines(HIG)に準拠していることを検証します。

機能ロードマップ(SwiftUI の進化)

iOS 13.0 - 15.0(基盤の時代)
  • 宣言的な構文:コアとなる View プロトコルと body プロパティ。
  • 状態管理:@State、@Binding、@ObservedObject、@EnvironmentObject。
  • 基本的なコンテナ:VStack、HStack、ZStack、List。
  • 従来のナビゲーション:NavigationView と NavigationLink。
iOS 16.0 - 17.0(モダンな時代)
  • NavigationStack:分離されたデータ駆動型のナビゲーションパターン。
  • Observation フレームワーク:ObservableObject に代わる @Observable マクロ(Swift 5.9 以降)。
  • 高度なレイアウト:Grid、ViewThatFits、Layout プロトコル。
  • Swift Charts:ネイティブのデータ可視化フレームワーク。
iOS 18.0 以降(最新機能)
  • SwiftUI アニメーション:フェーズベースおよびキーフレームベースの新しいアニメーション API。
  • インタラクションの強化:Scroll View コントロールとジェスチャー処理の改善。

コーディング規約

  • 宣言的なスタイル:ビュー階層を明確に保ち、body 内に複雑なロジックを記述しないでください。
  • モジュール化:サブビューは計算プロパティではなく、独立した struct に分割します。
  • プレビューのガイドライン:迅速な開発と、複数の環境設定(ダークモード、異なるロケール)でのテストには #Preview マクロを使用します。
  • 型安全性:型を明示したナビゲーションパスと環境キーを優先します。

提供内容

  • バージョンに最適化されたコード:iOS 16 以降の機能(例:NavigationStack、presentationDetents)を利用したコードを提供します。
  • モジュール化されたビューコンポーネント:大規模なビューを、単一の責務を持つ再利用可能なコンポーネントに分割します。
  • モダンな状態管理:Swift 5.9 以降をサポートするプロジェクトでは、@Observable パターンを優先します。

検証

  • 警告なしでコードがコンパイルでき、対象バージョンで利用可能な最適な API を使用していることを確認します。
  • ビューの body の実行効率を検証し、副作用が含まれていないことを確認します。
  • 可能な限り、データフローが単方向データフローの原則に従っていることを確認します。

ドキュメント

公式リファレンス
内部リファレンス

コメント