3dwoo大學簡體電腦書店
精通iOS框架(第2版)
( 簡體 字)
作者:[美]Kyle Richter,Joe Keeley 著類別:1. -> 程式設計 -> 手機程式 -> iPhone
譯者:馮宗翰 江銘 朱倩 譯
出版社:清華大學出版社精通iOS框架(第2版) 3dWoo書號: 44289
詢問書籍請說出此書號!
有庫存
NT售價: 400
出版日:5/1/2016
頁數:440
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302433811 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章UIKitDynamics 1

1.1示例程序 1

1.2UIKitDynamics介紹 2

1.3UIKitDynamics具體實現 2

1.3.1重力效果 3

1.3.2碰撞效果 4

1.3.3附著效果 6

1.3.4彈跳效果 7

1.3.5瞬間位移 8

1.3.6推力效果 8

1.3.7元素屬性 10

1.4深入了解UIDynamicAnimator和UIDynamicAnimatorDelegate 11

1.5小結 12

第2章CoreLocation、MapKit和Geofencing框架 13

2.1示例程序 13

2.2獲取用戶位置 13

2.2.1請求和允許 14

2.2.2檢查服務 16

2.2.3開始位置請求 17

2.2.4解析和理解位置數據 19

2.2.5重大變更通知 20

2.2.6使用GPX文件測試指定位置 20

2.3顯示地圖 21

2.3.1了解坐標系 21

2.3.2MKMapKit配置和自定義 22

2.3.3對用戶操作的響應 23

2.4地圖標注和覆蓋物 24

2.4.1添加標注 24

2.4.2顯示標準和自定義的標注視圖 26

2.4.3可拖曳的標注視圖 29

2.4.4使用地圖覆蓋物 30

2.5地理編碼和反向地理編碼 31

2.5.1對地址進行地理編碼 31

2.5.2對位置進行反向地理編碼 35

2.6地理圍欄 38

2.6.1判斷區域監控是否可用 38

2.6.2定義邊界 38

2.6.3監控變更 39

2.7獲取路徑 41

2.8小結 45

第3章排行榜 47

3.1示例程序 47

3.1.1彈出仙人掌 49

3.1.2仙人掌間的相互影響 51

3.1.3顯示生命值和得分 53

3.1.4暫停和恢復 54

3.1.5有關Whack-a-Cac游戲的最后問題 55

3.2iTunesConnect 55

3.3GameCenter管理器 58

3.4認證 60

3.4.1常見的認證錯誤 60

3.4.2iOS6和新的認證系統 62

3.5提交得分 64

3.5.1向Whack-a-Cac中添加得分 66

3.5.2展示排行榜 68

3.5.3得分挑戰 70

3.5.4深入討論排行榜 71

3.6小結 72

第4章成就系統 73

4.1iTunesConnect 73

4.2顯示成就進度 75

4.3GameCenterManager和認證 76

4.4成就系統緩存 76

4.5上報成就系統 77

4.6添加成就關聯 79

4.7進度完成通知欄 80

4.8成就挑戰系統 80

4.9向Whack-a-Cac添加成就系統 83

4.9.1是否達成成就 83

4.9.2部分完成的成就 85

4.9.3多會話成就 86

4.9.4攜帶成就和保存成就精度 87

4.9.5基于時間的成就 88

4.10重置成就系統 89

4.11深入討論成就系統 90

4.12小結 91

第5章AddressBook框架初步 93

5.1支持AddressBook很重要 93

5.2AddressBook開發的限制 93

5.3示例程序 94

5.4開始實現AddressBook并運行 94

5.4.1從AddressBook讀取數據 96

5.4.2從AddressBook讀取多值數據 97

5.4.3理解AddressBook標簽 98

5.4.4處理地址信息 99

5.5AddressBook圖形用戶界面 100

5.6編寫代碼來創建聯系人 105

5.7小結 107

第6章MusicLibraries框架 109

6.1示例程序 109

6.2創建播放引擎 110

6.2.1注冊播放通知 111

6.2.2用戶控制 112

6.2.3處理狀態改變 114

6.2.4時長和計時器 118

6.2.5隨機播放和循環播放 119

6.3資源選擇器 119

6.4編程實現選擇器 121

6.4.1播放隨機歌曲 121

6.4.2謂詞匹配 123

6.5小結 124

第7章實現HealthKit框架 125

7.1HealthKit介紹 125

7.2Health.app介紹 126

7.3示例程序 126

7.4向項目添加HealthKit 127

7.5請求授權HealthData 128

7.6讀取HealthKit特征數據 130

7.7讀寫基本的HealthKit數據 131

7.8讀寫復雜的HealthKit數據 133

7.9小結 137

第8章實現HomeKit框架 139

8.1示例程序 139

8.2HomeKit介紹 139

8.3設置HomeKit組件 140

8.3.1設置開發者賬號 140

8.3.2啟用HomeKit功能 141

8.3.3家庭管理器 142

8.3.4家庭 143

8.3.5房間和區域 144

8.3.6附件 146

8.3.7服務和服務組 149

8.3.8動作和動作集 151

8.4使用HomeKitAccessorySimulator進行測試 152

8.5使用觸發器計劃動作 153

8.6小結 154

第9章JSON的使用和解析 155

9.1JSON 155

9.1.1使用JSON的好處 155

9.1.2JSON資源 156

9.2示例程序 156

9.3訪問服務器 156

9.4從服務器獲取JSON 156

9.4.1創建請求 157

9.4.2檢查反饋 157

9.4.3解析JSON 158

9.4.4顯示數據 158

9.5發送消息 160

9.5.1JSON數據編碼 160

9.5.2向服務器發送JSON數據 162

9.6小結 163

第10章通知機制 165

10.1本地通知和推送通知的區別 165

10.2示例程序 166

10.3應用設置 166

10.4創建DevelopmentPushSSLCertificate 168

10.5開發配置文件 171

10.6準備自定義聲音 175

10.7注冊通知 175

10.8設置本地通知 176

10.9接收通知 178

10.10推送通知服務器 179

10.11發送推送通知 179

10.12處理APNs反饋 180

10.13小結 181

第11章基于CloudKit的云存儲 183

11.1CloudKit基礎 183

11.2示例程序 184

11.3設置CloudKit項目 184

11.3.1賬戶設置 184

11.3.2啟用iCloud功能 185

11.4CloudKit概念 186

11.4.1容器 186

11.4.2數據庫 186

11.4.3記錄 186

11.4.4記錄區域 187

11.4.5記錄標識符 187

11.4.6asset對象 187

11.5CloudKit基礎操作 188

11.5.1獲取記錄 188

11.5.2創建并保存記錄 189

11.5.3更新和保存記錄 191

11.6訂閱和推送 191

11.6.1推送設置 192

11.6.2數據變更的訂閱 192

11.7用戶發現和管理 193

11.8在dashboard中管理數據 197

11.9小結 199

第12章extension 201

12.1extension的類型 201

12.1.1Today 201

12.1.2Share 202

12.1.3Action 202

12.1.4PhotoEditing 202

12.1.5DocumentProvider 202

12.1.6CustomKeyboard 202

12.2理解extension 202

12.3API限制 203

12.4創建extension 203

12.5Todayextension 205

12.6在hostapp和extension間共享代碼和信息 206

12.7AppleWatchextension 207

12.8小結 209

第13章Handoff 211

13.1示例程序 211

13.2Handoff基礎 211

13.3實現Handoff 213

13.3.1創建用戶活動 213

13.3.2繼續執行一個活動 215

13.4在基于文檔的應用中實現Handoff 216

13.5小結 218

第14章AirPrint 219

14.1AirPrint打印機 219

14.2測試AirPrint 220

14.3打印文本 221

14.3.1打印信息 222

14.3.2設置頁面范圍 222

14.3.3UISimpleTextPrint-

Formatter 223

14.3.4錯誤處理 223

14.3.5開始一個打印任務 224

14.3.6打印機模擬器反饋 224

14.4打印中心 225

14.5打印呈現的HTML 226

14.6打印PDF 227

14.7小結 228

第15章開始使用CoreData 229

15.1CoreData的選擇 230

15.2示例程序 231

15.3開始一個CoreData項目 232

15.4創建托管對象模型 235

15.4.1創建實體 236

15.4.2添加特性 236

15.4.3建立關系 237

15.4.4自定義托管對象子類 238

15.5設置默認數據 238

15.5.1插入新的托管對象 239

15.5.2其他默認的數據設置

方法 240

15.6顯示托管對象 240

15.6.1創建取回請求 241

15.6.2根據對象ID取回托管對象 242

15.6.3顯示對象數據 244

15.6.4使用謂詞 245

15.7取回結果控制器介紹 246

15.7.1準備取回結果控制器 247

15.7.2整合表視圖和取回結果控制器 248

15.7.3對CoreData變化的響應 250

15.8添加、編輯和刪除托管對象 253

15.8.1插入新的托管對象 253

15.8.2刪除托管對象 254

15.8.3編輯現有的托管對象 255

15.8.4保存和回滾修改 255

15.9小結 257

第16章使用社交框架整合Twitter和Facebook 259

16.1示例程序 259

16.2用戶登錄 260

16.3使用SLComposeView-Controller 261

16.4使用自定義界面發送消息 263

16.4.1向Twitter發送消息 263

16.4.2向Facebook發送消息 267

16.4.3創建Facebook應用 267

16.5訪問用戶時間軸 272

16.5.1Twitter 272

16.5.2Facebook 277

16.6小結 281

第17章后臺任務處理 283

17.1示例程序 283

17.2檢查后臺運行的可行性 284

17.3在后臺完成任務 285

17.3.1后臺任務標識符 286

17.3.2超時處理程序 286

17.3.3完成后臺任務 287

17.4實現后臺活動 288

17.4.1后臺活動的類型 288

17.4.2在后臺播放音樂 289

17.5小結 292

第18章多線程開發的性能 293

18.1示例程序 293

18.2隊列介紹 294

18.3在主線程上運行 295

18.4在后臺運行 296

18.5在操作隊列中運行 298

18.5.1并發操作 298

18.5.2串行操作 299

18.5.3取消操作 301

18.5.4自定義操作 302

18.6在調度隊列中運行 303

18.6.1并發調度隊列 304

18.6.2串行調度隊列 305

18.7小結 307

第19章使用Keychain和TouchID保護并訪問數據 309

19.1示例程序 310

19.2創建和使用Keychain 310

19.2.1創建新的KeychainItemWrapper 310

19.2.2保存和獲取PIN 312

19.2.3Keychain特性鍵 312

19.2.4保護字典對象 313

19.2.5重置Keychain元素 315

19.2.6在應用間共享Keychain 315

19.2.7Keychain錯誤代碼 316

19.3實現TouchID 317

19.4小結 318

第20章處理圖片和過濾器 319

20.1示例程序 319

20.2基本圖片數據和顯示 319

20.2.1實例化圖片 319

20.2.2顯示圖片 321

20.2.3使用圖片選擇器 323

20.2.4調整圖片尺寸 325

20.3CoreImage過濾器 326

20.3.1過濾器類別和過濾器 326

20.3.2過濾器特性 328

20.3.3初始化圖片 331

20.3.4渲染過濾后的圖片 331

20.3.5鏈式過濾 332

20.4特征檢測 333

20.4.1創建人臉檢測器 334

20.4.2處理人臉特征 334

20.5小結 336

第21章集合視圖 337

21.1示例程序 337

21.2集合視圖介紹 338

21.2.1創建一個集合視圖 338

21.2.2為集合視圖實現數據源方法 340

21.2.3實現集合視圖委托方法 342

21.3定制集合視圖和流布局 344

21.3.1基礎定制 344

21.3.2修飾視圖 346

21.4創建定制布局 349

21.5集合視圖動畫 353

21.5.1集合視圖布局切換 354

21.5.2集合視圖布局動畫 355

21.5.3集合視圖變化動畫 357

21.6小結 357

第22章TextKit介紹 359

22.1示例程序 359

22.2NSLayoutManager介紹 360

22.3動態鏈接檢測 362

22.4檢測點擊 363

22.5路徑排除 364

22.6ContentSpecificHighlighting特性 365

22.7使用DynamicType更改字體設置 370

22.8小結 371

第23章手勢識別 373

23.1手勢識別的類型 373

23.2基礎手勢識別的用法 374

23.3示例程序介紹 375

23.3.1點擊識別動作 375

23.3.2捏壓識別動作 377

23.4在一個視圖中識別多個手勢 378

23.4.1手勢識別的工作原理 380

23.4.2在一個視圖中識別多個手勢:Redux 381

23.4.3請求手勢識別失敗 382

23.5定制UIGestureRecognizer子類 384

23.6小結 384

第24章訪問照片庫 385

24.1示例程序 385

24.2Photos框架 386

24.3使用資源集合和資源 386

24.3.1權限 387

24.3.2資源集合 388

24.3.3資源 391

24.4照片庫中的編輯操作 393

24.4.1編輯資源集合 393

24.4.2編輯資源 395

24.5處理照片流 398

24.6小結 398

第25章Passbook和PassKit 399

25.1示例程序 400

25.2設計通行證 400

25.2.1通行證的類型 400

25.2.2通行證布局——登機牌 401

25.2.3通行證布局——優惠券 401

25.2.4通行證布局——入場券 402

25.2.5通行證布局——通用卡 402

25.2.6通行證布局——購物卡 402

25.2.7通行證的顯示 403

25.3創建通行證 404

25.3.1基礎通行證標識 405

25.3.2通行證相關信息 405

25.3.3條形碼識別 406

25.3.4通行證視覺外觀信息 406

25.3.5通行證區域 407

25.4通行證的簽名和封裝 409

25.4.1創建PassTypeID 409

25.4.2創建通行證簽名證書 411

25.4.3創建清單 415

25.4.4通行證的簽名和封裝 415

25.4.5測試通行證 416

25.4.6具體應用中的通行證交互 417

25.5自動更新通行證 426

25.6小結 426

第26章調試和工具 427

26.1調試 427

26.1.1第一個計算機錯誤 427

26.1.2Xcode基礎調試 428

26.2斷點 430

26.2.1定制斷點 430

26.2.2標志斷點和異常斷點 431

26.2.3斷點范圍 432

26.3使用調試器 432

26.4工具 433

26.4.1工具界面 434

26.4.2TimeProfiler工具 436

26.4.3Leaks工具 438

26.4.4進一步了解調試工具 440

26.5小結 440

蘋果的iOS SDK提供了非常強大的框架集合,即使到現在為止,找到這些框架的詳細介紹和使用方法都
有一定困難。不過,借助本書的實用見解和經過驗證的代碼,你可以使用蘋果公司提供的這些框架來創建更有創意、更實用的應用,同時也會讓編寫代碼的過程更加快速、讓代碼更加可靠,也讓應用更加成功、更有市場。
Kyle Richter和Joe Keeley關注專業開發者每天都會用到的一些中高級技術,涉及的技術范圍從支持社交網絡到安全保障,從Core Data到iCloud,甚至有關Apple Watch的內容都包含在內。
作為一本便捷的模塊化參考書,幾乎每一章都會包含一個完整的Objective-C示例程序。另有一個跨章節的Game Center案例,也正好演示了多個iOS功能是如何進行組合的。
主要內容:
■ 添加類似物理效果的動畫和動作到UIView視圖
■ 使用Core Location確定設備的位置,顯示自定義地圖并實現地理圍欄
■ 在游戲和其他應用中加入帶有社交元素的排行榜功能
■ 訪問音樂和圖片集
■ 使用HealthKit實現帶有健康和健身功能的應用
■ 通過HomeKit實現家居智能化
■ 使用JSON在平臺間傳輸數據
■ 設置本地和遠程通知
■ 使用CloudKit實現數據的遠程存儲和同步
■ 實現訪問應用的extension功能
■ 輕松添加AirPrint功能
■ 在iOS 8和Yosemite設備之間提供連續的Handoff功能
■ 學習有效使用Core Data
■ 通過社交框架在應用中整合Twitter和Facebook
■ 使用Grand Central Dispatch機制處理多線程任務
■ 使用Keychain和Touch ID保護用戶數據
■ 定制集合視圖
■ 掌握大部分的手勢識別方法
■ 創建和發送“通行證”到Passbook
■ 調試工具的介紹及應用的優化
序 言
從2008年iPhone SDK(現在叫iOS SDK)的第一個測試版發布之日起,我就一直從事有關iOS的開發工作。那時我主要關注有關Mac桌面程序的開發,沒有過多考慮移動應用的開發。
如果你希望成為一個早期開發者,那你只能靠自己了。蘋果公司一貫的做法就是文檔非常少,并且由于訪問SDK需要NDA——秘密解碼環,因此最初你只能靠自己。你還不能在Google上或打開StackOverflow尋求到幫助,并且那時也一定沒有任何介紹SDK的書籍。
從蘋果發布最初的iPhone到現在已經走過漫漫8年時光(是的,真的只有8年)。iPhone SDK現在也被稱為iOS SDK。有關iOS開發的書籍和博客,以及播客和研討會層出不窮。從2009年起,WWDC大會變得更加難以參加,使得新老開發者在學習最新的平臺技術時變得越發困難。尤其對于iOS開發者,要學的新東西真的太多了。
作為一名iOS開發者,我遇到的最大的難題就是設法駕馭蘋果工具箱(kit)中所有的組件和框架。iOS HIG本能幫助到我們,不過它對于組件和框架的介紹還不夠詳細深入。現在我們確實能夠通過Google或者結合StackOverflow找到資料,不過這些資料一般都僅解釋了如何去做,很少探究為什么要那樣做,通常也無法做到很詳細地分析。
所以Kyle和Joe決定這樣做——給出所有這些框架的詳細介紹,讓讀者可以全面了解組成iOS SDK的核心框架。
很榮幸與Kyle和Joe相識多年。他們是我所見過的最聰明的開發者。這些年來他們都各自編寫了大量優秀的應用,并通過分享他們的經驗為iOS開發社區不斷貢獻自己的力量,不斷在研討會上發表出色演講,出版有關iOS開發的書籍。如果你有任何關于iOS的問題,有機會得到Kyle和Joe的解答將會是一件很美妙的事情。
不過讓他們如此優秀的原因還不僅是他們如百科全書一般的iOS開發知識,更在于他們愿意同遇到的每個人分享這些寶貴的知識。Kyle和Joe沒有競爭對手,有的只是朋友。
Kyle和Joe對于iOS SDK的深入理解貫穿本書,這也是我喜歡本書的原因之一。本書對每個組件都進行了詳細介紹,有些內容甚至在網上都很難找到。
我還非常喜歡本書的結構。讀者不需要從頭到尾閱讀。相反,你可能因為需要了解如何實現集合視圖而翻開本書,或者在想學習如何在后臺線程上運行任務時打開本書。在你需要本書時只需打開它,找到解決辦法,將其在自己的代碼中實現,然后再把它放回書架上直到下次再遇到困難。這就是該書能夠成為iOS開發者最重要的一本參考書籍的原因,不管你是初學者還是經驗豐富的老手。你可能覺得自己精通Core Location和MapKit,不過我覺得你在本書中一定能找到以前沒有接觸過的知識。
Kyle和Joe為人非常謙虛,從不驕傲自大。他們從來不認為自己比其他開發者優秀。他們將這種精神一點點灌輸到Mac和iOS開發者社區,使其成為一個開發者之間互助學習的大平臺,對這個行業的發展幫助很大。這本著作也是他們無私分享多年經驗和知識的另一個見證。
本書同Mark和LaMarche及Sadun的著作一樣,將始終伴隨在我手邊。當我在2008年第一次開始做iOS開發時我多希望有這么一本書。現在終于如愿以償,有了這本書就方便多了。

— Kirby Turner
White Peak Software公司首席程序員,Learning iPad Programming: A Hands-On Guide to Building iPad Apps, Second Edition(Addison-Wesley Professional)一書的作者,Cocoa開發者社區的管理者和研討會的熱衷者。


前 言
歡迎閱讀《精通iOS框架(第2版)》!
對于現在的讀者來說,幾乎有上百種“iOS入門教程”可供選擇,介紹特定專題的進階教程也數不勝數,例如專門介紹Core Data知識或者專門介紹有關數據安全方面的教程。不過令人感到困惑的是還沒有一種書能夠作為初學者向更高級內容前進的橋梁。
撰寫本書旨在向讀者介紹中高級的開發知識,因為這些看起來零散的框架很多都無法單獨出書。并不是這些框架不夠吸引人,而是因為它們還不能算是一個很大的專題,不需要過多篇幅的介紹。從如何使用JSON到如何訪問照片庫,這些框架都是專業iOS開發者每天都會用到的,不過市面上少有書籍介紹它們。
此外,對很多進階內容的討論也要考慮到面對的讀者可能是初學者。翻開一本500頁的Core Data教程也是需要勇氣的,不過還好本書第15章給出了一個簡捷的Core Data入門教程。其他有關類似的入門教程還包括調試和工具、TextKit、HomeKit、HealthKit和CloudKit等章節。
對于Game Center排行榜和成就榜、AirPrint、音樂庫、地址簿和Passbook的內容則給出詳細全面的講解。無論你是剛剛完成第一個iOS項目開發的初學者還是一名經驗豐富的資深開發人員,都可以從本書中找到對你有幫助的內容。
書中所有章節的內容都根據iOS 8版本進行了更新。如果你遇到有關兼容性的問題請聯系我們,我們會發布更新并進行修改。
pagetop