Mac App
適合看多個任務、長時間工作、差異與產出。部分產品也提供桌面擴充、平行工作或排程。
用在:規劃、交辦、審查、跨 App 協作
第 03 課 / 先建立可掌握的工作流
AI 工具不只是聊天視窗。Mac App 適合規劃、管理與審查;CLI 能直接在專案裡讀檔、修改與執行指令。這一課先分清楚兩種入口,再把它們接到 Xcode、Simulator 與 Git。
01 / 兩種入口
適合看多個任務、長時間工作、差異與產出。部分產品也提供桌面擴充、平行工作或排程。
用在:規劃、交辦、審查、跨 App 協作
從專案資料夾啟動,能直接使用 Git、建置工具與測試指令;也更容易放進腳本與 CI。
用在:修改、建置、測試、除錯、自動化
02 / Terminal 基礎
CLI 工具都從目前資料夾開始工作。先練習路徑、檔案與 Git,才能判斷 AI 準備在哪裡執行什麼。
01 / Terminal emulator
這是顯示命令與輸出的視窗。macOS 內建 Terminal;iTerm2 是可選的替代 App,提供分頁、分割視窗、搜尋與更多工作區功能。
不安裝 iTerm2,也能完成本課。02 / Shell
Shell 負責解析你輸入的命令、尋找程式並顯示結果。macOS 預設使用 Zsh;可用 echo $SHELL 查看登入 shell。
03 / Configuration
Oh My Zsh 是管理 Zsh 主題、plugins 與設定的框架,不是另一個 shell,也不是 coding agent。
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"選用;安裝前先備份 `~/.zshrc`,並理解 installer 會修改設定。Navigation & files
| 指令 | 用途 | 範例與觀察 |
|---|---|---|
pwd | 顯示目前工作目錄的完整路徑。 | pwd → 先確認 AI 與你是否位於同一個專案。 |
ls | 列出目前資料夾內容。 | ls -la 也顯示隱藏檔,例如 `.git`。 |
mkdir | 建立資料夾。 | mkdir cli-practice;多層路徑可用 mkdir -p Projects/Demo。 |
cd | 切換目前工作目錄。 | cd cli-practice、cd .. 回上一層、cd - 回前一個位置。 |
open | 用 macOS App 開啟檔案或資料夾。 | open . 在 Finder 開啟目前目錄;open Demo.xcodeproj 開啟 Xcode 專案。 |
touch | 建立空白檔案,或更新既有檔案時間。 | touch README.md 不會打開編輯器,也不會寫入內容。 |
vi | 在 Terminal 裡編輯文字檔。 | vi README.md;按 i 輸入,Esc 回命令模式。 |
which -a | 依 `$PATH` 順序列出同名指令的所有位置。 | which -a git 可發現目前實際可能使用哪個 Git;alias/function 可再用 type -a 檢查。 |
vi survival
iEsc:w:wq:q!Git basics
git init在目前資料夾建立 `.git`。若 `ls -la` 已看見 `.git`,不要在子資料夾再次初始化。
git status確認哪些檔案新增、修改或刪除;這一步不會改變任何檔案。
git add -A一次加入新增、修改與刪除。範圍很大,執行前後都要檢查 `git status`。
git diff --staged只顯示已暫存、即將進入 commit 的內容。
git commit -m "Add initial README"Commit 只記錄已暫存內容,而且仍在本機;它不等於 push 或發布。
03 / 四套工具比較
功能與方案會持續更新;以下比較聚焦於課堂上能觀察、能實作的差異,而不是替模型能力排名。
手機可左右滑動表格查看完整內容。
| 比較面向 | CodexMac App ↗CLI 文件 ↗ | ClaudeMac App ↗CLI 文件 ↗ | GeminiMac App ↗CLI 文件 ↗ | AntigravityMac App ↗CLI 文件 ↗ |
|---|---|---|---|---|
| 桌面入口 | 以專案與任務為中心,可同時管理多個工作、檢視差異,並用 worktree 隔離修改。 | Claude Desktop 提供聊天、Claude Code 與 Cowork;可用桌面擴充連接本機檔案與其他服務。 | 不是 coding agent。Gemini Mac App 是通用型桌面 AI 助理,偏向快速問答、理解目前視窗與跨 App 協助;它不會像 Gemini CLI 一樣進入專案讀寫檔案、執行建置與驗證。 | Antigravity 2.0 是獨立的 agent command center,可在 Projects 中管理本機或 worktree 任務、檔案修改、指令與子代理;Antigravity IDE 是另一個獨立開發表面。 |
| 終端入口 | 適合直接在儲存庫中讀檔、修改、執行指令與驗證;App、CLI 與 IDE 可共享設定與工作脈絡。 | Claude Code 在終端機中操作專案;可用背景工作與獨立子代理分隔大型任務。 | Gemini CLI 在終端機讀寫專案、執行指令;可用 checkpoint 保存修改前狀態。 | Antigravity CLI 以 `agy` 啟動 Terminal UI,使用相同 agent harness 在受信任的專案目錄中讀寫檔案、執行指令與審查修改。 |
| 擴充語彙 | AGENTS.md、Skills、Plugins、MCP、Hooks、Automations | CLAUDE.md、Skills、Plugins、MCP、Subagents、Hooks | GEMINI.md、Extensions、Skills、MCP、Hooks、Sub-agents(預覽) | AGENTS.md、SKILL.md、MCP、Subagents、Scheduled Tasks、IDE Extensions |
| 對 iOS 開發 | 適合把「實作、建置、Simulator 驗證、差異審查」串成可重複流程,也適合平行處理彼此獨立的任務。 | 適合以專案規則約束修改,再用 Hooks 自動觸發格式化或檢查;複雜研究可交給獨立子代理後回傳摘要。 | 適合用專案脈絡檔搭配 CLI 建置與測試;checkpoint 有助於練習還原。IDE companion 以 VS Code 相容編輯器為主,不等同 Xcode 外掛。 | Desktop/CLI 可呼叫本機 Xcode 工具鏈;Antigravity IDE 另提供 Xcode extension,但企業支援仍在 Preview。它不取代 Xcode、SDK、Simulator 或簽署設定。 |
04 / 安裝與 iOS 設定
三套 CLI 都是使用你 Mac 上已安裝的 Apple 工具鏈;它們不會自行提供 iOS SDK、Simulator 或簽署憑證。
安裝後可在 Terminal 檢查:
xcode-select --print-pathxcodebuild -versionxcrun simctl list devices`xcodebuild`、`simctl` 與 Simulator 來自 Xcode。AI 工具只是呼叫它們並閱讀結果。
curl -fsSL https://chatgpt.com/codex/install.sh | shcodex,第一次使用時完成登入。Codex 從專案目錄呼叫本機的 `xcodebuild`、`xcrun simctl` 與測試工具;Xcode 所選的版本、scheme、Simulator runtime 與簽署設定會決定執行結果。App 可用 worktree 隔離任務,Skills/Plugins 可保存建置、測試與 Simulator 驗證流程。
curl -fsSL https://claude.ai/install.sh | bashclaude --version 確認安裝。claude 並登入。Claude Code 使用同一套本機 shell 與 Xcode 指令執行建置、測試及 Simulator 操作。可在 `CLAUDE.md` 記錄 workspace、scheme、目的裝置與驗證規則,並用 Hooks 在修改後觸發格式化或測試。
需要 Node.js 20 或更新版本。
npm install -g @google/gemini-cligemini。只有 Gemini CLI 會從專案資料夾讀寫檔案並呼叫 `xcodebuild`、`xcrun simctl` 與測試工具。可用 `GEMINI.md` 保存專案規則,以 Extensions、Skills 與 Hooks 重複使用 iOS 工作流;Gemini Mac App 不會使用 scheme 或 Simulator 作為 agent 驗證。
curl -fsSL https://antigravity.google/cli/install.sh | bashagy。Antigravity Desktop/CLI 仍透過本機 `xcodebuild`、`xcrun simctl` 與 Git 操作 iOS 專案。Antigravity IDE 可搭配 Xcode extension 在 Xcode 內協作,但企業支援仍在 Preview;Xcode 繼續管理 SDK、scheme、Simulator、簽署與實機。
05 / 實用 Skills 與 CLI
Skill 保存做事方式、限制與完成條件;命令列工具負責真正的建置、測試與裝置操作。不要把兩者混為一談。
Skills
以下是 Codex Skill 名稱範例;Claude 與 Gemini 可建立同類 Skill,但名稱與取得方式可能不同。
$xcode-cli找出專案、workspace、scheme 與建置錯誤,執行聚焦測試或 SwiftUI Preview。
起步必備$device-interaction查看 UI 階層、截圖並執行觸控流程,確認 App 不只是在編譯階段成功。
行為驗證$swiftui-pro檢查 API 使用、資料流、可維護性與效能,提出有範圍的改善建議。
程式品質$swift-concurrency-pro檢查 actor 隔離、Sendable、Task 與 async/await 的常見錯誤。
風險審查$xcode-build-benchmark固定輸入並量測 clean 與 incremental build,讓「有變快」具備比較證據。
效能證據$asc-release-flow在產品完成後,整理 archive、上傳、測試群組與提交流程;不適合拿來取代開發期驗證。
進階流程Command line
先理解每個指令能證明什麼,再決定是否交給 AI 自動執行。
| 工具/範例 | 用途 | 證據邊界 |
|---|---|---|
xcode-select --print-path | 確認目前終端機使用哪一套 Xcode toolchain。 | 只證明路徑選擇;不證明專案能建置。 |
xcodebuild -list | 列出 project/workspace 的 targets、configurations 與 schemes。 | 協助找到正確輸入;不會執行建置。 |
xcodebuild -showdestinations | 找出 scheme 可用的 Simulator 或實機目的地。 | 目的地存在,不代表 App 能成功啟動。 |
xcodebuild … build | 使用指定 scheme 與 destination 編譯專案。 | Build succeeded 只證明可編譯,不能證明 UI 與流程正確。 |
xcodebuild … test | 執行單元、整合或 UI tests,並可輸出 result bundle。 | 只涵蓋實際執行的 tests 與目的地。 |
xcrun simctl | 列出、啟動 Simulator,安裝與啟動 App,擷取畫面或狀態。 | 啟動成功仍需實際操作主要流程。 |
swift test | 測試獨立 Swift Package 或可用 SwiftPM 建置的模組。 | 不會驗證完整 iOS App、簽署或 Simulator UI。 |
xcrun xcresulttool | 讀取 `.xcresult`,整理失敗測試、診斷與附件。 | 解讀既有結果;不會自行補跑被取消的測試。 |
xcrun devicectl | 列出與操作連接的 Apple 裝置,安裝或啟動實機 App。 | 涉及實機、信任與簽署;Simulator 證據無法取代。 |
git status / diff | 確認 AI 改了哪些檔案與內容,避免混入無關修改。 | 呈現來源差異;不證明修改後的 runtime 行為。 |
06 / Plugins 與 Workflow
AGENTS.md · CLAUDE.md · GEMINI.md保存每次都要遵守的架構、命名、建置與驗證規則。
Skills · Commands把「做什麼、怎麼做、完成證據」整理成需要時載入的工作流。
MCP · Apps連接設計、文件、Issue、瀏覽器或其他服務;仍受帳號權限與核准範圍限制。
Hooks · AutomationsHooks 在生命週期事件發生時執行;Automations 適合排程與背景追蹤。兩者不是同一件事。
07 / iOS 協作流程
先讓 AI 讀取專案規則、Git 狀態與相關檔案;不要一開始就要求重寫整個 App。
說清楚使用者情境、修改範圍、不得改動的部分,以及可觀察的驗收條件。
一次完成一個可檢查的改變;每一步都閱讀 diff,確認沒有順手改到無關檔案。
用 Xcode 或命令列執行建置與聚焦測試。通過建置只代表可編譯,不代表操作正確。
實際啟動 App、點擊主要流程、檢查錯誤與邊界情境,留下畫面或測試結果。
解釋改了什麼、證據能證明什麼;確認 Git 可還原後,才建立清楚的版本紀錄。
08 / 課堂實作
09 / 官方資料