第 03 課 / 先建立可掌握的工作流

建立開發環境

AI 工具不只是聊天視窗。Mac App 適合規劃、管理與審查;CLI 能直接在專案裡讀檔、修改與執行指令。這一課先分清楚兩種入口,再把它們接到 Xcode、Simulator 與 Git。

選工具不是選「誰最會寫 Swift」。要比較的是:它如何取得脈絡、控制修改、連接工具,以及留下可驗證的證據。

01 / 兩種入口

Mac App 管理工作,CLI 貼近專案

A

Mac App

適合看多個任務、長時間工作、差異與產出。部分產品也提供桌面擴充、平行工作或排程。

用在:規劃、交辦、審查、跨 App 協作

B

CLI

從專案資料夾啟動,能直接使用 Git、建置工具與測試指令;也更容易放進腳本與 CI。

用在:修改、建置、測試、除錯、自動化

02 / Terminal 基礎

先知道你在哪裡,再開始改檔案

CLI 工具都從目前資料夾開始工作。先練習路徑、檔案與 Git,才能判斷 AI 準備在哪裡執行什麼。

01 / Terminal emulator

Terminal 或 iTerm2

這是顯示命令與輸出的視窗。macOS 內建 Terminal;iTerm2 是可選的替代 App,提供分頁、分割視窗、搜尋與更多工作區功能。

不安裝 iTerm2,也能完成本課。

02 / Shell

Zsh

Shell 負責解析你輸入的命令、尋找程式並顯示結果。macOS 預設使用 Zsh;可用 echo $SHELL 查看登入 shell。

Terminal 是視窗;Zsh 才是執行命令的 shell。

03 / Configuration

Oh My Zsh

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

先記住五個操作

i
進入輸入模式
Esc
回到命令模式
:w
儲存
:wq
儲存並離開
:q!
放棄修改並離開

Git basics

把修改變成可還原的版本

  1. 01
    git init

    開始版本控制

    在目前資料夾建立 `.git`。若 `ls -la` 已看見 `.git`,不要在子資料夾再次初始化。

  2. 02
    git status

    先看目前狀態

    確認哪些檔案新增、修改或刪除;這一步不會改變任何檔案。

  3. 03
    git add -A

    暫存所有變更

    一次加入新增、修改與刪除。範圍很大,執行前後都要檢查 `git status`。

  4. 04
    git diff --staged

    提交前閱讀差異

    只顯示已暫存、即將進入 commit 的內容。

  5. 05
    git commit -m "Add initial README"

    建立本機版本紀錄

    Commit 只記錄已暫存內容,而且仍在本機;它不等於 push 或發布。

03 / 四套工具比較

相同任務,不同工作表面

功能與方案會持續更新;以下比較聚焦於課堂上能觀察、能實作的差異,而不是替模型能力排名。

手機可左右滑動表格查看完整內容。

Codex、Claude、Gemini 與 Antigravity 的 Mac App、CLI、擴充機制與 iOS 開發比較
比較面向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、AutomationsCLAUDE.md、Skills、Plugins、MCP、Subagents、HooksGEMINI.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 設定

先把 Xcode 準備好,再安裝 coding agent

三套 CLI 都是使用你 Mac 上已安裝的 Apple 工具鏈;它們不會自行提供 iOS SDK、Simulator 或簽署憑證。

共用的 iOS 開發環境

  1. 從 Mac App Store 安裝 Xcode,第一次開啟時完成必要元件設定。
  2. 在 Xcode Settings → Components 安裝課程需要的 iOS Simulator runtime。
  3. 在 Xcode Settings → Locations,確認 Command Line Tools 指向目前使用的 Xcode。
  4. 在 Xcode Settings → Apple Accounts 登入 Apple ID;需要實機測試時再設定簽署與裝置。

安裝後可在 Terminal 檢查:

xcode-select --print-pathxcodebuild -versionxcrun simctl list devices

`xcodebuild`、`simctl` 與 Simulator 來自 Xcode。AI 工具只是呼叫它們並閱讀結果。

01

Codex

官方安裝文件 ↗

安裝 Mac App

  1. 下載並安裝 ChatGPT desktop app。
  2. 開啟 App,以 ChatGPT 帳號登入。
  3. 選擇 Codex,開啟包含 `.xcodeproj` 或 `.xcworkspace` 的專案資料夾。

安裝 CLI

curl -fsSL https://chatgpt.com/codex/install.sh | sh
  1. 在 Terminal 進入專案資料夾。
  2. 執行 codex,第一次使用時完成登入。

如何使用 iOS 設定

Codex 從專案目錄呼叫本機的 `xcodebuild`、`xcrun simctl` 與測試工具;Xcode 所選的版本、scheme、Simulator runtime 與簽署設定會決定執行結果。App 可用 worktree 隔離任務,Skills/Plugins 可保存建置、測試與 Simulator 驗證流程。

02

Claude

官方安裝文件 ↗

安裝 Mac App

  1. 到 Claude Downloads 下載 macOS 版本。
  2. 完成安裝,從 Applications 開啟 Claude 並登入。
  3. 要操作程式專案時,使用 Claude Code 工作區,而不只是一般聊天。

安裝 CLI

curl -fsSL https://claude.ai/install.sh | bash
  1. 執行 claude --version 確認安裝。
  2. 進入專案資料夾後執行 claude 並登入。

如何使用 iOS 設定

Claude Code 使用同一套本機 shell 與 Xcode 指令執行建置、測試及 Simulator 操作。可在 `CLAUDE.md` 記錄 workspace、scheme、目的裝置與驗證規則,並用 Hooks 在修改後觸發格式化或測試。

03

Gemini

官方安裝文件 ↗

安裝 Mac App

  1. 到 Gemini for Mac 下載 `.dmg`。
  2. 將 Gemini 拖到 Applications 並使用 Google 帳號登入。
  3. 它不是 coding agent:可詢問程式問題或分享 Xcode 視窗,但不會進入 repo 執行開發流程。

安裝 CLI

需要 Node.js 20 或更新版本。

npm install -g @google/gemini-cli
  1. 執行 gemini。
  2. 依畫面選擇 Sign in with Google 完成登入。

如何使用 iOS 設定

只有 Gemini CLI 會從專案資料夾讀寫檔案並呼叫 `xcodebuild`、`xcrun simctl` 與測試工具。可用 `GEMINI.md` 保存專案規則,以 Extensions、Skills 與 Hooks 重複使用 iOS 工作流;Gemini Mac App 不會使用 scheme 或 Simulator 作為 agent 驗證。

04

Antigravity

官方安裝文件 ↗

安裝 Desktop/IDE

  1. 到 Antigravity Downloads 下載並安裝 Antigravity 2.0。
  2. 使用 Google 帳號登入,建立 Project 並加入 Xcode 專案資料夾。
  3. 依需要另外安裝 Antigravity IDE;它與 Antigravity 2.0 桌面 command center 是不同 App。

安裝 CLI

curl -fsSL https://antigravity.google/cli/install.sh | bash
  1. 進入專案資料夾後執行 agy。
  2. 完成登入、外觀設定與 Workspace Trust。

如何使用 iOS 設定

Antigravity Desktop/CLI 仍透過本機 `xcodebuild`、`xcrun simctl` 與 Git 操作 iOS 專案。Antigravity IDE 可搭配 Xcode extension 在 Xcode 內協作,但企業支援仍在 Preview;Xcode 繼續管理 SDK、scheme、Simulator、簽署與實機。

05 / 實用 Skills 與 CLI

先教 AI 重複做對,再用指令留下證據

Skill 保存做事方式、限制與完成條件;命令列工具負責真正的建置、測試與裝置操作。不要把兩者混為一談。

Skills

值得優先建立或安裝的 iOS 工作流

以下是 Codex Skill 名稱範例;Claude 與 Gemini 可建立同類 Skill,但名稱與取得方式可能不同。

$xcode-cli

Xcode 建置與診斷

找出專案、workspace、scheme 與建置錯誤,執行聚焦測試或 SwiftUI Preview。

起步必備
$device-interaction

Simulator 實際操作

查看 UI 階層、截圖並執行觸控流程,確認 App 不只是在編譯階段成功。

行為驗證
$swiftui-pro

SwiftUI 品質審查

檢查 API 使用、資料流、可維護性與效能,提出有範圍的改善建議。

程式品質
$swift-concurrency-pro

Concurrency 正確性

檢查 actor 隔離、Sendable、Task 與 async/await 的常見錯誤。

風險審查
$xcode-build-benchmark

建置效能基準

固定輸入並量測 clean 與 incremental build,讓「有變快」具備比較證據。

效能證據
$asc-release-flow

TestFlight 與發布

在產品完成後,整理 archive、上傳、測試群組與提交流程;不適合拿來取代開發期驗證。

進階流程

Command line

Agent 會反覆使用的工具

先理解每個指令能證明什麼,再決定是否交給 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 · Automations

Hooks 在生命週期事件發生時執行;Automations 適合排程與背景追蹤。兩者不是同一件事。

07 / iOS 協作流程

工具可以不同,證據順序一致

  1. 01

    理解現況

    先讓 AI 讀取專案規則、Git 狀態與相關檔案;不要一開始就要求重寫整個 App。

  2. 02

    明確規格

    說清楚使用者情境、修改範圍、不得改動的部分,以及可觀察的驗收條件。

  3. 03

    小步實作

    一次完成一個可檢查的改變;每一步都閱讀 diff,確認沒有順手改到無關檔案。

  4. 04

    建置與測試

    用 Xcode 或命令列執行建置與聚焦測試。通過建置只代表可編譯,不代表操作正確。

  5. 05

    Simulator 驗證

    實際啟動 App、點擊主要流程、檢查錯誤與邊界情境,留下畫面或測試結果。

  6. 06

    掌握與還原

    解釋改了什麼、證據能證明什麼;確認 Git 可還原後,才建立清楚的版本紀錄。

diffbuildfocused testsruntime操作與邊界

08 / 課堂實作

完成一輪,再證明你能回到原點

任務

  1. 選擇一套 CLI,在練習專案中新增一個小型 SwiftUI 改動。
  2. 要求 AI 先提出驗收條件,再進行修改。
  3. 完成建置與 Simulator 操作,檢查 diff。
  4. 用 Git 或 checkpoint 還原,再重新套用正確修改。

交付證據

  • 工具選擇與理由
  • 修改前後的 Git 狀態
  • 建置或測試結果
  • Simulator 實際操作畫面
  • 還原成功的說明

09 / 官方資料

功能有更新,以官方文件為準

← 返回第 3 週課綱