出版信息
iOS開發實戰:從零基礎到App Store上架
作者:張益琿定價:69元
印次:1-1
ISBN:9787302441847
出版日期:2016.08.01
印刷日期:2016.07.01
內容簡介
《iOS開發實戰:從零基礎到App Store上架》一書由一線軟體工程師結合實際套用編寫而成,由淺入深系統地介紹了iOS套用從開發、調試到打包、上架的完整過程。本書主體由各個基礎模組組成,由實戰項目連線,在幫助讀者掌握原理的同時輕鬆上手開發出自己的套用。為方便讀者學習,作者還為本書精心錄製了“7天玩轉iOS UI開發視頻教程”,本視頻教程包括基礎篇、中級篇、高級篇、進階篇、擴展篇5部分,總計36堂課,播放時長超過13小時。此外,本書還提供iOS UI開發視頻教程原始碼以及本書實例原始碼。本書的特色是通俗易學,突出實戰,提供了大量開發案例,適合於剛入職或新手iOS開發人員和愛好者、大中專院校學生及iOS培訓班學員,尤其適合有一定語言基礎想要開發App產品的開發者。
作者簡介
張益琿
軟體開發工程師,擁有多年iOS開發經驗,曾開發iOS平台系列——遊戲瘋狂越獄1~2、套用物通配貨軟體、VIPExam考試庫、證券財經軟體等,現就職於中國唯品會。
目 錄
第1章 開發準備 1
1.1 iOS 9新特性簡述 2
1.1.1 新增壓力感測器編程接口 2
1.1.2 全新的搜尋功能API 2
1.1.3 更小、更快——全新的套用瘦身策略 3
1.1.4 使用更加安全的網路傳輸協定 4
1.2 熟悉iOS開發環境 4
1.2.1 安裝Xcode開發工具 4
1.2.2 了解Xcode開發工具主界面 6
1.2.3 Xcode開發工具的使用技巧及常用快捷鍵 7
1.3 創建第一個iOS項目 8
1.4 使用Git進行項目版本管理 13
1.4.1 Git與Github簡介 13
1.4.2 註冊GitHub會員 13
1.4.3 使用Xcode創建Git倉庫 14
1.4.4 用Xcode建立本地Git倉庫與GitHub代碼託管平台的聯繫 16
第2章 基礎UI控制項 19
2.1 iOS系統UI框架的介紹 20
2.1.1 MVC設計模式 20
2.1.2 代理設計模式 21
2.2 視圖控制器——UIViewController 21
2.2.1 UIViewController的生命周期 21
2.2.2 UIViewController的視圖層級結構 25
2.3 文本控制項——UILabel 25
2.3.1 使用UILabel在螢幕上創建一個標籤控制項 26
2.3.2 自定義標籤控制項的相關屬性 26
2.3.3 多行顯示的UILabel與換行模式 27
2.4 按鈕控制項——UIButton 29
2.4.1 創建一個按鈕來改變螢幕顏色 29
2.4.2 更加多彩的UIButton控制項 32
2.5 文本輸入框控制項——UITextField 33
2.5.1 在螢幕上創建一個輸入框 33
2.5.2 UITextField的常用屬性介紹 35
2.5.3 UITextField的代理方法 36
2.5.4 實現一個監聽輸入信息的用戶名輸入框 37
2.6 開關控制項——UISwitch 38
2.6.1 創建一個開關控制項 38
2.6.2 為UISiwtch控制項添加觸發方法 39
2.7 分頁控制器——UIPageControl 40
2.8 分段控制器——UISegmentedControl 41
2.8.1 UISegmentControl基本屬性的套用 41
2.8.2 對UISegmentedControl中的按鈕進行增、刪、改操作 42
2.8.3 UISegmentedControl中按鈕寬度的自適應 43
2.9 滑塊控制項——UISlider 43
2.9.1 UISlider的創建與常規設定 44
2.9.2 對UISlider添加圖片修飾 45
2.10 活動指示器控制項——UIActivityIndicatorView 45
2.11 進度條控制項——UIProgressView 47
2.12 步進控制器——UIStepper 48
2.12.1 步進控制器的基本屬性使用 48
2.12.2 自定義UIStepper按鈕圖片 49
2.13 選擇器控制項——UIPickerView 49
2.13.1 創建一個UIPickerView控制項 50
2.13.2 UIPickerView選中數據時的回調代理 51
2.14 通過CALayer對視圖進行修飾 52
2.14.1 創建圓角的控制項 52
2.14.2 創建帶框線的控制項 52
2.14.3 為控制項添加陰影效果 53
2.15 警告控制器——UIAlertController 54
2.15.1 UIAlertController的警告框 54
2.15.2 UIAlertController之活動列表 56
2.16 擴展篇 57
2.16.1 搜尋欄控制項——UISearchBar 57
2.16.2 日期時間選擇器——UIDatePicker 59
2.16.3 警告視圖——UIAlertView 61
2.16.4 活動列表——UIActionSheet 62
2.17 實戰:登錄註冊界面的搭建 62
第3章 高級UI控制項 68
3.1 導航控制器——UINavigationController 69
3.1.1 導航控制器的工作原理 69
3.1.2 使用導航控制器進行多界面搭建 70
3.1.3 導航欄UINavigationBar 73
3.1.4 導航按鈕UIBarButtonItem 74
3.1.5 導航控制器的工具列 77
3.1.6 iOS 8之後導航控制器的一些有趣功能 77
3.2 標籤控制器——UITabBarController 78
3.2.1 標籤控制器的工作原理 78
3.2.2 標籤控制器的基礎用法解析 78
3.2.3 關於UITabBarItem的使用 80
3.3 滾動視圖——UIScrollView 81
3.3.1 使用UIScrollView展示視圖內容 81
3.3.2 UIScrollView的代理方法 83
3.4 網路視圖——UIWebView 84
3.4.1 App網路傳輸安全策略 85
3.4.2 通過網路請求載入UIWebView 86
3.4.3 通過HTML字元串載入UIWebView 86
3.4.4 通過NSData數據載入UIWebView 87
3.4.5 UIWebView中常用方法解析 88
3.4.6 UIWebView的代理方法 89
3.5 表格視圖——UITableView 90
3.5.1 UITableView的創建與復用機制 90
3.5.2 創建一個表格視圖UITableView 91
3.5.3 關於表格數據的載體UITableViewCell 93
3.5.4 設定UITableView的行高和頭尾視圖 95
3.5.5 UITableView的用戶互動行為 96
3.5.6 為UITableView添加索引欄 99
3.6 複雜布局視圖——UICollectionView 99
3.6.1 UICollectionView控制項的優勢與布局方式 100
3.6.2 使用UICollectionView進行九宮格式的布局 100
3.6.3 創建更加靈活的流式布局 102
3.6.4 自定義UICollectionViewFlowLayout進行參差瀑布流布局 103
3.6.5 使用UICollectionView進行圓環布局 106
3.7 實戰:開發一款手機網頁瀏覽器 109
3.7.1 網頁瀏覽器工程的搭建 110
3.7.2 核心網頁視圖的設計 111
3.7.3 歷史記錄界面的設計 119
3.7.4 收藏界面的設計 122
3.7.5 啟動頁面、圖示及套用名稱的相關最佳化 124
第4章 網路編程 127
4.1 使用NSURLConnection請求網路數據 128
4.1.1 申請一個免費的API服務 128
4.1.2 使用NSURLConnection進行API服務數據的獲取 131
4.1.3 使用NSURLConnection進行異步網路請求 132
4.1.4 使用NSURLConnection類通過代理回調的方式異步進行網路請求 134
4.2 設計封裝一個更加易用的網路請求類 135
4.2.1 設計自定義的網路請求連線類 135
4.2.2 設計自定義的網路請求連線管理類 136
4.3 JSON類型數據的解析與數據模型的設計 139
4.3.1 JSON數據簡介 139
4.3.2 在iOS中解析JSON數據 141
4.3.3 數據模型Model類的設計 142
4.4 使用CocoaPods進行第三方庫的管理 146
4.4.1 在MAC上安裝CocoaPods 146
4.4.2 用CocoaPods搭建一個使用第三方網路請求框架AFNetworking的工程 148
4.5 使用AFNetworking進行網路請求 150
4.5.1 詳解HTTP/HTTPS協定 150
4.5.2 使用AFNetworking進行網路請求 151
4.6 實戰:開發“笑一笑”應用程式 153
4.6.1 工程項目框架的搭建 154
4.6.2 “笑一笑”界面數據載體cell的設計 155
4.6.3 “笑一笑”界面的搭建 157
4.6.4 實現下拉刷新與載入更多功能 162
4.6.5 “趣圖吧”界面數據載體cell的設計 164
4.6.6 “趣圖吧”界面的設計 167
第5章 音視頻開發 172
5.1 iOS音頻開發基礎——AVAudioPlayer類的使用 173
5.1.1 使用AVAudioPlayer進行MP3音頻檔案的播放 173
5.1.2 進行音頻播放相關屬性的控制 175
5.1.3 後台播放音頻及用戶互動的最佳化 180
5.2 iOS視頻開發基礎 184
5.2.1 使用MPMoviePlayerController向套用中嵌入視頻模組 184
5.2.2 MPMoviePlayerController常用屬性與方法解析 185
5.3 視頻播放器視圖控制器——MPMoviePlayerViewController 189
5.4 AVPlayerViewController視頻播放框架與畫中畫開發技術 191
5.4.1 使用AVPlayerViewController進行視頻播放 191
5.4.2 iPad的畫中畫播放技術 193
5.5 實戰:“天后王菲”音頻播放器的開發 195
5.5.1 工程搭建與LRC歌詞檔案簡介 196
5.5.2 LRC歌詞解析引擎的設計 197
5.5.3 核心播放器引擎的設計 201
5.5.4 歌曲列表與歌詞顯示視圖界面的設計 208
5.5.5 播放器主頁面的實現 213
5.5.6 後台播放音頻用戶互動的處理 219
第6章 動畫開發 221
6.1 使用UIImageView播放圖片組幀動畫 222
6.2 UIView層動畫的套用 223
6.2.1 執行UIView層過渡動畫的三個類方法 223
6.2.2 創建UIView層的阻尼動畫 225
6.2.3 動畫參數配置與組合動畫 225
6.2.4 UIView層過渡動畫支持的屬性 227
6.3 使用commit方式進行UIView層動畫的創建 228
6.3.1 使用commit方式進行UIView層過渡動畫的創建 228
6.3.2 兩種UIView層動畫創建方式的優劣 230
6.4 UIView的轉場動畫 230
6.4.1 重繪UIView視圖時使用的轉場動畫 230
6.4.2 切換UIView視圖時使用的轉場動畫 231
6.5 核心動畫編程技術——CoreAnimation 232
6.5.1 錨點對視圖控制項幾何位置的影響 233
6.5.2 色彩梯度層——CAGradientLayer 234
6.5.3 視圖拷貝層——CAReplicatorLayer 235
6.5.4 圖形渲染層——CAShapeLayer 236
6.5.5 文本繪製層——CATextLayer 237
6.5.6 CAAnimation動畫體系介紹 238
6.5.7 使用CABasicAnimation創建基礎動畫 240
6.5.8 使用CAKeyframeAnimation類創建關鍵幀動畫 242
6.5.9 CALayer層的轉場動畫——CATransition 243
6.5.10 CALayer層的組合動畫——CAAnimationGroup 245
6.5.11 CATransform3D變換的套用 246
6.6 炫酷的粒子效果 248
6.6.1 粒子發射器——CAEmitterLayer 248
6.6.2 粒子單元——CAEmitterCell 250
6.6.3 創建粒子火焰動畫 251
6.7 播放GIF動態圖 253
6.7.1 使用UIWebView進行GIF動態圖播放 253
6.7.2 使用UIImageView幀動畫進行GIF動態圖播放 254
6.8 實戰:小遊戲Flappy Bird的設計與開發 256
6.8.1 小鳥對象的設計 257
6.8.2 遊戲開始界面的設計 259
6.8.3 遊戲結束界面的設計 261
6.8.4 Flappy Bird遊戲主框架的搭建 262
第7章 感測器開發 270
7.1 為應用程式添加手機密碼及指紋識別的安全驗證 271
7.1.1 使用手機密碼為應用程式添加安全驗證 271
7.1.2 使用用戶指紋為應用程式添加安全驗證 273
7.2 使用加速度感測器、螺旋儀感測器與磁力感測器獲取設備空間狀態 274
7.2.1 使用UIAccelerometer獲取設備空間狀態 274
7.2.2 使用CoreMotion框架獲取設備空間狀態信息 275
7.3 距離感測器的套用 278
7.4 iOS藍牙開發技術 279
7.4.1 中心設備管理類CBCentralManager 280
7.4.2 外圍設備管理類CBPeripheralManager 285
7.5 GPS套用與地圖編程技術 289
7.5.1 進行設備地理位置定位 289
7.5.2 原生地圖開發技術 292
7.5.3 在地圖中添加大頭針及標註 294
7.5.4 在地圖視圖中添加覆蓋物 297
7.5.5 在地圖中進行線路導航與附近興趣點檢索 299
7.6 實戰:簡易藍牙對戰五子棋 304
7.6.1 遊戲核心通信類的設計 304
7.6.2 棋盤瓦片的設計 314
7.6.3 核心遊戲視圖與遊戲核心邏輯的設計 315
7.6.4 核心遊戲視圖控制器的設計 325
第8章 界面布局 329
8.1 iOS中傳統的UIViewAutoresizing布局模式 330
8.1.1 通過代碼來設定視圖控制項的UIViewAutoresizing模式 330
8.1.2 在xib檔案中可視化地配置控制項的autoresizing屬性 332
8.2 Autolayout自動布局框架 333
8.2.1 初識Autolayout 334
8.2.2 Autolayout的屬性意義與一個簡單的自動布局示例 335
8.2.3 使用Objective-C風格的方法進行代碼Autolayout布局 338
8.2.4 使用格式化的字元串進行Autolayout布局對象的創建 341
8.2.5 與約束相關的幾個方法 343
8.2.6 使用Autolayout設計一個高度自適應的聊天輸入框及動畫最佳化 343
8.2.7 使用第三方庫Masonry進行Autolayout約束布局 345
第9章 數據持久化 351
9.1 使用plist檔案進行輕量級數據持久化管理 352
9.1.1 在工程中讀取plist檔案數據 352
9.1.2 在程式沙盒Doucments目錄中創建和使用plist檔案 353
9.1.3 使用NSUserDefaults類進行數據持久化 354
9.2 使用歸檔技術進行數據模型持久化 356
9.2.1 進行單一系統數據類型的歸檔與解歸檔操作 356
9.2.2 對多個對象進行數據歸檔 357
9.2.3 進行自定義數據模型的歸檔 358
9.3 小型資料庫SQLite在iOS開發中的套用 360
9.3.1 SQLite資料庫常用語法介紹 360
9.3.2 使用iOS原生框架sqlite3對SQLite資料庫進行操作 362
9.4 核心數據管理框架CoreData的使用 367
9.4.1 使用CoreData設計數據模型 367
9.4.2 CoreData編程框架中3個重要的類 370
9.4.3 CoreData編程框架的數據操作 373
9.4.4 使用CoreData進行數據與頁面的綁定 378
9.5 網路快取策略 384
9.5.1 為網路請求設定快取策略 384
9.5.2 套用快取管理類NSURLCache簡介 385
第10章 提交應用程式到AppStore 387
10.1 使用Xcode開發工具進行程式調試 388
10.1.1 使用自定義斷點進行代碼調試 388
10.1.2 添加全局異常斷點 389
10.1.3 使用LLDB調試器進行程式調試 390
10.2 Apple開發者賬號的申請 391
10.2.1 幾種類型的開發者賬號 391
10.2.2 申請開發者賬號的過程 391
10.3 進行應用程式的打包 394
10.3.1 在iTunes Connect中進行套用的創建與配置 394
10.3.2 使用Xcode進行打包與提交iTunes 401
第11章 進階技巧 405
11.1 Objective-C中block語法的套用 406
11.1.1 聲明與實現block語法塊 406
11.1.2 block代碼塊中訪問對象的微妙關係 407
11.2 iOS通知中心NSNotificationCenter的套用 408
11.2.1 通知類NSNotification簡介 409
11.2.2 通知中心NSNotificationCenter套用 409
11.3 多執行緒開發技術 410
11.3.1 使用NSThread進行執行緒管理 411
11.3.2 使用NSOperation類與NSOperationQueue類進行多任務管理 412
11.3.3 iOS中GCD編程技術簡介 416