Swift 教學

Apple Swift 程式設計教學

Swift 是 Apple 推出的現代程式語言,設計目標是讓開發者以更直覺、更安全、更有效率的方式,打造 iOS、macOS、watchOS、tvOS 等平台上的 App。它的語法簡潔清晰,能用更少的樣板程式就表達完整的邏輯,對於團隊協作與維護工作特別友善。

Swift 在語言層面強調安全性,例如透過型別系統與 Optional 機制,降低常見的空值錯誤與執行期崩潰風險;加上強大的錯誤處理與編譯器提示,很多問題在編譯階段就能提早發現。效能方面,Swift 採用編譯式設計,能在保有高階語言開發速度的同時,也兼顧接近原生的執行效率。更重要的是,它與 Apple 的開發生態整合得非常緊密,像是 SwiftUI、Combine、async/await 等現代化工具鏈,讓 UI、非同步流程與資料流管理可以更一致、更優雅地完成;再搭配 Xcode 的自動補全、即時預覽與除錯工具,能顯著提升開發效率與品質。總體來說,Swift 是目前 Apple 平台開發最主流也最具長期價值的選擇。

首先將 Xcode 下載到您的 Mac 系統,啟用 Xcode 時將出現新功能介紹,例如近期加入的 Coding Intelligence 工具。

您可以選擇建立新的 Xcode 專案、開啟現有的 Xcode 專案,或是從 Git Repository 複製專案。

 

第 1 單元:環境與第一個 macOS App

安裝與設定:Xcode、建立 SwiftUI macOS 專案

 

認識專案結構:App、Scene、View

第一個畫面:Text、Button、基本排版概念(VStack/HStack)

Hello Swift

Hello Swift 執行結果。

 

 

 

第 2 單元:變數、型別、字串與輸入輸出

let / var、基本型別(Int/Double/Bool/String)

字串插值、基本運算

用 SwiftUI 做簡易輸入輸出: TextField + Text 顯示結果

 

第 3 單元:條件判斷與簡單互動

if / else、比較運算子、邏輯運算

Toggle、Stepper、Slider 的互動

小練習:根據狀態切換文字/顏色/顯示隱藏

 

第 4 單元:迴圈、陣列、字典(資料容器)

Array、Dictionary 基礎

for-in、while(點到為止)

用 List 顯示陣列資料、加入/刪除項目


第 5 單元:函式、回傳值與程式拆分

func、參數、回傳值、預設參數

把 UI 的按鈕事件拆成函式

小練習:整理「重複程式」成可重用函式

 

第 6 單元:SwiftUI 佈局與元件化

Spacer、padding、frame、alignment

Image、SF Symbols、基本樣式(font、foregroundStyle)

自訂 View(元件化)、@State 基礎

 

第 7 單元:資料流與狀態管理(入門版)

@State、@Binding、@Observable 或 ObservableObject(選一種講義固定)

多頁面觀念:NavigationSplitView / TabView(擇一)

小練習:做「設定頁」控制主畫面顯示

 

第 8 單元:檔案與圖片基礎(為拍貼機鋪路)

讀寫檔案概念(沙盒、使用者資料夾)

macOS 選檔:OpenPanel(或 SwiftUI fileImporter)

載入圖片並顯示:NSImage / Image(講義統一一條路徑)

小練習:從資料夾選一張圖 → 顯示在畫面

 

第 9~16 單元:專案製作(macOS 拍貼機 App)

專案名稱:PhotoBoothSticker(拍貼機)

 

專案核心模組:

影像來源(相機/匯入) 2) 版型模板 3) 編輯工具(濾鏡/貼圖/文字) 4) 匯出列印

第 9 單元:專案架構與主畫面流程

拍貼機需求拆解(單機):流程圖(選來源 → 編輯 → 預覽 → 匯出)

建立專案資料模型:PhotoSession、FrameTemplate、StickerItem

主畫面 UI:左側步驟、右側工作區(SplitView 形式)

 

第 10 單元:影像來源(匯入照片)

單張匯入、多張匯入(fileImporter / OpenPanel)

建立「照片清單」與縮圖瀏覽(List/Grid)

選取照片 → 放入編輯區(Canvas)

 

第 11 單元:版型(Template)與排版基礎

版型概念:2 格 / 4 格 / 直條等(先用固定 JSON 或 enum)

用 GeometryReader 做格子排版

把匯入照片「填進格子」:裁切模式(Fill/Fit)概念

 

第 12 單元:圖片基本調整(縮放、旋轉、位置)

每張格子照片的調整:拖曳、縮放、旋轉(手勢)

狀態保存:每格一份 Transform(scale/rotation/offset)

做「重置」與「套用到全部」的基本概念(可簡化)

 

第 13 單元:濾鏡(Core Image 入門)

Core Image 基礎:CIFilter、CIContext

套用 2–3 種常用濾鏡(例如:單色、復古、亮度對比)

即時預覽(低強度):用 slider 調整強度

 

第 14 單元:文字與貼圖(Overlay 系統)

文字疊加:新增文字、字型大小、顏色、描邊/陰影(擇要)

貼圖疊加:內建貼圖素材(App Bundle 資源)

Overlay 物件模型:id、type、position、scale、rotation、zIndex

選取/刪除/置頂置底(最基本的即可)

 

第 15 單元:合成輸出(Render 成一張成品圖)

把版型 + 照片 + overlays 合成:輸出成 PNG/JPG

指定解析度:例如 1800×1200 或 A6 尺寸對應像素(講義固定一組)

存檔:SavePanel、輸出路徑與檔名規則

自動生成縮圖預覽(用於完成頁)

 

第 16 單元:列印與完成流程(單機收尾)

macOS 列印基礎(NSPrintOperation / 影像列印概念)

完整流程串接:開始新拍貼 → 編輯 → 匯出 → 列印

錯誤處理與使用者提示:無照片、無權限、輸出失敗

最終整理:專案檔案結構、主要類別/檔案的職責總覽

 

Swift-01-xcode-basics

Swift-02-variables-and-types

Swift-03-if-else

Swift-04-loops-and-arrays

Swift-05-functions-and-parameters

[ Swift-06-SwiftUI-basics ]

Swift-07-SwiftUI-data-flow

Swift-08-file-and-image-import

Swift-09-photo-booth-sticker-app

Swift-10-open-panel-file-picker

Swift-11-photo-template-layout

Swift-12-image-editing-gestures

Swift-13-core-image-filters

Swift-14-render-and-export-image

Swift-15-save-panel-export

Swift-16-macos-printing-nsprintoperation

[ Swift-17-Ollama ] 整合運用 - 製作專屬 AI 聊天機器人