iOS企業級應用開發技術

iOS企業級應用開發技術

作者: 和凌志
出版社: 電子工業
出版在: 2017-10-01
ISBN-13: 9787121328282
ISBN-10: 7121328283
裝訂格式: 平裝
總頁數: 237 頁





內容描述


本書聚焦在APP“產品”的設計、開發和運營層面,特別強調架構和設計模式的重要性,有意識地將設計模式應用到代碼的編寫中,重點介紹iOS企業級應用開發的設計思維方式,並與全棧開發技術結合起來。 全書分為iOS基礎篇、Web與Native混合開發模式篇和全棧開發技術篇。iOS基礎篇主要介紹iOS基礎知識、多種設計模式下的視圖控制器之間的傳值、App與服務器接口的定義、CollectionView的應用;Web與Native混合開發模式篇主要介紹Block的應用、iOS網絡請求、JavaScript基礎、Web與Native的交互;全棧開發技術篇主要介紹Node.js、Express、AngularJS、MongoDB、MEAN全棧技術的實現。


目錄大綱


iOS基礎篇
第1章iOS基礎知識2 
1.1 Objective-C語法簡介2 
1.1.1 Objective-C的奇特之處2 
1.1.2如何聲明一個實例變量4 
1.1.3 Objective-C字符串5 
1.2 Objective- C的對像類型與基本數據類型6 
1.2.1對像類型與基本數據類型的混合使用6 
1.2.2對像類型與基本數據類型的轉換7 
1.3不可變數組與可變數組7 
1.3.1不可變數組( NSArray)的特徵8 
1.3.2可變數組(NSMutableArray)的特徵8 
1.3.3如何遍歷數組中的對象8 
1.3.4 NSArray與NSMutableArray的應用10 
1.4不可變字典與可變字典11 
1.4.1不可變字典(NSDictionary) 11 
1.4.2可變字典(NSMutableDictionary) 12 
1.4.3如何遍歷字典中的對象12 
1.4.4 NSArray與NSDictionary的應用13 
1.4.5創建類的對象13 
1.5 iOS應用程序概述14 
1.5. 1應用程序的入口14 
1.5.2應用程序委託(AppDelegate) 14
1.5.3 UIApplication應用場景15 
1.5.4一種簡單的永久數據存儲方式16 
1.6 iOS定制化控件17 
1.6.1定制化View的創建17 
1.6.2小標籤(UILabel),大用場19 
1.6.3如何實現輸入框隨鍵盤上移20 
1.7視圖的層級管理23 
1.7.1創建視圖的方法23 
1.7.2如何從父視圖中移除子視圖25 
1.7.3登錄頁面的實現26 
1.8 iOS編程規範28 
1.8. 1代碼的可維護性29 
1.8.2面向對象的編程思想29 
1.8.3優先編寫輕量級的ViewController 30 
1.9小結31 
第2章視圖控制器之間的傳值32 
2.1通過Delegate實現ViewController之間的傳值32 
2.1.1 Delegate概述32 
2.1.2學習Delegate的困惑32 
2.1.3從一道經典的面試題說起33 
2.1.4學習Delegate常出現的幾個誤區33 
2.1.5 Delegate技術難點在哪裡34 
2.1.6數據逆向傳送一定要通過Delegate嗎34 
2.1.7 Delegate應用五步曲35 
2.1.8 Delegate優勢38
2.2通過單例實現ViewController之間的傳值38 
2.2.1單例的創建39 
2.2.2單例的初始化40 
2.2.3單例設計模式的本質41 
2.2.4通過單例實現傳值41 
2.2. 5單例模式在登錄模塊中的應用42 
2.2.6單例模式的優勢44 
2.3通過KVO實現ViewController之間的傳值44 
2.3.1什麼是KVC 44 
2.3.2什麼是KVO 45 
2.3.3 KVO的特點46 
2.3.4使用KVO的步驟46 
2.3.5 KVO的實現方法46 
2.3.6 KVO應用注意事項50 
2.4通過NSNotification實現ViewController之間的傳值50 
2.4.1 NSNotification的定義51 
2.4.2 NSNotificationCenter 51 
2.4 .3發出通知51 
2.4.4接收通知52 
2.4.5移除通知52 
2.4.6異步模式下的通知操作53 
2.4.7通過NSNotification實現ViewController之間的傳值53 
2.4.8 NSNotification與Delegate的區別55 
2.4.9監聽系統自帶的NSNotification 56
2.5小結58 
第3章App與服務器接口的定義59 
3.1關於JSON的認識59 
3.2 App與服務器接口的定義61 
3.2.1 App與後台的接口設計61 
3.2.2後台返回的數據格式61 
3.2.3後台返回的提示信息62 
3.3 JSON與Model的轉換62 
3.3.1 JSONModel常見的用法63 
3.3.2 JSONModel的幾個屬性用法67 
3.4小結69 
第4章CollectionView的應用70 
4.1 CollectionView與TableView孰優孰劣70 
4.1 .1 TableView的應用場景70 
4.1.2 CollectionView的應用場景71 
4.1.3 CollectionView與TableView概念對比71 
4.1.4 CollectionView與TableView的性能對比71 
4.2什麼是UICollectionView 71 
4.3實現一個簡單的UICollectionView 72 
4.4 UICollectionViewCell視圖層級73 
4.5 UICollectionViewDataSource 74 
4.6關於Cell的重用74 
4.7 UICollectionViewDelegate 75
4.8 UICollectionViewLayout 76 
4.9實現一個簡單的瀑布流77 
4.9.1通過手動編碼創建UICollectionView 78 
4.9.2直接拖曳一個CollectionViewController 81 
4.9.3基於Xib創建一個UICollectionViewCell 86 
4.10自定義瀑布流的應用場景88 
4.11自定義Flow Layout進行瀑布流佈局88 
4.11.1自定義瀑布流的應用場景89 
4.11.2自定義瀑布流的實現思路90 
4.11.3創建自定義的Flow Layout 90 
4.11.4創建自定義的CollectionViewCell 92 
4.11.5關於initWithFrame:方法的使用93 
4.11.6自定義瀑布流的完整實現94 
4.11.7 UICollectionView相關的類圖96 
4.11.8如何實現UICollectionView的輪播97 
4.12 CollectionView與TableView的區別98 
4.13圖片輪播的實現思路98 
4.14 CollectionView注意事項99 
4.15小結100 
Web與Native混合開發模式
第5章Block的應用102 
5.1 Block緣起102
5.2 Block概述103 
5.3 Block的聲明、實現與調用104 
5.3.1 Block的聲明104 
5.3.2 Block的實現106 
5.3.3 Block的調用108 
5.3.4 Block外部變量的訪問109 
5.4 Block的應用場景110 
5.4 .1 Block用於completionHandler 110 
5.4.2 Block聲明為實例變量113 
5.4.3 typedef Block 114 
5.5通過Block實現視圖控制器之間的逆向傳值115 
5.5.1應用場景115 
5.5.2代碼實現115 
5.6小結118 
第6章iOS網絡請求119 
6.1 iOS網絡請求概述119 
6.2 AFNetworking的應用119 
6.2.1 AFNetworking概述119 
6.2.2 AFNetworking框架使用方法121 
6.2.3影響網絡請求的幾個條件122 
6.2.4善用URL宏定義124 
6.2.5 URl接口應統一管理124 
6.2.6 AFNetworking的二次封裝126 
6.3 AFNetworking的序列化問題126 
6.3.1 AFNetworking請求格式127
6.3.2 AFNetworking響應格式128 
6.4異步請求數據並刷新UI頁面128 
6.5遠程文件下載130 
6.5.1基於AFNetworking的文件下載130 
6.5.2基於NSURLSession的文件下載132 
6.5.3網絡安全訪問設置133 
6.6小結134 
第7章JavaScript基礎135 
7.1 JavaScript語法135 
7.2變量的聲明與賦值136 
7.3如何判斷兩個字符串是否相等137 
7.4創建JavaScript對象的三種方法138 
7.5函數聲明與函數表達式140 
7.6可立即調用的函數表達式143 
7.7循環的實現145 
7.8防止JavaScript自動插入分號146 
7.9嚴格模式147 
7.10如何運行與調試JavaScript代碼148 
7.10.1把JavaScript代碼內嵌到HTML頁面中148 
7.10.2通過Node.js運行JavaScript代碼150 
7.11 JavaScript的面向對象設計思想150 
7.12 JavaScript的異步編程模式151 
7.12.1 Promise對象152 
7.12.2生成Promise實例對象152
7.12.3 Promise原型方法154 
7.12.4 Promise的catch方法154 
7.13如何在HTML中嵌入JavaScript 155 
7.13.1 <script>標籤155 
7.13.2 <script>標籤的位置156 
7.13.3嵌入JavaScript代碼與外部文件引用157 
7.14 JavaScript與JSON 157 
7.15小結158 
第8章Web與Native的交互159 
8.1混合開發模式概述159 
8.1.1 Webkit簡介159 
8.1.2 JavaScriptCore簡介160 
8.1.3 Objective-C調用JavaScript 160 
8.2網頁調用iOS的原生方法162 
8.2.1應用場景162 
8.2.2技術實現思路163 
8.2.3代碼實現163 
8.2.4代碼解讀164 
8.2.5 Objective-C與JavaScript的數據類型166 
8.2.6 Objective-C訪問HTML文件167 
8.3 iOS調用JavaScript 168 
8.3.1 Objective-C調用JavaScript代碼169 
8.3.2 Objective-C獲取JavaScript中的變量170
8.3.3在Objective-C中,調用帶有參數的JavaScript函數170 
8.3.4在Objective-C中調用不帶參數的JavaScript函數171 
8.4 JavaScript調用Objective-C代碼172 
8.4.1 JavaScript調用Objective-C代碼172 
8.4.2 JavaScript調用Objective-C函數對象173 
8.5小結174 
全棧開發技術
第9章Node.js入門指南176 
9.1概述176 
9.2 Node.js生態176 
9.3 Node開發環境的搭建177 
9.4 Node.js驗證177 
9.5第一個Node.js工程178 
9.5.1創建Node.js工程178 
9.5.2運行Node.js工程179 
9.5.3 Node.js服務的自動重啟181 
9.6小結182 
第10章Express——後端框架183 
10.1概述183 
10.2 Express工程的創建183 
10.3 Express中的GET與POST請求184 
10.3.1 GET請求184 
10.3.2 POST請求185 
10.4小結185
第11章AngularJS——Google前端框架186 
11.1 AngularJS概述186 
11.2 AngularJS指令概述188 
11.2.1 AngualrJS指令:ng-app 188 
11.2.2 AngularJS指令:ng-init 189 
11.2.3 AngularJS指令:ng-model 189 
11.2 .4 ng-app與ng-model示例189 
11.2.5 AngularJS指令:ng-click 191 
11.3 AngularJS構建單頁面應用191 
11.3.1單頁面應用的優勢191 
11.3.2輕鬆構建單頁面應用193 
11.3.3單頁面應用的實現194 
11.4 AngularJS的加載199 
11.4.1 AngularJS的引用199 
11.4.2加載AngularJS靜態資源庫199 
11.5 AngularJS控制器200 
11.5.1 AngularJS控制器的創建200 
11.5.2 AngularJS控制器的應用200 
11.5 .3 AngularJS的數據綁定202 
11.6 $scope用法204 
11.7小結207 
第12章MongoDB——文檔數據庫208 
12.1 MongoDB概述208
12.1.1關於MongoDB 208 
12.1.2 MongoDB的歷史208 
12.1.3 MongoDB的優勢209 
12.2 MongoDB的安裝與應用209 
12.2.1 MongoDB的安裝209 
12.2.2啟動MongoDB 210 
12.2.3 MongoDB的可視化管理210 
12.3用mongoose操作MongoDB 213 
12.3.1 mongoose概述213 
12.3.2初識mongoose 214 
12.3.3 mongoose的安裝214 
12.3.4 mongoose連接數據庫214 
12.3.5 Schema 215 
12.3.6 Model及其操作216 
12.3.7插入216 
12.3 .8查詢216 
12.3.9更新218 
12.3.10刪除219 
12.4小結220 
第13章MEAN全棧技術的實現221 
13.1應用場景221 
13.2安裝Express 221 
13.3創建Express工程222 
13.4構建登錄頁面227 
13.4.1構建登錄的靜態頁面227 
13.4.2構建路由230 
13.4.3添加路由中間件231
13.5構建註冊頁面232 
13.5.1靜態頁面的創建232 
13.5.2構建註冊頁面的路由234 
13.5.3添加路由中間件237 
13.6小結237 
參考文獻238




相關書籍

Creating Dynamic UIs with Android Fragments Second Edition

作者 Jim Wilson

2017-10-01

Swift全解析:新式iOS實戰開發

作者 張雲波 冼樹華 丁美程

2017-10-01

Swift 5 從零到精通 iOS 開發訓練營

作者 張益琿

2017-10-01