使用Xcode 12 & iOS 14 & Swift 5開發
完全掌握Swift語法 逐步實作出精美App
|掌握Swift基本語法|了解可選型別|建立UI元件|學習自動佈局|認識畫面控制器|使用UITableView建立表格式畫面|靈活運用UICollectionView建立複雜畫面|客製化UIView|認識Closure特性|學習錯誤處理|認識JSON|網路存取|第三方套件管理工具|上架App|
作者以多年的iOS開發實務經驗,精心設計了32個章節,讓你從零開始來完整學習如何開發iOS App。本書透過豐富的圖文說明搭配範例引導,循序漸進、按部就班地使你完全掌握Swift語法,打好Swift程式語言的基礎,並引領讀者使用畫面元件、自動佈局等常見元件,接著學習如何客製化畫面元件,完整了解網路存取與資料儲存等技術,讀者學習完本書,將可完成心目中的精美App,以及上架至App Store。
【本書精彩內容】
◎透過學習Swift基礎語法,進入iOS開發的世界。
◎認識常用的資料型態與集合型別。
◎學習如何使用運算子與控制流程。
◎了解Swift獨特的可選型別。
◎理解物件導向程式設計的特性、類別與物件。
◎學習建立iOS常見的畫面元件。
◎學會自動佈局,打造美麗且符合不同裝置的App。
◎認識畫面控制器以及它的生命週期。
◎了解如何透過擴展與協議增強功能。
◎徹底了解如何使用UITableView建立表格式的畫面。
◎靈活運用UICollectionView建置更複雜的畫面。
◎學習iOS特有的選擇器與日期選擇器。
◎認識匿名函式Closure的特性。
◎了解記憶體管控機制,自動參考計數。
◎透過UIAlertController提醒使用者重要資訊。
◎學習使用各種不同的畫面控制器,使你的App更加有質感。
◎使用客製化UIView來建置屬於你自己的畫面元件。
◎利用手勢辨識來豐富你的App。
◎學會如何捕捉錯誤,降低App的當機頻率。
◎認識JSON,並且了解如何於Swift中更加簡單的使用。
◎學習如何建置網路請求。
◎了解iOS的資料儲存機制。
◎學習如何使用Timer與多執行緒,建立較為複雜的程式邏輯。
◎認識第三方套件管理工具,讓廣大的開源社群幫助你開發App。
◎學會上架流程,讓你的App可以於App Store中進行下載。
作者簡介:
游鴻斌
iOS工程師,任職於資訊公司,曾經手過許多iOS App開發,較大型的案子有長榮航空與台灣高鐵。熱愛分享,幫助過幾位沒有程式設計經驗的朋友學習開發iOS,並且順利上架App,轉職成工程師,希望能夠幫助更多人。
目錄
|CHAPTER 01| 進入iOS App開發之門
1.1 iOS基本介紹
1.2 Swift簡介
1.3 開發App前的準備
1.4 Hello, World!
1.5 程式碼基本介紹
1.6 程式碼自動補完功能
1.7 註解程式碼
1.8 本章小結與課後練習
|CHAPTER 02| 常數、變數與資料型態
2.1 常數與變數
2.2 常數與變數的命名
2.3 小駝峰式命名法
2.4 分號
2.5 資料型態
2.6 整數
2.7 浮點數
2.8 字串
2.9 資料型態的轉換
2.10 型別別名
2.11 元組
2.12 亂數
2.13 實體與靜態
|CHAPTER 03| 集合型別
3.1 陣列
3.2 陣列的操作
3.3 字典
3.4 字典的操作
3.5 集合
3.6 集合的操作
|CHAPTER 04| 基本運算子與控制流程
4.1 基本運算子
4.2 布林值與關係運算子
4.3 條件判斷式
4.4 For迴圈
4.5 While迴圈
4.6 列舉
|CHAPTER 05| 函式
5.1 函式的定義
5.2 函式的種類
5.3 函式的參數
|CHAPTER 06| 可選型別
6.1 可選型別簡介
6.2 可選綁定
6.3 提前退出
6.4 致命的錯誤
6.5 使用兩個問號解包
6.6 隱式解包可選型別
|CHAPTER 07| 類別與結構
7.1 類別與結構
7.2 類別
7.3 結構
7.4 類別與繼承
7.5 值類型與參考類型
|CHAPTER 08| 建立iOS App專案
8.1 建立App專案
8.2 執行App專案
8.3 顯示Hello World到畫面上
8.4 畫面建構器
8.5 故事板
|CHAPTER 09| UIViewController
9.1 UIViewController
9.2 UIViewController生命週期
9.3 IBOutlet
9.4 透過Rename修改變數名稱
|CHAPTER 10| 認識UI元件
10.1 UIView
10.2 CGRect
10.3 UILabel
10.4 UIButton①
10.5 IBAction
10.6 UIButton②
10.7 UIControl
10.8 UISwitch
10.9 UITextField
10.10 UITextView
10.11 UISegmentedControl
10.12 UISlider
10.13 UIStepper
10.14 UIImageView
10.15 UIColor
|CHAPTER 11| 自動佈局
11.1 裝置大小
11.2 縮放係數
11.3 自動佈局
11.4 條件約束小結
11.5 約束衝突
11.6 優先度
11.7 自適應大小的UI元件
11.8 透過程式碼來設置條件約束
11.9 NSLayoutAnchor
11.10 安全區域
|CHAPTER 12| 容器視圖
12.1 堆疊視圖
12.2 滑動視圖
12.3 縮放UIScrollView內容
|CHAPTER 13| 切換頁面
13.1 切換頁面
13.2 UIStoryboardSegue
13.3 透過Present來切換頁面
13.4 多個Storyboard
13.5 Unwind Segue
|CHAPTER 14| 選擇器
14.1 選擇器
14.2 UIPickerViewDataSource
14.3 UIPickerViewDelegate
14.4 透過陣列設置DataSource
14.5 得知使用者的選擇
14.6 建置有多個Component的選擇器
|CHAPTER 15| 擴展與協議
15.1 擴展
15.2 擴展語法
15.3 透過擴展增加計算屬性
15.4 透過擴展增加內嵌類型
15.5 協議
15.6 屬性要求
15.7 函式要求
15.8 DataSource
15.9 Delegate
15.10 自定義DataSource
15.11 自定義Delegate
|CHAPTER 16 UITableView
16.1 UITableView 簡介
16.2 IndexPath
16.3 重用機制
16.4 客製化UITableViewCell
16.5 使用XIB來製作UITableViewCell
16.6 UITableViewDelegate
16.7 重用機制會產生的問題
16.8 ReloadData
16.9 UITableViewController
16.10 Static Cell
|CHAPTER 17| UICollectionView
17.1 UICollectionView簡介
17.2 客製化UICollectionViewCell
17.3 UICollectionViewFlowLayout
17.4 UICollectionViewDelegateFlowLayout
17.5 Footer與Header
|CHAPTER 18| 日期與日期選擇器
18.1 Date
18.2 DateFormatter
18.3 Locale
18.4 Calendar
18.5 UIDatePicker
18.6 UIDatePicker樣式
|CHAPTER 19| 閉包
19.1 Closure基本介紹
19.2 Closure的語法
19.3 把Closure當參數傳遞
19.4 高階函式
19.5 實際應用
|CHAPTER 20| 自動參考計數
20.1 自動參考計數
20.2 類別實體間的強參考循環
20.3 解決強參考循環
20.4 無主參考
20.5 Closure與強參考循環
|CHAPTER 21| UIAlertController
21.1 提示框
21.2 UIAlertAction
21.3 增加輸入框到提示框之中
21.4 動作表
21.5 增加一個專門顯示訊息的函式
|CHAPTER 22| 容器視圖控制器
22.1 容器視圖控制器
22.2 UINavigationController
22.3 UITableView與UINavigationController
22.4 UIBarButtonItem
22.5 UITabbarController
22.6 UIPageViewController
22.7 Container View
|CHAPTER 23| 客製化UIView
23.1 客製化UIView
23.2 增加UI元件
23.3 使用XIB來設計客製化UIView
23.4 客製化UIControl
23.5 CALayer
23.6 IBInspectable與IBDesignable
23.7 DataSource與Delegate
|CHAPTER 24| 手勢辨識
24.1 手勢辨識
24.2 UITapGestureRecognizer
24.3 UILongPressGestureRecognizer
24.4 UIPanGestureRecognizer
24.5 UIPinchGestureRecognizer
24.6 UIRotationGestureRecognizer
|CHAPTER 25| 錯誤處理
25.1 錯誤處理
25.2 將錯誤轉換成可選值
25.3 忽略錯誤
25.4 LocalizedError
|CHAPTER 26| JSON
26.1 JSON
26.2 JSONSerialization
26.3 Codable
26.4 CodingKey
26.5 DecodingError
26.6 更多的範例
|CHAPTER 27| 網路
27.1 URLSession與URLRequest
27.2 HTTP Method
27.3 設置HTTP Method
27.4 超時與取消請求
27.5 HTTP Status Code
27.6 UIActivityIndicatorView
27.7 資料開放平臺
|CHAPTER 28| 通知中心
28.1 通知中心
28.2 發送通知
28.3 通知名稱
28.4 移除觀察者
28.5 發送參數給觀察者
|CHAPTER 29| 資料儲存
29.1 UserDefaults
29.2 透過Bundle讀取檔案
29.3 存取Document資料夾的檔案
29.4 CoreData
|CHAPTER 30| 計時器與多執行緒
30.1 Timer
30.2 GCD
|CHAPTER 31| 第三方套件管理工具
31.1 Cocoapods簡介與安裝
31.2 試用Cocoapods
31.3 Carthage簡介與安裝
31.4 使用Carthage
31.5 Swift Package Manager
31.6 常用的第三方套件
|CHAPTER 32| 上架App
32.1 iOS版本
32.2 設置獨一無二的Bundle Identifier
32.3 註冊Apple Developer Program
32.4 App Store Connect
32.5 於Xcode設置開發者帳號
32.6 設置屬於你的icon
32.7 透過Archive打包App
|CHAPTER 01| 進入iOS App開發之門
1.1 iOS基本介紹
1.2 Swift簡介
1.3 開發App前的準備
1.4 Hello, World!
1.5 程式碼基本介紹
1.6 程式碼自動補完功能
1.7 註解程式碼
1.8 本章小結與課後練習
|CHAPTER 02| 常數、變數與資料型態
2.1 常數與變數
2.2 常數與變數的命名
2.3 小駝峰式命名法
2.4 分號
2.5 資料型態
2.6 整數
2.7 浮點數
2.8 字串
2.9 資料型態的轉換
2.10 型別別名
2.11 元組
2.12 亂數
2.13 實體與靜態
|CHAPTER 03| 集合型別
3.1 陣列
3.2 陣列的操作
3.3 字典
3.4 字典的操作
3.5 集合
3.6 ...