swiftui-pro

swiftui-pro

熱門

全面審查 SwiftUI 程式碼,確保遵循現代 API、可維護性與效能最佳做法。適用於閱讀、撰寫或審查 SwiftUI 專案時使用。

4158星標
150分支
更新於 2026/4/20
SKILL.md
readonlyread-only
name
swiftui-pro
description

全面審查 SwiftUI 程式碼,確保遵循現代 API、可維護性與效能最佳做法。適用於閱讀、撰寫或審查 SwiftUI 專案時使用。

審查 Swift 與 SwiftUI 程式碼的正確性、現代 API 使用方式,以及是否符合專案慣例。僅回報真正的問題——不要吹毛求疵或憑空捏造問題。

審查流程:

  1. 使用 references/api.md 檢查是否有已棄用的 API。
  2. 使用 references/views.md 檢查 view、修飾詞與動畫是否以最佳方式撰寫。
  3. 使用 references/data.md 驗證資料流是否正確配置。
  4. 使用 references/navigation.md 確保導覽已更新且效能良好。
  5. 使用 references/design.md 確保程式碼採用符合 Apple 人機介面指南的無障礙設計。
  6. 使用 references/accessibility.md 驗證無障礙合規性,包括動態字型、VoiceOver 與減少動態效果。
  7. 使用 references/performance.md 確保程式碼能高效執行。
  8. 使用 references/swift.md 快速驗證 Swift 程式碼。
  9. 使用 references/hygiene.md 進行最終程式碼衛生檢查。

若進行部分審查,僅載入相關的參考檔案。

核心指示

  • iOS 26 已存在,且是新應用程式的預設部署目標。
  • 目標為 Swift 6.2 或更新版本,使用現代 Swift 並行處理。
  • 作為 SwiftUI 開發者,使用者會希望避免使用 UIKit,除非有要求。
  • 未經詢問,請勿引入第三方框架。
  • 將不同型別拆分到不同 Swift 檔案中,而非將多個 struct、class 或 enum 放在單一檔案內。
  • 使用一致的專案結構,資料夾佈局依應用程式功能決定。

輸出格式

按檔案組織發現的問題。針對每個問題:

  1. 指出檔案與相關行號。
  2. 說明違反的規則(例如:「使用 foregroundStyle() 取代 foregroundColor()」)。
  3. 顯示簡短的修正前/後程式碼範例。

跳過沒有問題的檔案。最後以優先順序摘要列出最應優先進行的影響最大的變更。

輸出範例:

ContentView.swift

第 12 行:使用 foregroundStyle() 取代 foregroundColor()

// 修正前
Text("Hello").foregroundColor(.red)

// 修正後
Text("Hello").foregroundStyle(.red)

第 24 行:僅圖示的按鈕對 VoiceOver 不友善——請加上文字標籤。

// 修正前
Button(action: addUser) {
    Image(systemName: "plus")
}

// 修正後
Button("Add User", systemImage: "plus", action: addUser)

第 31 行:避免在 view body 中使用 Binding(get:set:)——請改用 @State 搭配 onChange()

// 修正前
TextField("Username", text: Binding(
    get: { model.username },
    set: { model.username = $0; model.save() }
))

// 修正後
TextField("Username", text: $model.username)
    .onChange(of: model.username) {
        model.save()
    }

摘要

  1. 無障礙(高): 第 24 行的新增按鈕對 VoiceOver 不可見。
  2. 已棄用 API(中): 第 12 行的 foregroundColor() 應改為 foregroundStyle()
  3. 資料流(中): 第 31 行的手動綁定較脆弱且難以維護。

範例結束。

參考資料

  • references/accessibility.md - 動態字型、VoiceOver、減少動態效果及其他無障礙需求。
  • references/api.md - 更新程式碼以使用現代 API,以及其所取代的已棄用程式碼。
  • references/design.md - 建立符合 Apple 人機介面指南的無障礙應用程式之指引。
  • references/hygiene.md - 確保程式碼編譯乾淨且長期可維護。
  • references/navigation.md - 使用 NavigationStack/NavigationSplitView 的導覽,以及提示、確認對話框與 sheet。
  • references/performance.md - 最佳化 SwiftUI 程式碼以達到最高效能。
  • references/data.md - 資料流、共享狀態與屬性包裝函式。
  • references/swift.md - 撰寫現代 Swift 程式碼的提示,包括有效使用 Swift 並行處理。
  • references/views.md - view 結構、組合與動畫。