內容簡介
iOS App程式開發實務攻略:快速精通SwiftUI
內容簡介
使用Xcode 12 & iOS 14 & Swift 5.X開發
聰明運用SwiftUI和Combine框架開發iOS App
快速強化iOS App開發的實務應用能力
使用SwiftUI和Combine框架做出多樣化的動態介面
透過實作來學習製作20個不同類型的範例程式
[實作路徑和形狀][使用堆疊視圖建立複雜佈局][使用滾動視圖建立輪播式UI][使用各種UI元件][了解狀態及綁定][製作動畫及轉場效果][實作強制回應視圖及警告提示視窗][使用動態清單][運用導覽UI][建立表單][結合Combine及UIKit框架][運用內容選單與手勢][運用JSON、滑桿][資料篩選]
本書精心設計了21個章節,從基礎入門開始,逐步了解如何以宣告式語法建立UI,並且你將學會使用SwiftUI和Combine框架,來實作出20個不同類型的範例程式。
每章都至少有一個專案需要處理,經由實作的練習,你將可了解如何使用各種UI元件,如動畫、手勢、清單、滾動視圖等,來建立靈活互動式的UI,以及使用堆疊視圖建立複雜的佈局、使用Combine框架在不同視圖之間共享資料,這可幫助你快速進行iOS App開發。
本書是為了SwiftUI與Combine框架的初學者而撰寫,不論你是剛學習iOS App開發或是有經驗的iOS開發者,皆可幫助你有效學習SwiftUI,本書絕對是你強化iOS App開發實務的必讀首選。
【本書精彩內容】
♕SwiftUI的介紹
♕文字、圖片與標籤的處理
♕使用堆疊佈局使用者介面
♕使用各種類型的UI元件
♕實作路徑與形狀來學習繪製線條、圓弧、圓餅圖、環圈圖
♕使用滾動視圖來建立輪播式UI
♕了解狀態與綁定
♕學習重構程式碼
♕了解基礎動畫與轉場
♕使用動態清單、ForEach與識別
♕使用SwiftUI按鈕、標籤與漸層
♕使用導覽UI與自訂導覽列
♕實作強制回應視圖、浮動按鈕與警告提示視窗
♕使用選擇器、切換與步進器建立表單
♕使用Combine與Environment物件進行資料共享
♕使用滑動刪除、內容選單與動作表
♕使用Combine與視圖模型建立註冊表單
♕了解SwiftUI內建的手勢
♕使用SwiftUI手勢與GeometryReader建立展開式底部表
♕使用手勢與動畫建立如Tinder般的UI
♕建立如Apple Wallet的動畫與視圖轉場
♕使用JSON、滑桿與資料篩選
♕學習結合UIKit與SwiftUI
讀者推薦
「AppCoda推出的Swift書籍極易理解,讓學習iOS程式設計變得輕鬆,而範例程式非常實用,有助於自己開發其他App。」~Mark Mueller
「我試過多種學習資源,包括了史丹佛的課程,雖然我已經從其他資源學習自動佈局、委派、Segue等主題,但這是第一本能讓我真正理解這些內容的書籍。」~Nico van der Linden
「我報名學習了數個SwiftUI線上課程,不過我認為本書是最為清楚與完整的。」~Michele, CMC
「本書是一本非常優秀的著作,解說詳實與容易理解。Simon及其團隊所分享的內容,讓我們更加喜愛原生的Apple開發技術,其內容讀起來就是這麼過癮。」~ Pedro, RyanAir
「這是我至今所找到的最棒書籍。雖然才看到一半,不過整本書寫得很好,不僅告訴我們如何實作,還詳細說明了完整的工作原理。」~David Avraamides, Noisy Signal
「本書SwiftUI的觀念說明通暢且簡潔,採用的App範例也非常棒,可以知道如何將其觀念運用在真實的App中。」~Qiang Ma
「超愛這本書!清楚與說明詳實,與真實世界的開發能夠完全同步。」~Rest Rapp
「這本書寫得太好了,幾乎大部分SwiftUI的觀念,包括UIKit的整合都有詳細介紹。」~Gary S
內容簡介
使用Xcode 12 & iOS 14 & Swift 5.X開發
聰明運用SwiftUI和Combine框架開發iOS App
快速強化iOS App開發的實務應用能力
使用SwiftUI和Combine框架做出多樣化的動態介面
透過實作來學習製作20個不同類型的範例程式
[實作路徑和形狀][使用堆疊視圖建立複雜佈局][使用滾動視圖建立輪播式UI][使用各種UI元件][了解狀態及綁定][製作動畫及轉場效果][實作強制回應視圖及警告提示視窗][使用動態清單][運用導覽UI][建立表單][結合Combine及UIKit框架][運用內容選單與手勢][運用JSON、滑桿][資料篩選]
本書精心設計了21個章節,從基礎入門開始,逐步了解如何以宣告式語法建立UI,並且你將學會使用SwiftUI和Combine框架,來實作出20個不同類型的範例程式。
每章都至少有一個專案需要處理,經由實作的練習,你將可了解如何使用各種UI元件,如動畫、手勢、清單、滾動視圖等,來建立靈活互動式的UI,以及使用堆疊視圖建立複雜的佈局、使用Combine框架在不同視圖之間共享資料,這可幫助你快速進行iOS App開發。
本書是為了SwiftUI與Combine框架的初學者而撰寫,不論你是剛學習iOS App開發或是有經驗的iOS開發者,皆可幫助你有效學習SwiftUI,本書絕對是你強化iOS App開發實務的必讀首選。
【本書精彩內容】
♕SwiftUI的介紹
♕文字、圖片與標籤的處理
♕使用堆疊佈局使用者介面
♕使用各種類型的UI元件
♕實作路徑與形狀來學習繪製線條、圓弧、圓餅圖、環圈圖
♕使用滾動視圖來建立輪播式UI
♕了解狀態與綁定
♕學習重構程式碼
♕了解基礎動畫與轉場
♕使用動態清單、ForEach與識別
♕使用SwiftUI按鈕、標籤與漸層
♕使用導覽UI與自訂導覽列
♕實作強制回應視圖、浮動按鈕與警告提示視窗
♕使用選擇器、切換與步進器建立表單
♕使用Combine與Environment物件進行資料共享
♕使用滑動刪除、內容選單與動作表
♕使用Combine與視圖模型建立註冊表單
♕了解SwiftUI內建的手勢
♕使用SwiftUI手勢與GeometryReader建立展開式底部表
♕使用手勢與動畫建立如Tinder般的UI
♕建立如Apple Wallet的動畫與視圖轉場
♕使用JSON、滑桿與資料篩選
♕學習結合UIKit與SwiftUI
讀者推薦
「AppCoda推出的Swift書籍極易理解,讓學習iOS程式設計變得輕鬆,而範例程式非常實用,有助於自己開發其他App。」~Mark Mueller
「我試過多種學習資源,包括了史丹佛的課程,雖然我已經從其他資源學習自動佈局、委派、Segue等主題,但這是第一本能讓我真正理解這些內容的書籍。」~Nico van der Linden
「我報名學習了數個SwiftUI線上課程,不過我認為本書是最為清楚與完整的。」~Michele, CMC
「本書是一本非常優秀的著作,解說詳實與容易理解。Simon及其團隊所分享的內容,讓我們更加喜愛原生的Apple開發技術,其內容讀起來就是這麼過癮。」~ Pedro, RyanAir
「這是我至今所找到的最棒書籍。雖然才看到一半,不過整本書寫得很好,不僅告訴我們如何實作,還詳細說明了完整的工作原理。」~David Avraamides, Noisy Signal
「本書SwiftUI的觀念說明通暢且簡潔,採用的App範例也非常棒,可以知道如何將其觀念運用在真實的App中。」~Qiang Ma
「超愛這本書!清楚與說明詳實,與真實世界的開發能夠完全同步。」~Rest Rapp
「這本書寫得太好了,幾乎大部分SwiftUI的觀念,包括UIKit的整合都有詳細介紹。」~Gary S
作者簡介
作者簡介
Simon Ng
軟體工程師&AppCoda創辦人。畢業於香港中文大學電子工程系,曾任職於HSBC、FedEx等公司,專責軟體開發、系統設計。2012年創立AppCoda技術部落格,定期發表iOS程式教學文章,其部落格每月吸引20多萬名讀者點閱。現在致力於iOS程式教學、產品設計及開發,希望幫助更多人進入iOS的程式世界。
【英文網站】
www.appcoda.com
【中文網站】
www.appcoda.com.tw
【AppCoda開發者社群】
facebook.com/groups/appcodatw
Simon Ng
軟體工程師&AppCoda創辦人。畢業於香港中文大學電子工程系,曾任職於HSBC、FedEx等公司,專責軟體開發、系統設計。2012年創立AppCoda技術部落格,定期發表iOS程式教學文章,其部落格每月吸引20多萬名讀者點閱。現在致力於iOS程式教學、產品設計及開發,希望幫助更多人進入iOS的程式世界。
【英文網站】
www.appcoda.com
【中文網站】
www.appcoda.com.tw
【AppCoda開發者社群】
facebook.com/groups/appcodatw
內容目錄
目錄
|CHAPTER 01| SwiftUI的介紹
1.1 宣告式程式設計與指令式程式設計
1.2 不再需要介面建構器與自動佈局
1.3 Combine方法
1.4 學一次,到處適用
1.5 與UIKit/AppKit/WatchKit的介接
1.6 下一個專案改採SwiftUI吧
|CHAPTER 02| SwiftUI入門與文字的處理
2.1 建立新專案來使用SwiftUI
2.2 顯示簡單的文字
2.3 變更字型與顏色
2.4 使用自訂字型
2.5 多行文字的處理
2.6 設定間距與行距
2.7 旋轉文字
2.8 本章小結
|CHAPTER 03| 圖片與標籤的處理
3.1 使用SwiftUI建立新專案
3.2 認識SF Symbols
3.3 顯示系統圖片
3.4 使用自己的圖片
3.5 調整圖片大小
3.6 Aspect Fit與Aspect Fill
3.7 建立圓形圖片
3.8 調整不透明度
3.9 應用圖片重疊
3.10 應用重疊使圖片變暗
3.11 本章小結
|CHAPTER 01| 使用堆疊佈局使用者介面
4.1 認識VStack、HStack 與ZStack
4.2 啟用SwiftUI 建立新專案
4.3 使用VStack
4.4 使用HStack
4.5 整理程式碼
4.6 使用ZStack
4.7 作業①:佈局「Team」售價方案
4.8 SwiftUI中Optionals的處理
4.9 使用留白
4.10 作業②:建立新佈局
|CHAPTER 05| 了解滾動視圖與建立輪播式UI
5.1 建立卡片式UI
5.2 ScrollView的介紹
5.3 作業①:加入標題至目前的滾動視圖
5.4 使用水平ScrollView建立輪播式UI
5.5 隱藏滾動指示器
5.6 群組視圖內容
5.7 自動調整文字
5.8 作業②:重新排列視圖
|CHAPTER 06| 使用SwiftUI按鈕、標籤與漸層
6.1 啟用SwiftUI建立新專案
6.2 自訂按鈕的字型與背景
6.3 按鈕加上邊框
6.4 建立具有圖片與文字的按鈕
6.5 使用標籤
6.6 建立具有漸層背景與陰影的按鈕
6.7 建立全寬度按鈕
6.8 使用ButtonStyle設計按鈕
6.9 作業:旋轉圖示
6.10 本章小結
|CHAPTER 07| 了解狀態與綁定
7.1 啟用SwiftUI建立新專案
7.2 控制按鈕的狀態
7.3 作業①:建立計數器按鈕
7.4 使用綁定
7.5 作業②:使每個按鈕都有其計數器
7.6 本章小結
|CHAPTER 08| 實作路徑與形狀來繪製線條與圓餅圖
8.1 了解Path
8.2 使用Stroke繪製邊框
8.3 繪製曲線
8.4 Fill與Stroke
8.5 繪製圓弧與圓餅圖
8.6 了解Shape協定
8.7 使用內建形狀
8.8 使用Shape建立進度指示器
8.9 繪製環圈圖
8.10 本章小結
|CHAPTER 09| 基礎動畫與轉場
9.1 隱式動畫與顯式動畫
9.2 使用RotationEffect建立下載指示器
9.3 建立進度指示器
9.4 延遲動畫
9.5 將矩形變形為圓形
9.6 了解轉場
9.7 作業①:使用動畫與轉場建立精美按鈕
9.8 作業②:視圖轉場動畫
9.9 本章小結
|CHAPTER 10| 動態清單、ForEach與識別
10.1 建立簡單的清單
10.2 建立具有文字與圖片的清單視圖
10.3 重構程式碼
10.4 作業:建立多樣化佈局的清單視圖
|CHAPTER 11| 使用導覽UI與自訂導覽列
11.1 準備起始專案
11.2 實作導覽視圖
11.3 使用NavigationLink傳送資料至細節視圖
11.4 自訂導覽列
11.5 作業:建立導覽UI
11.6 建立細節視圖
11.7 移除揭示指示器
11.8 具有自訂返回按鈕的精緻UI
11.9 本章小結
|CHAPTER 12| 實作強制回應視圖、浮動按鈕與警告提示視窗
12.1 了解SwiftUI的工作表
12.2 準備起始專案
12.3 使用isPresented實作強制回應視圖
12.4 變更導覽視圖樣式
12.5 使用Optional綁定實作強制回應視圖
12.6 建立浮動按鈕來解除強制回應視圖
12.7 使用警告提示視窗
12.8 顯示全螢幕強制回應視圖
12.9 本章小結
|CHAPTER 13| 使用選擇器、切換與步進器建立表單
13.1 準備起始專案
13.2 建立表單UI
13.3 建立選擇器視圖
13.4 使用切換開關
13.5 使用步進器
13.6 顯示表單
13.7 作業:解除設定視圖
13.8 下一章的主題
|CHAPTER 14| 使用Combine與Environment物件進行資料共享
14.1 使用列舉重構程式碼
14.2 在UserDefaults儲存使用者偏好
14.3 使用@EnvironmentObject在視圖間共享資料
14.4 實作篩選選項
14.5 實作排序選項
14.6 下一章的主題
|CHAPTER 15| 使用Combine與視圖模型建立註冊表單
15.1 使用SwiftUI佈局表單
15.2 了解Combine
15.3 Combine與MVVM
15.4 本章小結
|CHAPTER 16| 使用滑動刪除、內容選單與動作表
16.1 準備起始專案
16.2 實作滑動刪除
16.3 建立內容選單
16.4 使用動作表
16.5 作業:加入打卡功能
|CHAPTER 17| 了解手勢
17.1 使用手勢修飾器
17.2 使用長按手勢
17.3 @Gest
|CHAPTER 01| SwiftUI的介紹
1.1 宣告式程式設計與指令式程式設計
1.2 不再需要介面建構器與自動佈局
1.3 Combine方法
1.4 學一次,到處適用
1.5 與UIKit/AppKit/WatchKit的介接
1.6 下一個專案改採SwiftUI吧
|CHAPTER 02| SwiftUI入門與文字的處理
2.1 建立新專案來使用SwiftUI
2.2 顯示簡單的文字
2.3 變更字型與顏色
2.4 使用自訂字型
2.5 多行文字的處理
2.6 設定間距與行距
2.7 旋轉文字
2.8 本章小結
|CHAPTER 03| 圖片與標籤的處理
3.1 使用SwiftUI建立新專案
3.2 認識SF Symbols
3.3 顯示系統圖片
3.4 使用自己的圖片
3.5 調整圖片大小
3.6 Aspect Fit與Aspect Fill
3.7 建立圓形圖片
3.8 調整不透明度
3.9 應用圖片重疊
3.10 應用重疊使圖片變暗
3.11 本章小結
|CHAPTER 01| 使用堆疊佈局使用者介面
4.1 認識VStack、HStack 與ZStack
4.2 啟用SwiftUI 建立新專案
4.3 使用VStack
4.4 使用HStack
4.5 整理程式碼
4.6 使用ZStack
4.7 作業①:佈局「Team」售價方案
4.8 SwiftUI中Optionals的處理
4.9 使用留白
4.10 作業②:建立新佈局
|CHAPTER 05| 了解滾動視圖與建立輪播式UI
5.1 建立卡片式UI
5.2 ScrollView的介紹
5.3 作業①:加入標題至目前的滾動視圖
5.4 使用水平ScrollView建立輪播式UI
5.5 隱藏滾動指示器
5.6 群組視圖內容
5.7 自動調整文字
5.8 作業②:重新排列視圖
|CHAPTER 06| 使用SwiftUI按鈕、標籤與漸層
6.1 啟用SwiftUI建立新專案
6.2 自訂按鈕的字型與背景
6.3 按鈕加上邊框
6.4 建立具有圖片與文字的按鈕
6.5 使用標籤
6.6 建立具有漸層背景與陰影的按鈕
6.7 建立全寬度按鈕
6.8 使用ButtonStyle設計按鈕
6.9 作業:旋轉圖示
6.10 本章小結
|CHAPTER 07| 了解狀態與綁定
7.1 啟用SwiftUI建立新專案
7.2 控制按鈕的狀態
7.3 作業①:建立計數器按鈕
7.4 使用綁定
7.5 作業②:使每個按鈕都有其計數器
7.6 本章小結
|CHAPTER 08| 實作路徑與形狀來繪製線條與圓餅圖
8.1 了解Path
8.2 使用Stroke繪製邊框
8.3 繪製曲線
8.4 Fill與Stroke
8.5 繪製圓弧與圓餅圖
8.6 了解Shape協定
8.7 使用內建形狀
8.8 使用Shape建立進度指示器
8.9 繪製環圈圖
8.10 本章小結
|CHAPTER 09| 基礎動畫與轉場
9.1 隱式動畫與顯式動畫
9.2 使用RotationEffect建立下載指示器
9.3 建立進度指示器
9.4 延遲動畫
9.5 將矩形變形為圓形
9.6 了解轉場
9.7 作業①:使用動畫與轉場建立精美按鈕
9.8 作業②:視圖轉場動畫
9.9 本章小結
|CHAPTER 10| 動態清單、ForEach與識別
10.1 建立簡單的清單
10.2 建立具有文字與圖片的清單視圖
10.3 重構程式碼
10.4 作業:建立多樣化佈局的清單視圖
|CHAPTER 11| 使用導覽UI與自訂導覽列
11.1 準備起始專案
11.2 實作導覽視圖
11.3 使用NavigationLink傳送資料至細節視圖
11.4 自訂導覽列
11.5 作業:建立導覽UI
11.6 建立細節視圖
11.7 移除揭示指示器
11.8 具有自訂返回按鈕的精緻UI
11.9 本章小結
|CHAPTER 12| 實作強制回應視圖、浮動按鈕與警告提示視窗
12.1 了解SwiftUI的工作表
12.2 準備起始專案
12.3 使用isPresented實作強制回應視圖
12.4 變更導覽視圖樣式
12.5 使用Optional綁定實作強制回應視圖
12.6 建立浮動按鈕來解除強制回應視圖
12.7 使用警告提示視窗
12.8 顯示全螢幕強制回應視圖
12.9 本章小結
|CHAPTER 13| 使用選擇器、切換與步進器建立表單
13.1 準備起始專案
13.2 建立表單UI
13.3 建立選擇器視圖
13.4 使用切換開關
13.5 使用步進器
13.6 顯示表單
13.7 作業:解除設定視圖
13.8 下一章的主題
|CHAPTER 14| 使用Combine與Environment物件進行資料共享
14.1 使用列舉重構程式碼
14.2 在UserDefaults儲存使用者偏好
14.3 使用@EnvironmentObject在視圖間共享資料
14.4 實作篩選選項
14.5 實作排序選項
14.6 下一章的主題
|CHAPTER 15| 使用Combine與視圖模型建立註冊表單
15.1 使用SwiftUI佈局表單
15.2 了解Combine
15.3 Combine與MVVM
15.4 本章小結
|CHAPTER 16| 使用滑動刪除、內容選單與動作表
16.1 準備起始專案
16.2 實作滑動刪除
16.3 建立內容選單
16.4 使用動作表
16.5 作業:加入打卡功能
|CHAPTER 17| 了解手勢
17.1 使用手勢修飾器
17.2 使用長按手勢
17.3 @Gest