內容簡介
本書是智捷課堂團隊編寫“
iOS實戰”系列圖書中的一本,全書分為16章,系統介紹了iOS套用開發的理論與技術。
全書內容包括:第1章開始,介紹了iOS開發背景知識及本書約定;第2章介紹了CocoaTouchMVC設計模式;第3章介紹了視圖及其相關知識;第4章介紹了表視圖;第5章介紹了界面布局與AutoLayout技術;第6章介紹了螢幕適配與SizeClass技術;第7章介紹了套用導航模式;第8章介紹了手勢識別;第9章為項目實戰——編寫自定義控制項PopupControl;第10章介紹了音頻和視頻多媒體開發;第11章介紹了圖形圖像開發;第12章介紹了數據存儲;第13章介紹了網路數據交換格式;第14章介紹了RESTWebService;第15章介紹了WebService網路通信架構設計;第16章介紹了iOS敏捷開發項目實戰——價格線酒店預訂iPhone客戶端開發。
本書適合作為從事iOS套用開發的軟體工程師的參考用書,也可作為計算機科學與技術、軟體工程等專業的移動開發類課程的教學用書。
目錄
第1章開始
1.1iOS概述
1.1.1iOS介紹
1.1.2iOS8新特性
1.2開發環境及開發工具
1.3本書約定
1.3.1實例代碼約定
1.3.2圖示約定
1.3.3方法命名約定
1.3.4構造器命名約定
1.4創建HelloiOS工程
1.4.1創建工程
1.4.2Xcode中的iOS工程模板
1.4.3套用剖析
1.4.4套用生命周期
1.4.5Xcode中的Project和Target
1.4.6常用的產品屬性
1.5iOSAPI簡介
1.5.1API概述
1.5.2如何使用API幫助
1.6小結
第2章CocoaTouchMVC設計模式
2.1MVC模式
2.1.1MVC模式概述
2.1.2CocoaTouchMVC模式
2.2視圖控制器
2.2.1視圖控制器種類
2.2.2視圖控制器生命周期
2.3視圖與UIView
2.3.1UIView繼承層次結構
2.3.2視圖分類
2.3.3套用界面的構建層次
2.4界面構建技術
2.4.1使用故事板
2.4.2使用Xib檔案
2.4.3使用代碼
2.5小結
第3章視圖
3.1控制項與動作事件
3.1.1按鈕
3.1.2定義動作事件
3.2視圖與輸出口
3.2.1標籤
3.2.2定義輸出口
3.3視圖與委託協定
3.3.1委託設計模式
3.3.2實例:TextField委託協定
3.3.3鍵盤的打開和關閉
3.3.4鍵盤的種類
3.4關閉和打開鍵盤通知
3.4.1通知機制
3.4.2實例:關閉和打開鍵盤
3.5Web視圖
3.5.1UIWebView類
3.5.2WKWebView類
3.6警告框
3.7操作表
3.8工具列
3.9導航欄
3.10小結
第4章表視圖
4.1表視圖中概念
4.1.1表視圖組成
4.1.2表視圖相關類
4.1.3表視圖分類
4.1.4單元格組成和樣式
4.1.5數據源協定與委託協定
4.2簡單表視圖
4.2.1創建簡單表視圖
4.2.2自定義單元格
4.2.3添加搜尋欄
4.3分節表視圖
4.3.1添加索引
4.3.2分組
4.4刪除和插入單元格
4.5小結
第5章界面布局與AutoLayout技術
5.1iOS界面布局UI設計模式
5.2靜態表與表單布局
5.3集合視圖
5.3.1集合視圖介紹
5.3.2實例:奧運會比賽項目
5.3.3添加集合視圖控制
5.3.4添加集合視圖單元格
5.3.5數據源協定與委託協定
5.4AutoLayout布局
5.4.1AutoLayout約束管理
5.4.2實例:AutoLayout布局
5.5小結
第6章螢幕適配與SizeClass技術
6.1iOS螢幕
6.1.1iOS螢幕介紹
6.1.2iOS的三種解析度
6.1.3判斷iPhone螢幕尺寸
6.2SizeClass技術
6.2.1InterfaceBuilder中使用SizeClass
6.2.2SizeClass的九宮格
6.2.3實例:使用SizeClass
6.3小結
第7章套用導航模式
7.1導航概述
7.2導航的“死胡同”——模態視窗
7.3平鋪導航
7.3.1平鋪導航概述
7.3.2使用資源目錄管理圖片
7.3.3螢幕滾動視圖重要的屬性
7.3.4分屏導航實現
7.4標籤導航
7.4.1標籤導航實例
7.4.2標籤導航實現
7.5樹形結構導航
7.5.1樹形結構導航實例
7.5.2樹形結構導航實現
7.6組合使用導航模式
7.6.1組合導航實例
7.6.2組合導航實現
7.7小結
第8章手勢識別
8.1手勢種類
8.2使用手勢識別器
8.2.1視圖對象與手勢識別
8.2.2手勢識別狀態
8.2.3檢測Tap(單擊)
8.2.4檢測LongPress(長按)
8.2.5檢測Pan(平移)
8.2.6檢測Swipe(滑動)
8.2.7檢測Rotation(旋轉)
8.2.8檢測Pinch(手指的合攏和張開)
8.2.9檢測ScreenEdgePan(螢幕邊緣平移)
8.3觸摸事件與手勢識別
8.3.1事件處理機制
8.3.2回響者對象與回響鏈
8.3.3觸摸事件
8.3.4手勢識別
本章小結
第9章項目實戰—編寫自定義PopupControl
9.1選擇器
9.1.1日期選擇器
9.1.2普通選擇器
9.1.3數據源協定與委託協定
9.2自己的選擇器
9.2.1自定義選擇器控制項需求
9.2.2靜態程式庫
9.2.3框架
9.2.4使用工作空間
9.3實現自定義選擇器
9.3.1創建框架工程
9.3.2創建自定義選擇器控制器
9.3.3使用Xib構建界面
9.3.4編寫選擇器控制器委託協定代碼
9.3.5編寫選擇器控制器代碼
9.4實現自定義日期選擇器
9.4.1創建自定義日期選擇器控制器
9.4.2使用Xib構建界面
9.4.3編寫日期選擇器控制器委託協定代碼
9.4.4編寫日期選擇器控制器代碼
9.5測試自定義控制項
9.5.1創建工作空間
9.5.2測試程式工程
9.6小結
第10章音頻和視頻多媒體開發
10.1音頻開發
10.1.1音頻檔案簡介
10.1.2音頻API簡介
10.1.3音頻播放
10.1.4音頻錄製
10.2視頻開發
10.2.1視頻檔案簡介
10.2.2視頻播放
10.2.3視頻錄製
本章小結
第11章圖形圖像開發
11.1使用圖像
11.1.1創建圖像
11.1.2實例:從設備圖片庫選取或從照相機抓取
11.2使用CoreImage框架
11.2.1CoreImage框架API
11.2.2濾鏡
11.2.3實例:舊色調和高斯模糊濾鏡
本章小結
第12章數據存儲
12.1數據存儲概述
12.1.1沙箱目錄
12.1.2數據存儲方式
12.2分層架構設計
12.2.1低耦合企業級系統架構設計
12.2.2iOS分層架構設計
12.3實例:MyNotes套用
12.3.1採用純Swift語言實現
12.3.2採用Swift調用ObjectiveC混合搭配實現
12.4屬性列表
12.5使用SQLite資料庫
12.5.1SQLite數據類型
12.5.2創建資料庫
12.5.3查詢數據
12.5.4修改數據
12.6小結
第13章網路數據交換格式
13.1XML數據交換格式
13.1.1XML文檔結構
13.1.2XML文檔解析與框架性能
13.1.3實例:MyNotes套用XML
13.2JSON數據交換格式
13.2.1JSON文檔結構
13.2.2JSON數據編碼/解碼與框架性能
13.2.3實例:MyNotes套用JSON解碼
13.3小結
第14章RESTWebService
14.1RESTWebService通信技術基礎
14.1.1HTTP協定
14.1.2HTTPS協定
14.2使用蘋果網路請求API
14.2.1同步請求方法
14.2.2異步請求方法
14.2.3實例:MyNotes插入、修改和刪除功能實現
14.3實例:改善MyNotes用戶體驗
14.3.1使用下拉刷新控制項
14.3.2使用網路活動指示器
14.4使用網路請求框架MKNetworkKit
14.4.1安裝和配置MKNetworkKit框架
14.4.2實現GET請求
14.4.3實現POST請求
14.4.4下載數據
14.4.5上傳數據
14.5小結
第15章WebService網路通信架構設計
15.1iOSWebService網路通信套用的分層架構設計
15.2基於委託模式實現
15.2.1網路通信與委託模式
15.2.2使用委託模式實現分層架構設計
15.2.3類圖
15.2.4時序圖
15.2.5數據持久層重構
15.2.6業務邏輯層的代碼實現
15.2.7表示層的代碼實現
15.3基於觀察者模式的通知機制實現
15.3.1觀察者模式的通知機制回顧
15.3.2異步網路通信中通知機制的分層架構設計
15.3.3類圖
15.3.4時序圖
15.3.5數據持久層的重構
15.3.6業務邏輯層的代碼實現
15.3.7表示層的代碼實現
15.4小結
第16章iOS敏捷開發項目實戰
價格線酒店預訂iPhone客戶端開發
16.1套用分析與設計
16.1.1套用概述
16.1.2需求分析
16.1.3原型設計
16.1.4架構設計
16.2iOS敏捷開發
16.2.1敏捷開發宣言
16.2.2iOS可以敏捷開發?
16.2.3iOS敏捷開發一般過程
16.3任務1:創建工作空間
16.4任務2:業務邏輯層開發
16.4.1疊代2.1編寫搜尋酒店的業務邏輯層類
16.4.2疊代2.2編寫房間查詢業務邏輯類
16.5任務3:表示層開發
16.5.1疊代3.1根據原型設計初步設計故事板
16.5.2疊代3.2搜尋酒店模組
16.5.3疊代3.2.1選擇城市視圖控制器
16.5.4疊代3.2.2選擇關鍵字視圖控制器
16.5.5疊代3.2.3選擇價格和日期選擇器
16.5.6疊代3.2.4酒店搜尋視圖控制器
16.5.7疊代3.2.5酒店搜尋列表視圖控制器
16.5.8疊代3.3房間查詢模組
16.6小結