ViewModelを@Observableに移行する
使うタイミング: アプリはiOS 17以上だがViewModelがまだObservableObject+@Publishedを使用している場合。
フロー
-
インベントリAxiom: list every ObservableObject + @Published in the project. Note which are leaf vs shared.✓ コピーしました→ 形状と依存関係のヒント付きのリスト
-
1つを移行Refactor ProfileViewModel to @Observable. Keep the public API stable. Update its View consumers' bindings.✓ コピーしました→ VMが移行される;viewで@Bindableが使用される;@Publishedが残らない
-
検証Run xcodebuild for the scheme. Report any warnings.✓ コピーしました→ クリーンなビルド;Swift 6の警告なし
結果: よりクリーンなviewを持つモダンな@Observableコードベース。
注意点
- 既存のテストが@Publishedのプロジェクション($name)に依存している — テストの書き直しが必要;すべてのアクセスパターンが直接マップするわけではない