將 ViewModel 遷移到 @Observable
何時使用: 應用程式支援 iOS 17+ 但 ViewModel 仍使用 ObservableObject + @Published。
步驟
-
盤點Axiom:列出專案中每個 ObservableObject + @Published。標記哪些是葉節點,哪些是共享的。✓ 已複製→ 帶有形狀 + 相依提示的清單
-
遷移一個將 ProfileViewModel 重構為 @Observable。保持公開 API 穩定。更新其 View 消費者的 binding。✓ 已複製→ VM 已遷移;View 中使用 @Bindable;沒有殘留 @Published
-
驗證為 scheme 執行 xcodebuild。回報任何警告。✓ 已複製→ 乾淨建置;無 Swift 6 警告
結果: 現代的 @Observable 程式碼庫,View 更整潔。
注意事項
- 現有測試依賴 @Published 投影($name) — 測試需要重寫;並非所有存取模式都能直接對應