[Day 7] SwiftUI 列表與導航

台 7 線 15k SwiftUI 列表與導航 在 iOS 中,列表(List)和導航(Navigation)是兩個非常重要的基礎元件。前者用於展示大量資料,後者則為畫面切換機制。今天我們將探討這兩個重要的主題,並透過實作一個簡單的列表應用來理解相關概念。 List 元件與 ForEach 的基本使用 SwiftUI 的 List 元件使用方式如下: struct ContentView: View { ![alt text](image.png) var body: some View { List { ForEach(items, id: \.self) { item in Text(item) } } } } 在上面的例子中,我們使用了 ForEach 來遍歷陣列中的元素。 id 是什麼? id 參數用於為 ForEach 中的每個項目提供唯一的標識符。SwiftUI 透過這個標識符來識別和追蹤 list 中的每個視圖。當使用 id: \.self 時,表示直接使用被遍歷集合中的元素本身作為其唯一標識符。這種方式適用於集合中的元素本身是簡單且唯一的類型,例如 Int、String。 使用 \.self 作為 id 的前提是,你的資料集合 items 中的元素類型必須遵守 Hashable 協議。Hashable 能確保每個元素都可以被計算出一個唯一的雜湊值,從而讓 SwiftUI 能區分它們。 ...

September 20, 2025 · 2 分鐘

[Day 6] SwiftUI 基礎元件與佈局

SwiftUI 基礎元件介紹 在昨天中,我們學習了 Swift 語言的基礎語法。今天,我們要開始探索 SwiftUI 的基本元件和佈局方式。SwiftUI 採用宣告式語法,讓我們能夠更直覺地描述介面該長什麼樣子,而不是一步步告訴程式要如何建立它。 基本元件介紹 Text:文字顯示 Text 是 SwiftUI 中最基本的文字顯示元件,可以加上各種修飾符來調整外觀: Text("Hello, SwiftUI!") .font(.title) // 設定字型大小 .foregroundColor(.blue) // 設定文字顏色 .bold() // 設定粗體 .padding() // 加上內距 而 padding 本身是透明的,所以這裡是看不出來的。因此我們可以改成這樣: Text("Hello, SwiftUI!") .font(.title) .foregroundColor(.blue) .bold() .background(.yellow) // 加上黃色背景 .padding() .background(.blue) // 加上藍色背景 我們替這個 Text 先加上黃色背景,然後再加上 .padding() 修飾符,最後再加上藍色背景,最後效果如上圖所示。 這裡可以帶出一個 SwiftUI 蠻重要的觀念,蠻值得一提的觀念: SwiftUI 修飾符的順序與「視圖組合」概念 上面 Text 的程式碼可以這樣分析: Text("Hello, SwiftUI!") 最先被 background(.yellow) 包裹,這是「文字本身範圍」的背景。接著 .padding() 為文字 + 黃背景增加內距。最後再套用 .background(.blue),這個藍色背景覆蓋在包含內距的整個區域上。 ...

September 19, 2025 · 3 分鐘

[Day 5] Swift 語言快速入門(二)

流程控制 今天要來講流程控制以及 class, sturct。這些是構成程式邏輯的基礎,理解它們,你就能讓 App 根據不同狀況做出反應。 Swift 提供多種流程控制語法,讓你根據條件或重複執行程式碼。 1. 條件判斷:if / else if / else let score = 85 if score >= 90 { print("太棒了,A級!") } else if score >= 60 { print("及格!繼續努力!") } else { print("不及格!別灰心!") } 你也可以用 && (AND) 和 || (OR) 來組合更複雜的條件: let hasHomework = true let isTired = false if hasHomework && !isTired { // 必須完成作業「而且」不能累 print("趕快寫作業!") } 2. switch 判斷 Swift 的 switch 必須窮盡所有可能性(exhaustive),你不能漏掉任何一種情況,否則編譯器會報錯。這能幫我們避免很多 bug。 default 就是用來處理除了 case 以外所有情況。 let animal = "dog" switch animal { case "cat": print("貓貓") case "dog": print("狗狗") default: print("其他動物") } 3. 迴圈 for-in Swift 的 for-in 迴圈可以用兩種範圍語法: ...

September 18, 2025 · 2 分鐘

[Day 4] Swift 語言快速入門(一)

Swift 語言基礎入門 本篇將帶大家快速認識 Swift 語言的基礎語法,適合完全沒有 iOS 或 Swift 經驗的初學者。內容包含:變數、常數、資料型別、型別推斷、型別安全與基本運算等。如果這些你都已經了解,可以略過這個部分。 實用工具 在學習新的語法時,我都喜歡自己實際操作驗證一次。Swift 可以使用 Apple 官方推出的 Playground 來執行 Swift 程式碼。本文將以 macOS 版本為例。 下載完畢打開 App 後,點擊左上方 File,選擇 New Book: 建立好新的 playground 後點擊進入,就可以在程式碼區域輸入你要執行的 code,按下右下角的 Run My Code,右側邊欄就會顯示執行結果。 變數與常數 在 Swift 中,使用 var 宣告變數(可變),使用 let 宣告常數(不可變)。 var age = 36 // 變數,可重新賦值 let name = "Aries" // 常數,不可重新賦值 一個重要的原則是,除非你確定這個值未來需要被改變,否則一律使用 let 宣告。如此一來,確保了某些值不會在程式的其他地方被意外修改,增加程式碼的安全性與可預測性。 常見資料型別 Swift 是強型別語言,常見型別有: String:文字字串 Int:整數 Double:浮點數 Bool:布林值(true/false) var city: String = "Taipei" var year: Int = 2025 var price: Double = 99.9 var isOpen: Bool = true 型別推斷與型別安全 Swift 會自動推斷型別,但仍然型別安全,不能將不同型別直接混用。 ...

September 18, 2025 · 2 分鐘

[Day 3] Azure DevOps 設定與 Xcode 專案初始化

Azure DevOps 設定 什麼是 Azure DevOps? Azure DevOps 是微軟提供的開發工具服務平台,整合了版本控制、工作項目追蹤、自動化建置等功能。對於 iOS 開發者來說,它提供了: Azure Repos:Git 版本控制系統 Azure Pipelines:自動化建置和部署工具 Azure Boards:專案管理和工作追蹤 Azure Test Plans:測試管理工具 Azure Artifacts:套件管理系統 Azure DevOps 免費方案 依據官方說明,個人開發者可以享有以下免費額度: 無限量的私人 Git 儲存庫 最多 5 位 Azure DevOps 使用者 每月 1,800 分鐘的 Pipeline 執行時間 2GB 的 Azure Artifacts 儲存空間 這些免費額度對於個人專案來說已經相當充足。 建立 Azure DevOps 帳號 前往 Azure DevOps 官網 點擊「開始使用 Azure」按鈕 使用 Microsoft 帳號登入(如果沒有就註冊)。首次啟用 Azure 帳號時,系統會要求您填寫基本資料,依照畫面指示完成即可。 最後系統會要求綁定信用卡,這主要是為了驗證身分,在免費額度內並不會產生費用。如後續說明,Azure DevOps 的免費額度對個人專案來說綽綽有餘。 建立組織(Organization 登入後,第一步是建立一個組織。 ...

September 16, 2025 · 2 分鐘