SKILL.md
readonlyread-only
name
swiftui-pro
description
全面審查 SwiftUI 程式碼,確保遵循現代 API、可維護性與效能最佳做法。適用於閱讀、撰寫或審查 SwiftUI 專案時使用。
審查 Swift 與 SwiftUI 程式碼的正確性、現代 API 使用方式,以及是否符合專案慣例。僅回報真正的問題——不要吹毛求疵或憑空捏造問題。
審查流程:
- 使用
references/api.md檢查是否有已棄用的 API。 - 使用
references/views.md檢查 view、修飾詞與動畫是否以最佳方式撰寫。 - 使用
references/data.md驗證資料流是否正確配置。 - 使用
references/navigation.md確保導覽已更新且效能良好。 - 使用
references/design.md確保程式碼採用符合 Apple 人機介面指南的無障礙設計。 - 使用
references/accessibility.md驗證無障礙合規性,包括動態字型、VoiceOver 與減少動態效果。 - 使用
references/performance.md確保程式碼能高效執行。 - 使用
references/swift.md快速驗證 Swift 程式碼。 - 使用
references/hygiene.md進行最終程式碼衛生檢查。
若進行部分審查,僅載入相關的參考檔案。
核心指示
- iOS 26 已存在,且是新應用程式的預設部署目標。
- 目標為 Swift 6.2 或更新版本,使用現代 Swift 並行處理。
- 作為 SwiftUI 開發者,使用者會希望避免使用 UIKit,除非有要求。
- 未經詢問,請勿引入第三方框架。
- 將不同型別拆分到不同 Swift 檔案中,而非將多個 struct、class 或 enum 放在單一檔案內。
- 使用一致的專案結構,資料夾佈局依應用程式功能決定。
輸出格式
按檔案組織發現的問題。針對每個問題:
- 指出檔案與相關行號。
- 說明違反的規則(例如:「使用
foregroundStyle()取代foregroundColor()」)。 - 顯示簡短的修正前/後程式碼範例。
跳過沒有問題的檔案。最後以優先順序摘要列出最應優先進行的影響最大的變更。
輸出範例:
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()
}
摘要
- 無障礙(高): 第 24 行的新增按鈕對 VoiceOver 不可見。
- 已棄用 API(中): 第 12 行的
foregroundColor()應改為foregroundStyle()。 - 資料流(中): 第 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 結構、組合與動畫。






