1. 無論是科技書還是教材,率先圍繞企業(yè)級實戰(zhàn)案例的Swift開發(fā)讀物。
2. 本書相關(guān)代碼及架構(gòu),由傳智播客高級講師完成,且長期授課實踐。
3. 配套PPT及學(xué)習(xí)視頻。
黑馬程序員,傳智播客旗下高端IT教育品牌,成立于2006年,它是由中國Java培訓(xùn)**人張孝祥老師發(fā)起,聯(lián)合全球*大的中文IT社區(qū)CSDN、中關(guān)村軟件園共同創(chuàng)辦的一家專業(yè)教育機構(gòu)。辦學(xué)至今,我們一直堅守著“為千萬人少走彎路而著書,為中華軟件之崛起而講課”的辦學(xué)理念,堅持培養(yǎng)優(yōu)秀軟件應(yīng)用工程師的宏偉目標,在累計培養(yǎng)的十萬余名學(xué)員中,其中90%的學(xué)員均已在北、上、廣等一線城市高薪就業(yè),特別是“黑馬程序員”的平均就業(yè)薪資已達到8K以上。為了迎合軟件市場的需求,我們陸續(xù)開設(shè)了Java、網(wǎng)頁平面、PHP、.Net、iOS、C/C++、Android等9個專業(yè)方向的課程,并且未來將逐漸開設(shè)其他專業(yè)方向的課程。隨著傳智播客的日益壯大,除了北京總部,我們在上海、廣州、武漢、成都、深圳等地也創(chuàng)立了直營分支機構(gòu),傳智播客儼然已成為了國內(nèi)*具專業(yè)口碑的IT教育機構(gòu)。
目錄
第1章 項目簡介——“開門見山” 1
1.1 項目介紹 2
1.1.1 項目背景介紹 2
1.1.2 項目注冊 2
1.1.3 接口文檔的獲取和查看 5
1.1.4 項目功能介紹 8
1.2 Swift語言介紹 12
1.3 搭建開發(fā)環(huán)境 12
1.3.1 Xcode概述 12
1.3.2 Xcode工具的下載安裝 13
1.4 項目目標 15
1.5 本章小結(jié) 15
第2章 微博開發(fā)準備——“工欲善其事,必先利其器” 16
2.1 創(chuàng)建微博工程 17
2.1.1 新建項目 17
2.1.2 默認項目架構(gòu) 19
2.1.3 了解程序啟動的原理 20
2.2 設(shè)置項目啟動信息 21
2.2.1 設(shè)置應(yīng)用名稱 21
2.2.2 設(shè)置應(yīng)用圖標 21
2.2.3 設(shè)置啟動圖片 23
2.3 項目整體架構(gòu) 26
2.3.1 了解什么是視圖(UIView) 27
2.3.2 了解視圖控制器(UIViewController) 28
2.3.3 導(dǎo)航控制器的使用場景 28
2.3.4 標簽控制器的使用場景 29
2.3.5 確定項目整體架構(gòu) 29
2.3.6 MVC與MVVM模式 30
2.4 本章小結(jié) 32
第3章 微博項目搭建——“萬丈高樓平地起” 33
3.1 設(shè)置項目目錄結(jié)構(gòu) 34
3.1.1 設(shè)置目錄結(jié)構(gòu) 34
3.1.2 創(chuàng)建各個控制器模板文件 36
3.1.3 顯示控制器的界面 38
3.2 添加子控制器 39
3.2.1 標簽控制器的組成 39
3.2.2 導(dǎo)航控制器的組成 41
3.2.3 設(shè)置標簽和標題 42
3.3 添加撰寫按鈕 44
3.3.1 了解什么是按鈕控件(UIButton) 44
3.3.2 自定義Tab Bar 45
3.3.3 按鈕監(jiān)聽方法 48
3.4 本章小結(jié) 49
第4章 訪客視圖 50
4.1 分析訪客視圖與現(xiàn)有架構(gòu)的關(guān)系 51
4.2 創(chuàng)建表格視圖控制器基類 52
4.2.1 了解視圖的加載機制 52
4.2.2 添加表視圖控制器基類 53
4.3 分析訪客視圖界面 54
4.3.1 標簽控件(UILabel) 54
4.3.2 圖片控件(UIImageView) 55
4.3.3 分析訪客視圖界面元素 56
4.4 開發(fā)訪客視圖界面 58
4.4.1 創(chuàng)建訪客視圖 58
4.4.2 添加圖片控件 59
4.4.3 了解自動布局(Auto Layout) 60
4.4.4 使用自動布局(Auto Layout) 61
4.4.5 使用自動布局設(shè)置圖片的位置 63
4.4.6 添加其他控件 64
4.4.7 VFL語言 67
4.4.8 添加遮罩視圖,并使用VFL布局位置 69
4.4.9 設(shè)置未登錄信息 70
4.5 首頁動畫 74
4.5.1 了解iOS中的基本動畫 74
4.5.2 為首頁轉(zhuǎn)輪圖片設(shè)置動畫 75
4.6 本章小結(jié) 75
第5章 第三方框架介紹 76
5.1 CocoaPods工具 77
5.1.1 CocoaPods工具簡介 77
5.1.2 安裝CocoaPods工具 78
5.2 AFNetworking框架 78
5.3 SnapKit框架 79
5.4 SDWebImage框架 84
5.4.1 SDWebImage框架的安裝 84
5.4.2 SDWebImage框架的簡單使用 86
5.5 SVProgressHUD框架 87
5.5.1 SVProgressHUD框架介紹 87
5.5.2 使用SVProgressHUD框架 88
5.6 本章小結(jié) 88
第6章 封裝網(wǎng)絡(luò)工具類 89
6.1 網(wǎng)絡(luò)編程基礎(chǔ)知識 90
6.1.1 網(wǎng)絡(luò)編程簡單工作原理 90
6.1.2 URL介紹 90
6.1.3 HTTP協(xié)議 92
6.1.4 GET和POST方法 92
6.2 封裝網(wǎng)絡(luò)工具類 93
6.2.1 網(wǎng)絡(luò)封裝原理 93
6.2.2 使用CocoaPods工具導(dǎo)入AFNetworking框架 94
6.2.3 了解什么是單例模式 95
6.2.4 創(chuàng)建網(wǎng)絡(luò)工具類 96
6.3 本章小結(jié) 101
第7章 登錄授權(quán) 102
7.1 OAuth機制 103
7.1.1 OAuth機制介紹 103
7.1.2 OAuth機制的使用流程 103
7.1.3 新浪微博的Oauth 2.0授權(quán)機制 104
7.2 獲取訪問令牌 105
7.2.1 分析如何獲取訪問令牌 105
7.2.2 了解什么是Web視圖 106
7.2.3 使用Web視圖加載登錄授權(quán)頁面 108
7.2.4 利用JS注入填充用戶名和密碼 111
7.2.5 獲取授權(quán)碼(code) 115
7.2.6 獲取訪問令牌(access_token) 117
7.3 加載用戶信息 120
7.3.1 了解JSON文檔的結(jié)構(gòu) 120
7.3.2 解析JSON文檔 121
7.3.3 了解字典轉(zhuǎn)模型的機制 122
7.3.4 創(chuàng)建用戶賬號模型 123
7.3.5 處理令牌的過期日期 124
7.3.6 使用令牌加載用戶信息 125
7.4 歸檔用戶信息到本地 127
7.4.1 了解沙盒機制 127
7.4.2 沙盒的目錄結(jié)構(gòu) 128
7.4.3 沙盒目錄獲取方式 129
7.4.4 對象歸檔技術(shù) 130
7.4.5 歸檔和解檔當前用戶的信息 131
7.4.6 創(chuàng)建用戶視圖模型 132
7.5 本章小結(jié) 137
第8章 新特性和歡迎界面 138
8.1 為項目添加新特性界面 139
8.1.1 分析新特性界面 139
8.1.2 介紹集合視圖(UICollectioView) 139
8.1.3 創(chuàng)建新特性視圖控制器 144
8.1.4 設(shè)置數(shù)據(jù)源 145
8.1.5 設(shè)置集合視圖的布局 146
8.1.6 自定義集合視圖單元格(cell) 146
8.1.7 使用UIView實現(xiàn)動畫 148
8.1.8 “開始體驗”按鈕動畫 149
8.2 為項目添加歡迎界面 151
8.2.1 分析歡迎界面 151
8.2.2 歡迎界面布局 152
8.2.3 歡迎界面動畫 157
8.2.4 設(shè)置用戶頭像 159
8.3 切換界面 159
8.3.1 界面切換流程分析 159
8.3.2 介紹偏好設(shè)置(NSUserDefaults) 160
8.3.3 顯示程序啟動后的界面 161
8.3.4 歡迎界面跳轉(zhuǎn)到首頁界面 163
8.3.5 新特性界面跳轉(zhuǎn)到首頁界面 164
8.3.6 訪客視圖跳轉(zhuǎn)到歡迎界面 164
8.4 本章小結(jié) 165
第9章 微博首頁 166
9.1 微博數(shù)據(jù)模型 168
9.1.1 獲取微博數(shù)據(jù) 168
9.1.2 字典轉(zhuǎn)換成模型 170
9.1.3 表視圖(UITableView) 171
9.1.4 表視圖單元格(UITableViewCell) 174
9.1.5 表格顯示微博數(shù)據(jù) 176
9.1.6 嵌套用戶模型 179
9.1.7 微博視圖模型 181
9.2 文字微博布局 183
9.2.1 分析無圖微博的布局 183
9.2.2 自定義單元格 184
9.2.3 頂部視圖布局 187
9.2.4 內(nèi)容標簽布局 192
9.2.5 底部視圖布局 194
9.2.6 單元格細節(jié)調(diào)整 199
9.2.7 全局修改函數(shù)的名字 200
9.3 配圖微博布局 202
9.3.1 微博中圖片的顯示方式 202
9.3.2 準備配圖需要的數(shù)據(jù) 202
9.3.3 添加配圖視圖 208
9.3.4 修改配圖視圖寬高 209
9.3.5 計算配圖視圖的大小 210
9.3.6 計算微博單元格的行高 213
9.3.7 了解圖像視圖的填充模式 214
9.3.8 給配圖單元格設(shè)置圖片 215
9.3.9 給圖片添加GIF標記 217
9.4 本章小結(jié) 218
第10章 微博轉(zhuǎn)發(fā) 219
10.1 顯示轉(zhuǎn)發(fā)的微博 220
10.1.1 轉(zhuǎn)發(fā)微博分析 220
10.1.2 準備數(shù)據(jù)模型 221
10.1.3 搭建轉(zhuǎn)發(fā)微博單元格 222
10.1.4 設(shè)置被轉(zhuǎn)發(fā)微博的數(shù)據(jù) 226
10.1.5 處理原創(chuàng)微博與轉(zhuǎn)發(fā)微博的互融 227
10.1.6 了解GCD技術(shù) 229
10.1.7 調(diào)整單張圖片的顯示 230
10.2 刷新微博 233
10.2.1 下拉刷新模式 233
10.2.2 下拉刷新控件 235
10.2.3 分析微博刷新的過程 237
10.2.4 使用Xib自定義下拉刷新控件 240
10.2.5 KVO機制 245
10.2.6 使用KVO監(jiān)聽刷新控件的位置變化 246
10.2.7 提示箭頭旋轉(zhuǎn)動畫 248
10.2.8 播放和停止加載動畫 249
10.2.9 自定義上拉刷新控件 251
10.2.10 刷新用到的網(wǎng)絡(luò)數(shù)據(jù) 252
10.2.11 下拉刷新提示數(shù)量標簽 255
10.3 表情鍵盤 256
10.3.1 多行文本控件(UITextView) 256
10.3.2 創(chuàng)建表情鍵盤視圖 258
10.3.3 表情鍵盤界面布局 259
10.3.4 項目添加文件夾的3種方式 265
10.3.5 加載數(shù)據(jù)模型 266
10.3.6 顯示表情符號 268
10.3.7 顯示emoji表情 270
10.3.8 提升數(shù)據(jù)模型 271
10.3.9 選中表情事件 275
10.3.10 實現(xiàn)圖文混排 276
10.3.11 處理發(fā)布微博的文本 278
10.3.12 簡化控制器的代碼 281
10.4 本章小結(jié) 284
第11章 發(fā)布微博 285
11.1 發(fā)布文本和圖片微博 286
11.1.1 發(fā)布微博過程分析 286
11.1.2 工具條控件(UIToolbar) 287
11.1.3 搭建發(fā)布微博的界面 289
11.1.4 彈出鍵盤和關(guān)閉鍵盤介紹 296
11.1.5 實現(xiàn)系統(tǒng)鍵盤的彈出和關(guān)閉 297
11.1.6 在項目中整合表情鍵盤 298
11.1.7 發(fā)布文字微博 300
11.1.8 發(fā)布帶圖片的微博 303
11.2 給微博選擇照片 305
11.2.1 用戶選擇照片發(fā)布的流程 305
11.2.2 選擇照片功能的實現(xiàn)流程 307
11.2.3 圖片選擇器(UIImagePickerController) 308
11.2.4 開發(fā)獨立的照片選擇項目 310
11.2.5 將照片選擇功能整合到微博項目 323
11.3 本章小結(jié) 327
第12章 給配圖微博添加查看器 328
12.1 照片查看器功能分析 329
12.1.1 了解照片查看器的功能 329
12.1.2 分析圖片數(shù)據(jù)的傳遞方式 330
12.1.3 屏幕滾動控件(UIScrollView) 331
12.1.4 分析圖片查看器的視圖結(jié)構(gòu) 334
12.2 照片查看器功能的實現(xiàn) 335
12.2.1 實現(xiàn)數(shù)據(jù)傳遞 335
12.2.2 準備圖片查看控制器 337
12.2.3 使用貝塞爾路徑(UIBezierPath)繪圖 338
12.2.4 手勢識別(UIGestureRecognizer) 338
12.2.5 搭建圖片查看界面 341
12.2.6 實現(xiàn)圖片查看的功能 342
12.3 為照片查看器添加轉(zhuǎn)場動畫 353
12.3.1 什么是轉(zhuǎn)場動畫 354
12.3.2 了解照片查看器的轉(zhuǎn)場功能 355
12.3.3 分析轉(zhuǎn)場過程中視圖的層次結(jié)構(gòu) 356
12.3.4 分析圖像的起始位置和目標位置 357
12.3.5 初步完成自定義轉(zhuǎn)場動畫 358
12.3.6 通過代理展現(xiàn)轉(zhuǎn)場動畫 363
12.3.7 通過代理解除轉(zhuǎn)場動畫 371
12.4 本章小結(jié) 376
第13章 數(shù)據(jù)緩存 377
13.1 SQLite數(shù)據(jù)庫 378
13.1.1 SQLite數(shù)據(jù)庫簡介 378
13.1.2 SQL語句介紹 379
13.1.3 使用SQLite3存儲對象 380
13.2 FMDB框架的使用 380
13.2.1 獲取FMDB框架 380
13.2.2 FMDB框架核心類 381
13.2.3 使用FMDB框架操作數(shù)據(jù)庫 381
13.3 使用FMDB緩存微博數(shù)據(jù) 393
13.3.1 分析微博緩存的原理 393
13.3.2 實現(xiàn)微博緩存 394
13.4 清理數(shù)據(jù)存儲 402
13.5 本章小結(jié) 404
第14章 微博優(yōu)化 405
14.1 和日期相關(guān)的類 406
14.1.1 NSDate類(日期和時間) 406
14.1.2 NSDateFormatter類(日期格式器) 406
14.1.3 NSCalendar類 407
14.2 微博日期處理 408
14.2.1 了解微博的日期的顯示方式 408
14.2.2 處理微博日期格式 408
14.3 使用正則表達式處理微博來源 412
14.3.1 了解正則表達式處理字符串 412
14.3.2 使用正則表達式過濾接口的來源信息 413
14.4 使用表情文字 415
14.4.1 準備工作 416
14.4.2 測試普通字符串轉(zhuǎn)換成屬性字符串 417
14.4.3 將功能代碼移到EmoticonManager類里面 419
14.4.4 微博項目整合表情字符串功能 420
14.5 使用FFLabel框架響應(yīng)超鏈接 421
14.5.1 導(dǎo)入FFLabel框架 422
14.5.2 替換系統(tǒng)的UILabel控件 423
14.5.3 監(jiān)聽鏈接的單擊 424
14.5.4 響應(yīng)超文本的鏈接 425
14.6 開發(fā)最近使用表情的功能 428
14.7 本章小結(jié) 430
第15章 項目調(diào)試和發(fā)布 432
15.1 真機測試 433
15.2 發(fā)布App到App Store流程 437
15.2.1 申請開發(fā)者賬號 437
15.2.2 登錄開發(fā)者中心 437
15.2.3 生成發(fā)布證書 438
15.2.4 在Xcode中打包工程上傳 444
15.2.5 在App Store上開辟空間 446
15.3 本章小結(jié) 447