Need
UI アーキテクチャ
Default options
MV を基本に、@State、@Environment、用途ごとの小さな View 型で役割を分ける SwiftUI の構成
Why it's needed
大規模な画面では、ビューモデルの層を追加する前に Codex でビュー階層と状態の流れを整理すると、多くの場合、保守しやすくなります。
.md to the page URL.
Codex use case
Codex を使って、動作やレイアウトを保ったまま、大きくなりすぎた SwiftUI 画面を小さなサブビューに分割します。
Codex と Build iOS Apps プラグインを使って、長くなった SwiftUI ビューをセクションごとの専用ビューに分割します。副作用を body の外に移し、状態の管理と Observation による変更の追跡を安定させます。MV を基本とし、ビューモデルは必要な場合にだけ導入します。
Codex を使って、動作やレイアウトを保ったまま、大きくなりすぎた SwiftUI 画面を小さなサブビューに分割します。
Codex と Build iOS Apps プラグインを使って、長くなった SwiftUI ビューをセクションごとの専用ビューに分割します。副作用を body の外に移し、状態の管理と Observation による変更の追跡を安定させます。MV を基本とし、ビューモデルは必要な場合にだけ導入します。
Codex と Build iOS Apps プラグインを使って、長くなった SwiftUI ビューをセクションごとの専用ビューに分割します。副作用を body の外に移し、状態の管理と Observation による変更の追跡を安定させます。MV を基本とし、ビューモデルは必要な場合にだけ導入します。
Related links
| Skill | Why use it |
|---|---|
| Build iOS Apps | Codex で大規模な SwiftUI 画面を編集するときは、SwiftUI ビューのリファクタリングスキルを使います。画面の動作とデータの流れを保ちながら、専用のサブビューを切り出し、Observation を使った実装を簡素化できます。 |
SwiftUI で画面全体の実装が 1 つのファイルに膨らみ、少し手を加えるだけでも影響が心配になるときに使える方法です。機能の再設計や新しいアーキテクチャの導入は目的ではありません。画面の挙動とレイアウトを維持しながら、データの流れが明確な小さなサブビューに分割するよう Codex に依頼します。こうしておくと、次の変更をレビューしやすくなります。
このような整理には、Build iOS Apps プラグインを使います。このプラグインの SwiftUI ビュー向けリファクタリングスキルには、明確な設計方針があります。原則として MVVM よりも MV を優先し、ビジネスロジックはサービスやモデルに置きます。まずはビューのローカルな状態と環境から取得できる依存関係を使い、その機能に明らかに必要な場合に限ってビューモデルを残します。
まず対象の画面ファイルを 1 つ指定し、挙動を維持しながら構造を改善するよう Codex に依頼します。プロンプトには、次のリファクタリング方針を明記するとよいでしょう。
init、body、ビューを組み立てるヘルパー、ヘルパーメソッドの順に並べ、ファイルを上から読み進めやすくします。View 型として切り出し、必要最小限の入力値、@Binding、コールバックを明示します。some View を返す計算プロパティは必要な箇所に限り、短く保ちます。大きな画面を細切れにして、非公開の計算プロパティをいくつも並べる構成は避けます。body の外に出し、ビジネスロジックはサービスやモデルに移します。if/else 分岐で画面全体を切り替えるよりも、セクションやモディファイアの中で必要な部分だけを条件分岐させます。@Observable モデルを所有するビューが、そのモデルを @State に保持します。従来の監視用プロパティラッパーは、デプロイ対象の OS バージョンで必要な場合に限って使います。挙動を維持するリファクタリングでは、実際に挙動が保たれていることを確かめます。ひとまとまりのビューを切り出すたびに、ビルド、プレビュー、テスト、シミュレータでの動作確認のうち、その画面を検証できる最小限のものを実行するよう Codex に依頼します。そのうえで、構造上の変更点と、意図して維持した点をまとめてもらいます。
画面の実装が大きすぎる場合は、新しい抽象化レイヤーを導入する前に、セクションごとにビューを切り出すよう Codex に依頼します。ビュー階層がコンパクトになり、構造が明確になるだけで、ビューモデルを追加する必要がなくなることもよくあります。
すべての子ビューに親のモデル全体を渡すのは避け、let で受け取る値、@Binding、用途を 1 つに絞ったコールバックを優先します。切り出したセクションを個別にプレビューしやすくなり、意図せず画面全体に再び依存することも防ぎやすくなります。
リファクタリングを安全に進めるには、ビジネスルール、画面遷移の挙動、データの永続化、分析用データが表す意味、ユーザーに見えるレイアウトなど、変更しなかった点を Codex に明示してもらうと効果的です。レビューにかかる時間を大幅に短縮できます。
Need
Default options
Why it's needed
Need
UI アーキテクチャ
Default options
MV を基本に、@State、@Environment、用途ごとの小さな View 型で役割を分ける SwiftUI の構成
Why it's needed
大規模な画面では、ビューモデルの層を追加する前に Codex でビュー階層と状態の流れを整理すると、多くの場合、保守しやすくなります。
Need
リファクタリングの進め方
Default options
Why it's needed
プラグインに含まれる SwiftUI ビューのリファクタリングスキルは、画面の動作を保ちながらサブビューを切り出す方法、Observation の扱い方、副作用の整理方法を Codex に具体的に示します。
Need
検証
Default options
xcodebuild、プレビュー、対象を絞った UI の確認
Why it's needed
ワンショットで画面全体を書き直す場合に比べ、サブビューを切り出すたびにビルドやシミュレータで変更箇所を確認する方が、画面の動作を保てているか判断しやすくなります。
| Need | Default options | Why it's needed |
|---|---|---|
| UI アーキテクチャ | MV を基本に、 @State 、 @Environment 、用途ごとの小さな View 型で役割を分ける SwiftUI の構成 | 大規模な画面では、ビューモデルの層を追加する前に Codex でビュー階層と状態の流れを整理すると、多くの場合、保守しやすくなります。 |
| リファクタリングの進め方 | Build iOS Apps プラグイン | プラグインに含まれる SwiftUI ビューのリファクタリングスキルは、画面の動作を保ちながらサブビューを切り出す方法、Observation の扱い方、副作用の整理方法を Codex に具体的に示します。 |
| 検証 | xcodebuild 、プレビュー、対象を絞った UI の確認 | ワンショットで画面全体を書き直す場合に比べ、サブビューを切り出すたびにビルドやシミュレータで変更箇所を確認する方が、画面の動作を保てているか判断しやすくなります。 |
Codex と Build iOS Apps プラグインを使って、App Intents で公開するアクションとエンティティを選び、ショートカットや Spotlight...
Codex と Build iOS Apps プラグインを使って、既存の iPhone・iPad 向け UI を点検し、独自に重ねたぼかしやマテリアルをネイティブの Liquid...
Codex で iOS 向け SwiftUI プロジェクトのひな形を作成し、`xcodebuild` または Tuist を使って CLI...