





快速精通iOS 26程式設計: 從零開始活用Swift與SwiftUI開發技巧
Beginning iOS Programming with Swift and SwiftUI (iOS 26 and Xcode 26)
內容簡介
作者分享多年來的iOS開發經驗,並且集結廣受歡迎的iOS教學文章,以SwiftUI框架重新編寫,精心設計出30個章節。由基礎入門開始,逐步實作出具有精美UI及實用功能、支援雲端資料傳輸與深色模式的FoodPin App,而且FoodPin App完全支援新推出的iOS 26以及iPhone 17/17 Pro、iPad Pro。本書首先介紹Swift語言的觀念,再教導你使用Swift與SwiftUI建立你的第一個App,然後你會學到規劃App的原型,並且本書每一章中會針對iOS開發的各個面向提供提示、技巧以及許多需要親手操作的作業,最後你可以從無到有來開發出一個真正的App。本書也會教導你如何使用Xcode來佈局使用者介面,並熟悉iOS 26 SDK的基本API,跟著本書的內容學習,將可獲得真實開發App的體驗,且打好Swift程式語言的基礎,掌握程式開發的訣竅。本書專為Swift與iOS程式設計的初學者而撰寫,不論你是想學習新程式語言的程式設計師,或是想要將你的設計轉換為iOS App的設計師,這本書絕對是你的首選。
從零開始掌握SwiftUI框架與開發技巧
快速強化你的iOS App開發實戰能力
輕鬆成為專業程式設計師
♚使用Xcode 26 & iOS 26 & Swift 6.2開發
♚了解Xcode開發工具
♚使用清單視圖、堆疊視圖設計UI與深色模式
♚快速學習Swift App程式編寫、物件導向與SwiftUI程式設計
♚運用SwiftData與CloudKit存取資料
♚使用地圖與相機
♚實作動態視覺效果
♚開發使用者通知
♚App本地化
♚App測試與上架程序
【內容簡介】
作者分享多年來的iOS開發經驗,並且集結廣受歡迎的iOS教學文章,以SwiftUI框架重新編寫,精心設計出30個章節。由基礎入門開始,逐步實作出具有精美UI及實用功能、支援雲端資料傳輸與深色模式的FoodPin App,而且FoodPin App完全支援新推出的iOS 26以及iPhone 17/17 Pro、iPad Pro。
本書首先介紹Swift語言的觀念,再教導你使用Swift與SwiftUI建立你的第一個App,然後你會學到規劃App的原型,並且本書每一章中會針對iOS開發的各個面向提供提示、技巧以及許多需要親手操作的作業,最後你可以從無到有來開發出一個真正的App。本書也會教導你如何使用Xcode來佈局使用者介面,並熟悉iOS 26 SDK的基本API,跟著本書的內容學習,將可獲得真實開發App的體驗,且打好Swift程式語言的基礎,掌握程式開發的訣竅。
本書專為Swift與iOS程式設計的初學者而撰寫,不論你是想學習新程式語言的程式設計師,或是想要將你的設計轉換為iOS App的設計師,這本書絕對是你的首選。
【本書精采內容】
✪Swift基礎介紹
✪利用Playground快速學習Swift
✪使用Swift與SwiftUI從無到有打造App
✪使用AI程式助手組織程式碼
✪學習App原型設計與前置規劃
✪建立App與SwiftUI的常用元件
✪了解堆疊視圖建立自適應UI
✪設計適合所有螢幕尺寸的App,讓UI相容最新的iPhone 17/17 Pro與iPad Pro
✪設計導覽列大標題
✪自訂表格視圖儲存格來打造更優美的App
✪學習自訂清單視圖
✪運用導覽視圖
✪了解物件導向程式設計
✪建立動畫與視覺效果
✪使用相機與相片庫
✪運用地圖並學會最新的標註功能
✪使用搜尋列做關鍵字搜尋
✪建立導覽畫面來讓使用者迅速熟悉App
✪使用Searchable加入搜尋列
✪在App嵌入瀏覽器與網頁視圖
✪運用使用者通知來提升App黏著度
✪運用觸覺觸控及內容選單
✪使用SwiftData儲存資料至資料庫
✪整合運用CloudKit
✪App多國語系化
✪在實機上部署與測試App,並且學會WiFi部署功能
✪使用TestFlight安排Beta測試
✪在App Store上架你的App
產品目錄
1.1 開發App的所需工具
1.2 學習App的方式
1.3 發想App好點子
1.4 UIKit與SwiftUI
1.5 本章小結
|CHAPTER 02| 使用Playground來首次體驗Swift
2.1 Swift的歷史
2.2 開始學習Swift
2.3 在Playground中試驗Swift
2.4 常數與變數
2.5 型別推論
2.6 處理文字
2.7 流程控制
2.8 陣列與字典
2.9 可選型別
2.10 玩玩UI
2.11 本章小結
|CHAPTER 03| 使用Swift與SwiftUI建立你的第一個App
3.1 SwiftUI介紹
3.2 宣告式程式設計 vs 指令式程式設計
3.3 使用SwiftUI建立你的第一個App
3.4 熟悉Xcode工作區
3.5 首次執行你的App
3.6 處理文字
3.7 變更字型與顏色
3.8 運用按鈕
3.9 自訂按鈕樣式
3.10 加入按鈕動作
3.11 堆疊視圖介紹
3.12 了解方法
3.13 作業:按鈕與方法的應用
3.14 本章小結
|CHAPTER 04| 使用堆疊視圖設計UI
4.1 VStack、HStack與ZStack介紹
4.2 範例App
4.3 建立新專案
4.4 加入圖片至Xcode專案中
4.5 使用堆疊視圖佈局標題標籤
4.6 使用留白與間距
4.7 使用圖片
4.8 使用水平堆疊視圖來排列圖片
4.9 在圖片下方加入標籤
4.10 使用堆疊視圖佈局按鈕
4.11 設定預覽名稱並橫向預覽
4.12 使用AI程式助手組織程式碼
4.13 使用尺寸類別調整堆疊視圖
4.14 保存向量資料
4.15 作業:建立新UI
4.16 本章小結
|CHAPTER 05| 原型設計
5.1 在紙上繪出你的App點子
5.2 繪出App線框圖
5.3 使你的草圖 / 線框圖可互動
5.4 常用的原型設計工具
5.5 本章小結
|CHAPTER 06| List與ForEach
6.1 建立一個SimpleTable專案
6.2 建立一個簡單的清單
6.3 使用項目陣列來顯示清單
6.4 將縮圖加到清單視圖
6.5 變更清單視圖的樣式
6.6 顯示清單的另一種方式
6.7 作業:各個儲存格顯示不同的圖片
6.8 本章小結
|CHAPTER 07| 自訂清單視圖
7.1 建立Xcode專案
7.2 準備餐廳圖片
7.3 建立基本的清單視圖
7.4 顯示不同的餐廳圖片
7.5 重新設計列佈局
7.6 圖片圓角化
7.7 隱藏清單分隔符號
7.8 使用深色模式測試App
7.9 作業:修正問題並重新設計列佈局
7.10 本章小結
|CHAPTER 08| 顯示確認對話方塊及處理清單視圖選取
8.1 建立更優美的列佈局
8.2 查閱文件
8.3 使用狀態管理列的選取
8.4 偵測觸控並顯示確認對話方塊
8.5 了解綁定
8.6 顯示提示訊息
8.7 實作「標記為最愛」功能
8.8 預覽列佈局
8.9 作業:支援新功能與移除圖示
8.10 本章小結
|CHAPTER 09| 結構、專案組織與程式文件
9.1 物件導向程式設計的基礎理論
9.2 類別、物件及結構
9.3 結構
9.4 複習FoodPin專案
9.5 建立Restaurant結構
9.6 初始化器的說明
9.7 self關鍵字
9.8 預設初始化器
9.9 使用Restaurant物件的陣列
9.10 組織你的Xcode專案檔
9.11 使用註解來記錄與組織Swift程式碼
9.12 本章小結
9.13 進階參考資料
|CHAPTER 10| 清單刪除、滑動動作、內容選單與動態控制器
10.1 執行列的刪除
10.2 使用滑動動作
10.3 建立內容選單
10.4 SF Symbols介紹
10.5 運用動態控制器
10.6 本章小結
|CHAPTER 11| 運用導覽視圖
11.1 建立導覽視圖
11.2 新增餐廳細節視圖
11.3 從一個視圖導覽到另一個視圖
11.4 移除揭示指示器
11.5 本章小結
|CHAPTER 12| 改進細節視圖、自訂字型及導覽列
12.1 快速瀏覽起始專案
12.2 使用自訂字型
12.3 改進細節視圖
12.4 忽略安全區域
12.5 自訂導覽列
12.6 作業:修復錯誤
12.7 本章小結
|CHAPTER 13| 顏色、Swift擴展與動態型別
13.1 自訂顏色
13.2 Swift擴展
13.3 為深色模式調整顏色
13.4 動態型別
13.5 本章小結
|CHAPTER 14| 運用地圖
14.1 了解SwitUI的地圖視圖
14.2 建立自己的地圖視圖
14.3 使用地理編碼器來將地址轉換為座標
14.4 新增標記至地圖
14.5 嵌入MapView
14.6 顯示全螢幕地圖
14.7 本章小結
|CHAPTER 15| 動畫與模糊效果
15.1 加入圖片素材
15.2 使用列舉來顯示評分
15.3 實作評分視圖
15.4 應用視覺模糊效果
15.5 顯示評分畫面
15.6 應用動畫來關閉評分視圖
15.7 以滑入動畫為評分按鈕設定動畫
15.8 本章小結
|CHAPTER 16| 運用可觀察物件與Combine
16.1 目前設計的問題
16.2 使用可觀察物件
16.3 在細節視圖中顯示評分
16.4 本章小結
|CHAPTER 17| 運用表單與相機
17.1 了解SwiftUI的文字欄位
17.2 為使用者輸入建立通用表單欄位
17.3 實作餐廳表單
17.4 使用相片庫與相機
17.5 新增工具列按鈕
17.6 顯示新餐廳視圖
17.7 本章小結
|CHAPTER 18| 運用資料庫與SwiftData
18.1 何謂SwiftData
18.2 使用程式碼建立及管理資料模型
18.3 定義FoodPin專案的模型類別
18.4 使用@Query取得紀錄
18.5 從資料庫中刪除紀錄
18.6 修復餐廳細節視圖
18.7 修復評分視圖
18.8 設定模型容器
18.9 處理空清單視圖
18.10 將資料加到持久性儲存器
18.11 更新餐廳記錄
18.12 作業:修復錯誤與清單顯示問題
18.13 本章小結
|CHAPTER 19| 使用Searchable加入搜尋列
19.1 使用Searchable
19.2 將搜尋列加入餐廳清單視圖
19.3 搜尋列的位置
19.4 執行搜尋並顯示搜尋結果
19.5 搜尋建議
19.6 作業:加強搜尋功能
19.7 本章小結
|CHAPTER 20| 使用TabView建立導覽畫面
20.1 快速瀏覽導覽畫面
20.2 建立導引視圖
20.3 加入Next及Skip按鈕
20.4 顯示導引視圖
20.5 使用UserDefaults
20.6 本章小結
|CHAPTER 21| 使用標籤視圖及自訂標籤列
21.1 使用TabView建立標籤介面
21.2 調整標籤列項目的顏色
21.3 設定初始視圖
21.4 本章小結
|CHAPTER 22| 使用WebView顯示網頁內容
22.1 設計About視圖
22.2 準備連結
22.3 使用WebKit與WebView
22.4 更新主視圖
22.5 本章小結
|CHAPTER 23| 運用CloudKit
23.1 了解CloudKit框架
23.2 在App中啟用CloudKit
23.3 在CloudKit儀表板中管理紀錄
23.4 使用便利型API從公共資料庫取得資料
23.5 使用操作型API從公共資料庫取得資料
23.6 使用動態指示器來優化效能
23.7 下拉更新
23.8 使用CloudKit儲存資料
23.9 依建立日期來排序結果
23.10 作業:顯示餐廳的位置與類型
23.11 本章小結
|CHAPTER 24| App本地化以支援多種語言
24.1 導入字串目錄功能
24.2 加入支援的語言
24.3 使用字串目錄
24.4 測試本地化App
24.5 使用預覽來測試本地化
24.6 為你的文字加入註解
24.7 對通用文字使用String(localized:)初始化器
24.8 本章小結
|CHAPTER 25| 觸覺觸控
25.1 主畫面的快速動作
25.2 使用自訂URL協定處理快速動作
25.3 如果App沒有執行怎麼辦?
25.4 本章小結
|CHAPTER 26| 開發使用者通知
26.1 善用使用者通知來提升客戶參與度
26.2 使用者通知框架
26.3 請求使用者許可
26.4 建立與排程通知
26.5 加入圖片至通知中
26.6 與使用者通知互動
26.7 處理動作
26.8 本章小結
|CHAPTER 27| 在iOS實機上部署與測試App
27.1 程式碼簽章與描述檔
27.2 檢視你的Bundle ID
27.3 在Xcode 中自動簽署
27.4 透過USB部署App至你的裝置
27.5 透過Wi-Fi部署App
27.6 本章小結
|CHAPTER 28| 使用TestFlight進行Beta測試及CloudKit生產環境部署
28.1 在App Store Connect建立App紀錄
28.2 App資訊
28.3 定價與供應狀況
28.4 App隱私權政策
28.5 準備送審
28.6 更新建置版本字串
28.7 準備App圖示
28.8 建立啟動畫面
28.9 App的打包與驗證
28.10 上傳你的App到App Store Connect
28.11 管理內部測試
28.12 管理外部使用者的Beta測試
28.13 CloudKit生產環境部署
28.14 本章小結
|CHAPTER 29| App Store上架
29.1 做好準備與充分測試
29.2 上傳你的App至App Store
29.3 本章小結
|APPENDIX A| Swift基礎概論
A.1 變數、常數與型別推論
A.2 沒有分號做結尾
A.3 基本字串操作
A.4 陣列
A.5 字典
A.6 集合
A.7 類別
A.8 方法
A.9 控制流程
A.10 元組
A.11 可選型別
A.12 為何需要可選型別?
A.13 解開可選型別
A.14 可選綁定
A.15 可選鏈
A.16 可失敗初始化器
A.17 泛型
A.18 泛型型別約束
A.19 泛型型別
A.20 計算屬性
A.21 屬性觀察者
A.22 可失敗轉型
A.23 repeat-while
A.24 for-in where子句
A.25 Guard
A.26 錯誤處理
A.27 可行性檢查
作者介紹
軟體工程師與AppCoda創辦人。畢業於香港中文大學電子工程系,曾任職HSBC、FedEx等公司,專職於軟體開發、系統設計等。2012年創立了AppCoda技術部落格,定期發表iOS程式教學文章,其部落格每月吸引20多萬名的讀者點閱。現在致力於iOS程式教學、產品設計及開發,希望幫助更多人進入iOS的程式世界。
【英文網站】
www.appcoda.com
【中文網站】
www.appcoda.com.tw
【AppCoda開發者社群】
facebook.com/groups/appcodatw
規格
退貨說明
退貨須知:
- 依照消費者保護法的規定,您享有商品貨到次日起七天猶豫期(含例假日)的權益(請注意!猶豫期非試用期),辦理退貨之商品必須是全新狀態(不得有刮傷、破損、受潮)且需完整(包含全部商品、配件、原廠內外包裝、贈品及所有附隨文件或資料的完整性等)。
- 請您以送貨廠商使用之包裝紙箱將退貨商品包裝妥當,若原紙箱已遺失,請另使用其他紙箱包覆於商品原廠包裝之外,切勿直接於原廠包裝上黏貼紙張或書寫文字。若原廠包裝損毀將可能被認定為已逾越檢查商品之必要程度,本公司得依毀損程度扣除回復原狀必要費用(整新費)後退費;請您先確認商品正確、外觀可接受,再行拆封,以免影響您的權利;若為產品瑕疵,本公司接受退貨。
依「通訊交易解除權合理例外情事適用準則」,下列商品不適用七日猶豫期,除產品本身有瑕疵外,不接受退貨:
- 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮蔬果、乳製品、冷凍冷藏食材、蛋糕)
- 依消費者要求所為之客製化給付。(如:客製印章、鋼筆刻字)
- 報紙、期刊或雜誌。
- 經消費者拆封之影音商品或電腦軟體。
- 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書)
- 已拆封之個人衛生用品。(如:內衣褲、襪類、褲襪、刮鬍刀、除毛刀等貼身用品)
- 國際航空客運服務。
若您退貨時有下列情形,可能被認定已逾越檢查商品之必要程度而須負擔為回復原狀必要費用(整新費),或影響您的退貨權利,請您在拆封前決定是否要退貨:
- 以數位或電磁紀錄形式儲存或著作權相關之商品(包含但不限於CD、VCD、DVD、電腦軟體等) 包裝已拆封者(除運送用之包裝以外)。
- 耗材(包含但不限於墨水匣、碳粉匣、紙張、筆類墨水、清潔劑補充包等)之商品包裝已拆封者(除運送用之包裝以外)。
- 衣飾鞋類/寢具/織品(包含但不限於衣褲、鞋子、襪子、泳裝、床單、被套、填充玩具)或之商品缺件(含購買商品、附件、內外包裝、贈品等)或經剪標或下水或商品有不可回復之髒污或磨損痕跡。
- 食品、美容/保養用品、內衣褲等消耗性或個人衛生用品、商品銷售頁面上特別載明之商品已拆封者(除運送用之包裝外一切包裝、包括但不限於瓶蓋、封口、封膜等接觸商品內容之包裝部分)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
- 家電、3C、畫作、電子閱讀器等商品,除商品本身有瑕疵外,退回之商品已拆封(除運送用之包裝外一切包裝、包括但不限於封膜等接觸商品內容之包裝部分、移除封條、拆除吊牌、拆除貼膠或標籤等情形)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
- 退貨程序請參閱【客服專區→常見問題→誠品線上退貨退款】之說明。











