工程開發
swiftui-view-refactor avatar

swiftui-view-refactor

重構 SwiftUI 視圖以實現結構一致性、依賴注入和 Observation 使用,並遵循 Model-View 架構模式。

簡介

此技能提供了一種系統化的方法來標準化 SwiftUI 視圖文件,確保它們保持可維護性、高性能並符合現代 Swift 開發實踐。它專為希望消除架構混亂(如不必要的 ViewModels)並轉而採用 @Observable 宏、@State 和 @Environment 進行狀態管理的 iOS 和 macOS 開發人員而設計。透過強制執行一致的文件結構(從屬性排序到視圖構建器分組),該技能可協助團隊在大型專案中實現統一的代碼庫。

  • 強制執行嚴格的屬性與方法排序(Environment、let、@State、計算變數、init、body、輔助函數)以提高可讀性。

  • 推廣 Model-View (MV) 模式而非複雜的 MVVM,鼓勵將邏輯委託給專業服務或數據模型的輕量級視圖。

  • 透過確保視圖模型是非可選的 (non-optional) 並通過視圖的初始化程序注入服務,促進對依賴項的安全處理。

  • 提供將大型視圖主體拆分為更小、可組合的子視圖或專用視圖類型的清晰說明,以維護單一職責原則。

  • 驗證正確的 Observation 使用方式,確保 @Observable 引用類型正確儲存為 @State 並透過視圖層級傳遞。

  • 包含使用擴展塊與 // MARK: 註釋來管理大型文件的技術,以對子視圖、動作與輔助邏輯進行分類。

  • 最適合在重構舊版 SwiftUI 代碼或引入需要嚴格依賴管理的新功能時使用。

  • 需要現有的 SwiftUI 視圖;本技能不創建新的業務邏輯,而是將現有結構組織得更具聲明性。

  • 建議用於目標為 iOS 17+ 的項目,在這些項目中 Observation 框架可用且優於 ObservableObject。

  • 限制:避免在標準 SwiftUI 屬性包裝器(如 @State 或 @Query)已足夠的情況下引入 ViewModels,傾向於「遺忘 MVVM」的哲學。

  • 輸入:接收一個 SwiftUI 文件或清理視圖佈局、依賴注入模式或狀態初始化邏輯的請求。

倉庫統計

Star 數
312
Fork 數
46
Open Issue 數
1
主要語言
Vim Script
預設分支
main
同步狀態
閒置
最近同步時間
2026年4月28日 下午12:29
在 GitHub 查看