只選一套:追求 Apple 原始文件的限制與減少 API 幻覺,選 ameyalambat128/swiftui-skills;需要涵蓋端到端 iOS 工程,並依 framework 精準路由,選 dpearson2699/swift-ios-skills。最合適的搭配:前者作為事實依據層,後者只安裝專案實際需要的 5–10 個專門 Skill。
AI 寫 SwiftUI 最常見的問題,通常不是語法錯誤,而是程式碼只是「看起來正確」:狀態所有權不清楚、導覽模式過時、並行處理界線模糊,或者混入一個不存在的 API。Agent Skills 能讓一般模型依照明確的 Apple 平台工程限制協作。
Agent Skill 究竟是什麼?
Skill 通常是一個包含 SKILL.md 的目錄。它會告訴 Codex、Claude Code、Cursor 等程式設計 Agent:何時啟用這項能力、應該先閱讀哪些參考資料、產生程式碼時要遵循哪些規則,以及最後要以什麼格式輸出。它不是 Xcode extension,也不是 Swift package;它更像供 AI 的「團隊工程手冊 + 專門知識套件」。
與把所有規則塞進一段很長的 prompt 相比,Skill 可以依任務載入。處理 SwiftUI 動畫時載入動畫指南,處理 StoreKit 時載入購買與交易驗證規則,除錯捲動停頓時再載入效能與 Instruments 指南。這種按需載入的 context,通常更準確,也能節省 token。
兩種做法,一表比較
| 比較項目 | ameyalambat128/swiftui-skills | dpearson2699/swift-ios-skills |
|---|---|---|
| 形式 | 1 個整合型 Skill | 84 個獨立 Skill,9 類 |
| 主要來源 | 從本機 Xcode 擷取 Apple AdditionalDocumentation | repository 維護者撰寫的指南、範例與參考資料 |
| 涵蓋範圍 | SwiftUI 與 Apple 新的平台功能 | 端到端 iOS 工程,從 SwiftUI、資料到 AI、硬體與發佈 |
| 更新方式 | 重新從本機 Xcode 擷取文件 | 從 repository 更新個別 Skill |
| 適合情境 | 重視 Apple 原始指南、API 可用範圍與審查依據 | 希望依 framework 選用功能,並涵蓋完整開發流程的團隊 |
| 授權條款 | MIT | PolyForm Perimeter 1.0.0 |
做法一:把 Xcode 文件作為 AI 的事實依據
Repository 01
ameyalambat128/swiftui-skills
一個整合型 Skill,安裝時從本機 Xcode 26+ 擷取 Apple 內附的 AdditionalDocumentation。repository 不會重新散佈 Apple 文件;參考資料會在使用者的 Mac 上產生。
- MIT
- macOS
- Xcode 26+
- local-first
這套做法最重要的設計,是明確規定「所有事實與 API 都必須以本機 /docs 為準」。撰寫程式碼前先選擇文件,審查程式碼時列出使用過的文件;如果資料中找不到對應型別或 API,就應該說明不確定之處,而不是捏造看似合理的名稱。
擷取的內容不只涵蓋 SwiftUI layout,還包含 App Intents、AlarmKit、StoreKit、WebKit、SwiftData 繼承、Swift Concurrency、Liquid Glass、visionOS Widget,以及 InlineArray、Span 等底層效能原語。
它的優勢在於來源品質,而不是 Skill 數量。如果主要問題是 AI 經常使用過時的 modifier、漏掉 availability 檢查,或產生不符合 Apple 慣例的 view 結構,這套做法能直接處理這些問題。
需要留意的限制
- 需要 macOS 與 Xcode 26 或更高版本;文件目錄尚未完成擷取時,Skill 依規則不應繼續提供 SwiftUI 指南。
- 它的入口較廣。複雜專案仍需在任務中指定明確目標,例如「依 Apple 文件審查狀態所有權與導覽」。
- 本機 Xcode 版本決定了參考資料版本,團隊應統一 toolchain,避免同一任務得出互相衝突的可用範圍結論。
做法二:84 個可搭配使用的 iOS 專門 Skill
Repository 02
dpearson2699/swift-ios-skills
面向 iOS 26+ 與 Swift 6.3 的獨立 Skill 套件。每個 Skill 各自完整,不互相依賴,可以只安裝專案實際需要的部分。
- 84 skills
- 9 categories
- Agent Skills standard
- PolyForm Perimeter
這個 repository 的優勢是路由精準。不必每次都把完整的 Apple 開發知識放進 context:一個使用 SwiftData、StoreKit 2、App Intents 與 WidgetKit 的訂閱制應用程式,可以只安裝這幾項,再搭配 SwiftUI patterns、Swift Concurrency、測試與輔助使用 Skill。
以下是截至本文更新時的完整 84 個 Skill 目錄。展開各組即可確認是否涵蓋專案的技術組合。
SwiftUI 10 skills
- focus-engine:焦點與 tvOS/iPad 鍵盤導覽
- swiftui-animation:spring、keyframe 與幾何動畫
- swiftui-gestures:手勢組合與衝突處理
- swiftui-layout-components:Grid、Layout 與自適應佈局
- swiftui-liquid-glass:iOS 26 Liquid Glass
- swiftui-navigation:導覽 stack、split view 與 deep link
- swiftui-patterns:Observation、狀態與組合模式
- swiftui-performance:更新、layout 與 Instruments
- swiftui-uikit-interop:UIKit 互操作與漸進遷移
- swiftui-webkit:WebView 與 WebPage
Core Swift 10 skills
- swift-api-design-guidelines:命名與 API 設計
- swift-architecture:MV、MVVM、TCA 等架構決策
- swift-codable:JSON 編解碼
- swift-charts:2D/3D 圖表
- swift-concurrency:actor、Sendable 與資料競爭
- swift-formatstyle:日期、數字與自訂格式
- swift-language:Swift 6.3 語言慣例
- swift-testing:Swift Testing
- core-data:Core Data 與遷移
- swiftdata:Model、Query、遷移與同步
App Experience Frameworks 15 skills
- activitykit:Live Activities 與 Dynamic Island
- adattributionkit:隱私歸因
- alarmkit:系統鬧鐘與倒數計時
- app-clips:App Clip
- app-intents:Siri、捷徑與 Spotlight
- avkit:影片播放、子母畫面與 AirPlay
- carplay:CarPlay 模板
- mapkit:地圖、定位與路線
- paperkit:PaperKit 標註
- pdfkit:檢視與編輯 PDF
- photokit:照片、相機與權限
- push-notifications:APNs 與通知 extension
- storekit:StoreKit 2
- tipkit:功能提示
- widgetkit:Widget 與 Control
Data & Service Frameworks 8 skills
- cloudkit:記錄、訂閱與同步
- contacts-framework:聯絡人
- eventkit:行事曆與提醒事項
- financekit:Wallet 交易與帳戶
- healthkit:健康與運動資料
- musickit:音樂目錄與播放
- passkit:Apple Pay 與 Wallet
- weatherkit:天氣與出處標示規則
AI & Machine Learning 5 skills
- apple-on-device-ai:Foundation Models 與裝置端 LLM
- coreml:模型載入、MLTensor 與推理
- natural-language:斷詞、情緒分析與翻譯
- speech-recognition:裝置端語音辨識
- vision-framework:OCR、檢測與掃描
iOS Engineering 14 skills
- app-store-optimization:ASO
- app-store-review:App Review 與 privacy manifest
- authentication:Sign in with Apple、Passkey 與生物辨識
- background-processing:背景任務與傳輸
- cryptokit:雜湊、加密與 Secure Enclave
- debugging-instruments:debugger 與 Instruments
- device-integrity:DeviceCheck 與 App Attest
- ios-accessibility:VoiceOver 與 Dynamic Type
- ios-localization:String Catalog 與 RTL
- ios-networking:URLSession、WebSocket 與快取
- swift-security:Keychain 與安全性實務
- ios-simulator:simctl 與自動化
- metrickit:當機、停頓與耗電指標
- swiftlint:規則、baseline 與 CI
Hardware & Device Integration 8 skills
- accessorysetupkit:配件發現
- core-bluetooth:BLE
- core-motion:動作感測器
- core-nfc:NFC 讀寫
- dockkit:智慧型 dock 與取景
- pencilkit:Apple Pencil 繪圖
- realitykit:AR 與空間場景
- sensorkit:研究等級的感測器資料
Platform Integration 10 skills
- appmigrationkit:跨平台資料遷移
- audioaccessorykit:音訊配件
- browserenginekit:替代 browser engine
- callkit:通話與 VoIP
- cryptotokenkit:智慧卡與憑證驗證
- energykit:電網與負載分析
- homekit:HomeKit 與 Matter
- permissionkit:兒童通訊安全
- relevancekit:Widget 相關性
- shareplay-activities:GroupActivity 與同步體驗
Gaming 4 skills
- gamekit:Game Center 與多人遊戲
- scenekit:3D 場景
- spritekit:2D 場景與物理
- tabletopkit:visionOS 空間桌上遊戲
如何選擇:從任務出發,不看數量
情境 A:剛開始用 AI 撰寫 SwiftUI
先安裝 swiftui-skills 用來套用 Apple 文件限制,再從 84 個 Skill 中加入 swiftui-patterns、swiftui-navigation、swift-concurrency、swift-testing 與 ios-accessibility。這五項涵蓋大多數新專案最容易出錯的地方。
情境 B:在既有產品中開發功能
依目前的技術組合選擇,不要因為未來可能用到就先安裝。訂閱制應用程式加入 storekit;有系統入口加入 app-intents 與 widgetkit;大量使用資料的應用程式加入 swiftdata 或 core-data;裝置端 AI 產品加入 apple-on-device-ai。
情境 C:做程式碼審查與可靠性改善
優先選用 swiftui-performance、debugging-instruments、metrickit、swift-security、ios-accessibility 和 app-store-review。這組更像發佈前的檢查關卡,而不是程式碼產生器。
建議起點:1 個事實依據 Skill + 5 個專門 Skill。等專案遇到新的真實任務再擴展。安裝全部 84 項並不會自動提高品質,反而可能增加路由和 context 雜訊。
安裝:通用 Agent 與 Codex
安裝本機 Apple 文件 Skill
# 直接安裝並從 Xcode 擷取文件
curl -fsSL https://swiftui-skills.ameyalambat.com/install | bash
# 或使用 skills CLI
npx skills add ameyalambat128/swiftui-skills
透過 pipe 執行遠端安裝 script 前,建議先檢查 repository 中的安裝 script。安裝完成後,請執行對應目錄中的 setup.sh,並重新啟動 Agent 會話,讓 Agent 能找到新的 Skill。
互動式選擇 84 個 Skill
# 開啟互動式選擇器,選擇 Skill 與目標 Agent
npx skills add dpearson2699/swift-ios-skills
# 只安裝指定能力
npx skills add dpearson2699/swift-ios-skills \
--skill swiftui-patterns \
--skill swift-concurrency \
--skill swift-testing
# 檢查與更新
npx skills check
npx skills update
在 Codex 中安裝單一 Skill
$skill-installer install \
https://github.com/dpearson2699/swift-ios-skills/tree/main/skills/swiftui-patterns
將最後一段目錄名稱換成目錄中的任一 Skill 名稱。專案專用規則適合放在專案 scope;跨專案通用的 SwiftUI 與工程規範,適合放在個人共用 scope。
更可靠的搭配工作流程
- 先聲明目標與 deployment target。告訴 Agent 是新功能、重構還是審查,並明確 iOS 最低版本,避免無條件使用較新的 API。
- 先讓事實依據層選擇文件。要求
swiftui-skills列出本次使用的 Apple 文件與 availability 限制。 - 只載入任務對應的專門 Skill。例如導覽問題用
swiftui-navigation,購買功能用storekit,不要把整個目錄都塞進一次任務。 - 要求完整驗證。讓 Agent 建置 target、執行測試,並在 UI 變更時檢查 Dynamic Type、VoiceOver 與深色模式。
- 將決策記錄在專案規則中。反覆出現的架構決策應放進專案自己的 Skill 或 AGENTS.md,而不是每次重新討論。
可重複使用的任務 prompt 可以這樣寫:
Use local Apple documentation as the API source of truth,
and use swiftui-patterns, swift-concurrency, and swift-testing.
Goal: implement a testable asynchronous loading screen for an iOS 26 app.
List the selected documentation and state ownership first, then modify the code, build, and run tests.
Do not introduce an architecture that the project does not already use.
版本與授權條款:最後兩項檢查
Apple 平台 API 更新很快。本文核對的上游版本分別是 2026 年 7 月 6 日的 swiftui-skills 提交與 2026 年 7 月 4 日的 swift-ios-skills 提交;repository 內容、支援版本與 Skill 數量都可能變動。對於 beta framework,務必用目前 Xcode SDK 再驗證一次。
授權條款也不同:swiftui-skills 使用 MIT;swift-ios-skills 使用 PolyForm Perimeter 1.0.0,允許用於應用程式開發與 closed-source 商業工作流程,但限制把這些內容重新包裝成競爭產品。在團隊內散佈、修改或進行商業整合前,應閱讀上游 LICENSE,而不是只依賴本文摘要。
常見問題
SwiftUI Agent Skill 會替代 Apple 官方文件嗎?
不會。Skill 的作用是幫助 Agent 在合適時機讀取並執行規則。最終的 API 可用範圍、平台行為與審核要求,仍應以目前 Xcode SDK 和 Apple 官方資料為準。
兩套 Skill 可以同時安裝嗎?
可以,而且兩者可以互補:一套提供本機 Apple 文件事實依據,另一套提供更聚焦的 framework 與工程工作流程。建議依專案選擇 Skill,不要預設全裝。
一次安裝全部 84 個會更好嗎?
不一定。長期維護多種 Apple 平台專案的團隊可能受益;單一產品通常從 5–10 個常用 Skill 開始,脈絡通常更清楚,也更容易知道每項建議的來源。
這些 Skill 只適用於 Codex 嗎?
不是。兩個 repository 都支援多種 Agent,包括 Codex、Claude Code、Cursor 等工具;具體安裝路徑與 Skill 探索機制以各 Agent 目前版本為準。