天天看點

iOS開發進階

《 iOS開發進階 》

基本資訊

作者: 唐巧

出版社:電子工業出版社

ISBN:9787121247453

上架時間:2014-12-26

出版日期:2015 年1月

開本:16開

頁碼:268

版次:1-1

iOS開發進階

内容簡介

    計算機書籍

《 iOS開發進階 》分工具、實踐、理論三大部分。第一部分介紹iOS 開發的常用工具,第二部分介紹iOS開發中的一些常見的實踐經驗,第三部分介紹iOS 開發中涉及的原理。

如果把成為iOS 開發高手的過程比作武俠小說中的修煉過程的話,工具、實踐和理論的學習就分别對應兵器、招式和内功的修煉。《iOS開發進階》希望通過這三方面的綜合講解,全面提高開發者的技能水準。

目錄

《 iOS開發進階 》

推薦序 iii

第1 章引言 1

1.1 我為什麼要寫本書1

1.1.1 我的構思1

1.1.2 内容導讀1

1.1.3 目标讀者2

1.1.4 随書示例代碼和勘誤2

1.1.5 緻謝2

1.2 如何提高iOS 開發技能3

1.2.1 閱讀部落格3

1.2.2 讀書3

1.2.3 看WWDC 視訊4

1.2.4 看蘋果的官方文檔4

1.2.5 看開源項目的代碼4

1.2.6 多寫代碼,多思考4

1.2.7 多和同行交流5

1.2.8 分享5

I 第一部分:iOS 開發工具

第2 章使用CocoaPods 做依賴管理 9

2.1 CocoaPods 簡介9

2.2 CocoaPods 的安裝和使用10

2.2.1 CocoaPods 的安裝10

2.2.2 使用CocoaPods 的鏡像索引10

2.2.3 使用CocoaPods 11

2.2.4 查找第三方庫11

2.3 注意事項12

2.3.1 關于.gitignore 12

2.3.2 為自己的項目建立podspec 檔案12

2.3.3 使用私有的pods 12

2.3.4 不更新podspec 12

2.3.5 生成第三方庫的幫助文檔13

2.3.6 原理13

第3 章網絡封包分析工具Charles 15

3.1 Charles 簡介15

3.2 Charles 的安裝和使用16

3.2.1 安裝Charles 16

3.2.2 安裝SSL 證書16

3.2.3 将Charles 設定成系統代理17

3.2.4 Charles 主界面介紹18

3.2.5 過濾網絡請求18

3.3 使用Charles 協助iOS 開發19

3.3.1 截取iPhone 上的網絡封包19

3.3.2 模拟慢速網絡21

3.4 進階功能22

3.4.1 截取SSL 資訊22

3.4.2 修改網絡請求内容23

3.4.3 修改伺服器傳回内容25

3.5 Map 功能25

3.6 Rewrite 功能27

3.7 Breakpoints 功能29

3.8 總結30

3.9 參考連結30

第4 章界面調試工具Reveal 31

4.1 Reveal 簡介31

4.2 Reveal 的使用32

4.2.1 用Reveal 連接配接模拟器調試32

4.2.2 用Reveal 連接配接真機調試34

4.2.3 用Reveal 調試其他應用界面34

4.2.4 總結35

4.2.5 參考資料36

第5 章移動統計工具Flurry 37

5.1 Flurry 簡介37

5.2 Flurry 的基本使用38

5.2.1 注冊和下載下傳對應SDK 38

5.2.2 內建SDK 40

5.2.3 自定義統計項42

5.2.4 檢視統計結果43

5.2.5 統計Crashlog 44

5.3 對比和總結45

5.3.1 和其他統計分析平台的對比45

5.3.2 總結45

第6 章崩潰日志記錄工具Crashlytics 47

6.1 Crashlytics 簡介47

6.2 Crashlytics 的使用49

6.3 實作原理和使用體會52

第7 章App Store 統計工具App Annie 55

7.1 App Annie 簡介55

7.2 App Annie 的使用56

7.3 App Annie 賬号的注冊及配置59

7.4 和其他工具的對比60

7.4.1 官方的指令行工具60

7.4.2 其他類似服務61

7.4.3 功能對比61

第8 章Xcode 插件 63

8.1 Xcode 插件管理工具Alcatraz 63

8.1.1 簡介63

8.1.2 安裝和删除64

8.1.3 使用64

8.1.4 插件路徑66

8.2 關于Xcode 的插件機制66

8.3 常用Xcode 插件66

8.3.1 KSImageNamed 66

8.3.2 XVim 67

8.3.3 FuzzyAutocompletePlugin 67

8.3.4 XToDo 67

8.3.5 BBUDebuggerTuckAway 68

8.3.6 SCXcodeSwitchExpander 68

8.3.7 deriveddata-exterminator 68

8.3.8 VVDocumenter 69

8.3.9 ClangFormat 69

8.3.10 ColorSense 69

8.3.11 XcodeBoost 70

第9 章其他工具介紹 71

9.1 取色工具:數位測色計(DigitalColor Meter) 71

9.1.1 前言71

9.1.2 使用介紹71

9.1.3 其他類似工具:xScope 72

9.2 其他圖形工具73

9.2.1 ImageOptim 73

9.2.2 馬克鳗74

9.2.3 Dash 74

9.2.4 蒲公英75

9.3 指令行工具75

9.3.1 nomad 75

9.3.2 xctool 76

9.3.3 appledoc 76

II 第二部分:iOS 開發實踐

第10 章了解記憶體管理 81

10.1 引用計數81

10.1.1 什麼是引用計數,原理是什麼81

10.1.2 我們為什麼需要引用計數83

10.1.3 不要向已經釋放的對象發送消息85

10.1.4 循環引用(reference cycles)問題85

10.1.5 使用Xcode 檢測循環引用88

10.2 使用ARC 90

10.2.1 Automatic Reference Count 90

10.2.2 Core Foundation 對象的記憶體管理92

第11 章掌握GCD 95

11.1 GCD 簡介95

11.2 使用GCD 97

11.2.1 block 的定義97

11.2.2 系統提供的dispatch 方法98

11.2.3 修改block 之外的變量99

11.2.4 背景運作99

11.2.5 總結100

第12 章使用UIWindow 101

12.1 UIWindow 簡介101

12.2 為UIWindow 增加UIView 102

12.3 系統對UIWindow 的使用102

12.3.1 WindowLevel 104

12.3.2 手工建立UIWindow 105

12.3.3 不要濫用UIWindow 108

12.3.4 參考資料109

第13 章動态下載下傳系統提供的多種中文字型 111

13.1 功能簡介111

13.1.1 前言111

13.1.2 功能介紹112

13.1.3 字型清單112

13.2 使用教程113

13.2.1 相關API 介紹113

13.2.2 總結115

第14 章使用應用内支付 117

14.1 背景設定117

14.2 iOS 端開發119

14.3 服務端開發121

14.4 注意事項122

第15 章基于UIWebView 的混合程式設計 123

15.1 混合程式設計簡介123

15.2 使用模闆引擎渲染HTML 界面124

15.3 Objective-C 語言和JavaScript 語言互相調用126

15.4 如何傳遞參數129

15.5 同步和異步129

15.6 注意事項130

15.6.1 線程阻塞問題130

15.6.2 主線程的問題130

15.6.3 鍵盤控制130

15.6.4 CommonJS 規範130

15.7 使用Safari 進行調試131

第16 章安全性問題 135

16.1 前言135

16.2 網絡安全135

16.2.1 安全地傳輸使用者密碼135

16.2.2 防止通訊協定被輕易破解137

16.2.3 驗證應用内支付的憑證138

16.3 本地檔案和資料安全138

16.3.1 程式檔案的安全138

16.3.2 本地資料安全140

16.4 源代碼安全140

16.5 總結142

第17 章基于CoreText 的排版引擎 143

17.1 CoreText 簡介143

17.2 基于CoreText 的基礎排版引擎145

第18 章實戰技巧 181

18.1 App Store 與稽核181

18.1.1 撤銷正在稽核的應用181

18.1.2 申請加急稽核181

18.1.3 應用在市場的名字182

18.1.4 測試裝置數的限制182

18.1.5 如何将應用下架183

18.1.6 如何舉報别的應用侵權183

18.1.7 iTunes Connect 背景操作出錯184

18.1.8 Metadata Reject 184

18.2 開發技巧184

18.2.1 UILabel 内容模糊184

18.2.2 收起鍵盤184

18.2.3 NSJSONSerialization 比NSKeyedArchiver 更好185

18.2.4 設定應用内的系統控件語言185

18.2.5 為什麼viewDidUnload 被廢棄188

18.2.6 多人協作慎用Storyboard 189

18.2.7 避免濫用block 190

18.2.8 合并工程檔案的沖突192

18.2.9 忽略編譯警告193

18.3 Xcode 使用技巧193

18.3.1 Xcode 快捷鍵193

18.3.2 查找技巧195

18.3.3 JavaScript 檔案設定調整195

18.3.4 清除DerivedData 196

18.3.5 target 資訊異常197

18.3.6 下載下傳Xcode 197

18.4 調試技巧197

18.4.1 模拟器快捷鍵197

18.4.2 覆寫安裝注意事項197

18.4.3 給模拟器相冊增加圖檔198

18.4.4 獲得模拟器中的程式資料198

18.4.5 安裝舊版本的模拟器199

18.4.6 模拟慢速網絡199

18.4.7 異常斷點與符号斷點199

18.5 ipa 檔案格式199

18.5.1 檢視ipa 的内容199

18.5.2 檢視ipa 中的圖檔200

18.6 為工程增加Daily Build 201

18.6.1 前言201

18.6.2 步驟201

18.6.3 遇到的問題206

18.6.4 總結206

18.7 使用腳本提高開發效率206

18.7.1 删除未使用的圖檔資源206

18.7.2 用腳本自動生成小尺寸的圖檔207

18.7.3 檢查圖檔208

18.8 管理代碼片段209

18.8.1 代碼片段介紹209

18.8.2 定義自己的代碼片段210

18.8.3 使用Git 管理代碼片段211

18.8.4 其他代碼片段管理工具211

III 第三部分:iOS 開發底層原理

第19 章Objective-C 對象模型 215

19.1 簡介215

19.2 isa 指針215

19.3 類的成員變量217

19.4 對象模型的應用220

19.4.1 動态建立對象220

19.4.2 系統相關API 及應用222

19.4.3 參考文獻226

第20 章Tagged Pointer 對象 227

20.1 原有系統的問題227

20.2 Tagged Pointer 介紹228

20.2.1 Tagged Pointer 228

20.2.2 特點230

20.3 注意事項和實作細節231

20.3.1 isa 指針231

20.3.2 64 位下的isa 指針優化231

20.3.3 isa 的bit 位含義232

20.3.4 總結233

20.3.5 參考文獻233

第21 章block 對象模型 235

21.1 block 的内部資料結構定義235

21.2 用clang 分析block 實作237

21.2.1 NSConcreteMallocBlock 類型的block 的實作242

21.2.2 變量的複制243

21.3 注意事項243

21.3.1 避免循環引用243

21.3.2 ARC 對block 類型的影響244

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16566727/viewspace-1385198/,如需轉載,請注明出處,否則将追究法律責任。

轉載于:http://blog.itpub.net/16566727/viewspace-1385198/