Swift:從功能需要的語法開始
let/var 與型別:哪些值固定、哪些值會改變?
條件與集合:如何篩選、排序或處理一份清單?
Optional:資料不存在時,程式如何處理?
函式、struct 與 closure:資料長什麼樣子?操作如何傳入、產生結果?
第 06 課 / 從修改理解作品
延續第五週的用戶回饋,選一個要改善的功能,透過 Agent 建立分支、進行修改並加入對應設定。每次修改都練習解釋程式、預測行為,再在 iPhone 上驗證。
01 / 如何學習
從用戶觀察挑一項改動。寫清楚現在的行為、期望的結果、修改範圍與如何驗證。
先要求列出相關檔案、View、狀態與資料來源,附上實際位置;自己打開檔案確認。
遇到不熟悉的語法,請 Agent 用該段程式說明,再查官方資料。用一個短範例或 Xcode Playground/Preview 練習。
在 Agent 修改前,說出哪個狀態會改變、哪個畫面應該更新。修改後看 diff,找出與預測不同的地方。
建置,在 iPhone 上完成任務並檢查設定切換。用自己的話解釋資料如何流到畫面;若說不清楚,回到相關概念再練習。
02 / 需要理解的觀念
let/var 與型別:哪些值固定、哪些值會改變?
條件與集合:如何篩選、排序或處理一份清單?
Optional:資料不存在時,程式如何處理?
函式、struct 與 closure:資料長什麼樣子?操作如何傳入、產生結果?
View 與 body:一個畫面由哪些小 View 組成?
容器與 modifier:排列、樣式和互動套用在哪一層?
State 與 Binding:誰擁有狀態?子 View 如何讀取或修改?
導航與模型更新:按下按鈕後,資料或目的畫面如何改變?
學習順序由專題需要決定。先用官方教學理解概念,再回到自己的程式;閱讀 API 文件時,同時確認專案使用的 Swift、SDK 與最低 OS 版本。
03 / 功能修改與設定
例如在作業清單加入「只顯示未完成」設定。先定義預設值、切換後的結果,以及關閉 App 再打開是否需要保留。
設定關閉時顯示哪些資料?開啟時排除哪些項目?沒有符合項目時,畫面顯示什麼?
找出控制項讀寫的位置、值由誰管理、在哪裡套用篩選,以及是否透過儲存層保存。
切換開/關、換到其他畫面再返回;若規格要求保存,再關閉與重新打開 App。確認功能與設定符合驗收條件。
04 / View 結構與 App 架構
App 從哪裡啟動?第一個畫面是什麼?如何進到功能與設定畫面?
畫面有哪些容器、清單、控制項與可重用元件?各 View 接收哪些資料與操作?
誰擁有設定值與清單資料?哪些 View 共用它們?資料改變後,哪裡應該更新?
需要計算、網路或保存資料時,程式交給哪個部分處理?不需要的層次可以省略。
05 / 分支與版本實作
先確認目前分支與工作狀態,保留本次原型的相關修改。請 Agent 建立功能分支,例如 feature/feedback-settings,並回報目前分支。
一次完成一個可驗證改動,閱讀 diff,只暫存相關檔案,完成建置與操作後 commit。
在已提交且工作狀態清楚時,切回主分支觀察舊版,再回功能分支觀察新版。切換後重新建置,避免把 iPhone 上的舊 App 誤認為目前程式版本。
git status
git branch
git switch -c feature/feedback-settings
# 完成一項修改後
git diff
git add path/to/changed-file
git diff --staged
git commit -m "Add setting for feedback improvement"
# 確認工作狀態後,練習切換
git switch main
git switch feature/feedback-settings將檔案路徑與主分支名稱換成專案實際值。也可使用第五週介紹的 Sublime Merge,觀察同一份 repository 的分支、commit graph 與 diff。
回顧 Git 指令與 Sublime Merge 操作 →06 / 官方學習與延伸資源
初學者的起點:配合 Xcode 練習 Swift 與 App 開發。先選與本週功能相關的單元,完成一個小練習。
跟著範例理解 View 組合、資料與互動。把學到的概念對照回自己的畫面。
語言觀念與語法參考。從 A Swift Tour 開始,再按需要查型別、Optional、函式與結構。
Swift 官方入門與學習路線,包括語言導覽、Swift Package 與 App 開發入口。
查詢特定 View、modifier 與 API 的用途及版本支援;確認 Agent 提出的 API 是否適用於你的專案。
07 / 本週交付