|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