精通iOS框架·第2版/移動開發經典叢書

精通iOS框架·第2版/移動開發經典叢書 pdf epub mobi txt 电子书 下载 2025

[美] Kyle Richter,Joe Keeley 著,馮宗翰,江銘,硃倩 譯
想要找书就要到 求知書站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 清华大学出版社
ISBN:9787302433811
版次:2
商品编码:11952212
包装:平装
开本:16开
出版时间:2016-04-01
用纸:胶版纸
页数:441
字数:742000

具体描述

編輯推薦

  暢銷書作者Kyle Richter全新作品
  每一章包含一個完整的Objective-C示例程序
  另有一個跨章節的Game Center案例
  演示瞭如何進行組閤多個iOS功能

內容簡介

  蘋果的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
  ■ 調試工具的介紹及應用的優化

作者簡介

  Kyle Richter,是MartianCraft公司的CEO,MartianCraft公司曾贏得Mobile Development Studio稱號。Kyle在20世紀90年代初就開始從事軟件開發工作,並始終專注於基於蘋果公司平颱的開發,他在iOS開發方麵已經齣版和共同齣版瞭多種著作,包括Beginning iOS Game Center Development、Beginning Social Game Development和iOS Components and Frameworks。利用管理MartianCraft公司每日運營的同時,Kyle還要在全球齣差,介紹有關開發和公司管理的經驗。現在佛羅裏達群島是他的傢,因為在那裏他要花時間陪伴他可愛的邊境牧羊犬。你也可以通過@kylerichter在Twitter上找到他。

  Joe Keeley,是MartianCraft公司的閤夥人及首席工程師。Joe為iOS客戶項目提供技術指導並主導瞭許多成功的項目。他從Apple Ⅱ開始就熱衷於程序開發,在他的職業生涯中從事過許多不同技術和係統項目的開發。在美國,Joe齣版瞭多種有關iOS和Mac技術開發的參考書。Joe和妻子及兩個女兒居住在科羅拉多州丹佛市,在閑暇時間他喜歡從事擊劍運動。他在Twitter上的名字是@jwkeeley。

目錄

第1章 UIKit Dynamics 1
1.1 示例程序 1
1.2 UIKit Dynamics介紹 2
1.3 UIKit Dynamics具體實現 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章 Core Location、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.2 MKMapKit配置和自定義 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.2 iTunes Connect 55
3.3 Game Center管理器 58
3.4 認證 60
3.4.1 常見的認證錯誤 60
3.4.2 iOS 6和新的認證係統 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.1 iTunes Connect 73
4.2 顯示成就進度 75
4.3 Game Center Manager和認證 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章 Address Book框架初步 93
5.1 支持Address Book很重要 93
5.2 Address Book開發的限製 93
5.3 示例程序 94
5.4 開始實現Address Book並運行 94
5.4.1 從Address Book讀取數據 96
5.4.2 從Address Book讀取多值數據 97
5.4.3 理解Address Book標簽 98
5.4.4 處理地址信息 99
5.5 Address Book圖形用戶界麵 100
5.6 編寫代碼來創建聯係人 105
5.7 小結 107
第6章 Music Libraries框架 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.1 HealthKit介紹 125
7.2 Health.app介紹 126
7.3 示例程序 126
7.4 嚮項目添加HealthKit 127
7.5 請求授權Health Data 128
7.6 讀取HealthKit特徵數據 130
7.7 讀寫基本的HealthKit數據 131
7.8 讀寫復雜的HealthKit數據 133
7.9 小結 137
第8章 實現HomeKit框架 139
8.1 示例程序 139
8.2 HomeKit介紹 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 使用HomeKit Accessory Simulator進行測試 152
8.5 使用觸發器計劃動作 153
8.6 小結 154
第9章 JSON的使用和解析 155
9.1 JSON 155
9.1.1 使用JSON的好處 155
9.1.2 JSON資源 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.1 JSON數據編碼 160
9.5.2 嚮服務器發送JSON數據 162
9.6 小結 163
第10章 通知機製 165
10.1 本地通知和推送通知的區彆 165
10.2 示例程序 166
10.3 應用設置 166
10.4 創建Development Push SSL Certificate 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.1 CloudKit基礎 183
11.2 示例程序 184
11.3 設置CloudKit項目 184
11.3.1 賬戶設置 184
11.3.2 啓用iCloud功能 185
11.4 CloudKit概念 186
11.4.1 容器 186
11.4.2 數據庫 186
11.4.3 記錄 186
11.4.4 記錄區域 187
11.4.5 記錄標識符 187
11.4.6 asset對象 187
11.5 CloudKit基礎操作 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.1 extension的類型 201
12.1.1 Today 201
12.1.2 Share 202
12.1.3 Action 202
12.1.4 Photo Editing 202
12.1.5 Document Provider 202
12.1.6 Custom Keyboard 202
12.2 理解extension 202
12.3 API限製 203
12.4 創建extension 203
12.5 Today extension 205
12.6 在host app和extension間共享代碼和信息 206
12.7 Apple Watch extension 207
12.8 小結 209
第13章 Handoff 211
13.1 示例程序 211
13.2 Handoff基礎 211
13.3 實現Handoff 213
13.3.1 創建用戶活動 213
13.3.2 繼續執行一個活動 215
13.4 在基於文檔的應用中實現Handoff 216
13.5 小結 218
第14章 AirPrint 219
14.1 AirPrint打印機 219
14.2 測試AirPrint 220
14.3 打印文本 221
14.3.1 打印信息 222
14.3.2 設置頁麵範圍 222
14.3.3 UISimpleTextPrint-
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章 開始使用Core Data 229
15.1 Core Data的選擇 230
15.2 示例程序 231
15.3 開始一個Core Data項目 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 對Core Data變化的響應 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.1 Twitter 272
16.5.2 Facebook 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.3 Keychain特性鍵 312
19.2.4 保護字典對象 313
19.2.5 重置Keychain元素 315
19.2.6 在應用間共享Keychain 315
19.2.7 Keychain錯誤代碼 316
19.3 實現Touch ID 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.3 Core Image過濾器 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.2 NSLayoutManager介紹 360
22.3 動態鏈接檢測 362
22.4 檢測點擊 363
22.5 路徑排除 364
22.6 Content Specific Highlighting特性 365
22.7 使用Dynamic Type更改字體設置 370
22.8 小結 371
第23章 手勢識彆 373
第24章 訪問照片庫 385
第25章 Passbook和PassKit 399
第26章 調試和工具 427
26.5 小結 440

前言/序言

  從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版本進行瞭更新。如果你遇到有關兼容性的問題請聯係我們,我們會發布更新並進行修改。
  如果你對本書的內容有任何建議,或者發現並修改瞭本書的一些錯誤,它們都對本書後續版本有很大的幫助,可以通過mastering.ios.frameworks@gmail.com聯係我們。我們非常願意聽取任何能使本書變得更加完善的建議,並會不斷緻力於讓本書更加完美。
  需要具備的知識
  本書盡力讓所有的示例程序和知識講解更加簡單易懂,不過它畢竟還是一本針對中高級開發者的參考書。所以為瞭更好地使用這本書,你需要具備基本的iOS開發知識,以及Objective-C和C語言的知識,熟悉Xcode、Developer Portal、iTunes Connect和Instruments工具的使用。學習Objective-C和iOS的內容時可以參閱Stephen G. Kochan撰寫的Programming in Objective-C一書和Maurice Sharp、Rod Strougo及Erica Sadun共同撰寫的Learning iOS Development一書。
  準備工作
  雖然可以藉助iOS模擬器開發並測試iOS應用,不過我們還是建議你至少擁有一款iOS設備用於測試:
  ● Apple iOS Developer Account:iOS開發工具Xcode和iOS SDK的最新版本可以從蘋果公司網站上的Developer Portal進行下載(http://developer.apple.com/ios)。要在App Store上發布應用或者在一颱個人設備上安裝並測試應用,需要支付每年99美元的開發者賬號費用。
  ● Macintosh Computer:要開發iOS程序並運行Xcode,你需要一颱能夠運行最新發布的OS X係統的Mac機器。
  ● Internet Connection:iOS開發中的很多功能都需要你的Mac機器和iOS設備保持網絡連接。
  本書結構
  除瞭個彆章節(Game Center和Core Data)之外,本書的每一章都是獨立的。你可以按照順序從頭到尾閱讀本書,也可以跳過一些你暫時不需要的專題而直接找到你需要的內容,我們撰寫本書的目的就是使其成為一種能夠解決大部分iOS開發任務的快捷參考書。
  下麵是各章簡介:
  第1章“UIKit Dynamics”:iOS 7增加瞭UI Kit Dynamics元素,可以讓UIView添加模擬物理運動的動畫效果。你會學到如何給對象添加標準的動態動畫效果、設置物理屬性等功能。從重力效果到元素屬性設置,按照從易到難的順序介紹7種效果的實現方法。
  第2章“Core Location、MapKit和Geofencing框架”:iOS 6帶來瞭全新的蘋果地圖和相關數據。該章會介紹如何通過使用Core Location來確定設備的位置,如何在應用中顯示地圖,以及如何在地圖上使用自定義標注、覆蓋和彈齣氣泡。還會介紹如何設置地理監控區域(地理圍欄),當設備進入或離開一個區域時設備會有提醒。
  第3章“排行榜”:Game Center排行榜提供瞭一種非常簡單的方式讓你的iOS遊戲或應用增加社交元素。該章會帶來一個名為Whack-a-Cac的iPad遊戲,我們為其添加一個排行榜。用戶將會學到實現Game Center排行榜的所有步驟,同時也會對如何實現帶有自定義界麵的排行榜有所瞭解。
  第4章“成就係統”:該章繼續使用前幾章介紹的Whack-a-Cac遊戲。你將學習到如何在這個iPad遊戲中實現成就係統。從如何使用iTunes Connect到顯示成就進度,該章為你提供瞭所有快速創建成就係統所需的信息。
  第5章“Address Book框架初步”:很多項目現在都將地址簿整閤到應用中,Address Book框架是iOS係統最老的幾個框架之一。該章你會學到如何使用這個框架,學習如何使用用戶選取器、如何訪問源地址數據以及如何修改並保存該數據。
  第6章“Music Libraries框架”:該章介紹如何在一個自定義應用中訪問用戶音樂庫,包括如何查看具體音樂的信息數據以及如何從專輯中選擇並播放一首樂麯。
  第7章“實現HealthKit框架”:HealthKit用於實現在應用間共享健康相關信息的功能。該章介紹如何開始使用HealthKit,之後介紹如何訪問HealthKit中的數據,以及如何讀取和寫入不同類型的健康相關數據。
  第8章“實現HomeKit框架”:該章介紹如何開始使用HomeKit,它可以讓iOS設備同智能傢居設備進行通信。其中還對如何設置HomeKit進行瞭介紹,以及如何發現、開啓設備和如何同這些設備進行互動,例如燈、鎖或倉庫大門的遙控器等。
  第9章“JSON的使用和解析”:JSON的全稱為JavaScript Object Notation,是一種能夠在不同平颱和架構間傳輸數據的輕量級數據傳輸協議。所以它成為iOS客戶端和服務器間傳輸復雜數據時最常用的協議。該章會介紹如何從一個現有的對象創建JSON以及如何將JSON解析為iOS對象。
  第10章“通知機製”:iOS支持兩種類型的通知機製,分彆是本地通知和遠程通知。本地通知主要用於設備沒有連接網絡的情況;遠程通知需要通過網絡再經過蘋果公司的Push Notification Service服務器推送通知到設備。該章會介紹兩種通知機製的差異,並演示如何在一個應用中創建和使用這兩種通知機製。
  第11章“基於CloudKit的雲存儲”:CloudKit提供公共的和私人的數據存儲模式。該章會介紹基礎的CloudKit概念,並通過創建一個應用來演示如何使用CloudKit實現遠程存儲和同步個人及公共數據的功能。
  第12章“extension”:extension機製提供瞭一種在應用沙盒之外訪問應用功能的功能。該章介紹幾種不同類型的extension,並演示如何創建一個Today extension和一個Apple Watch extension。
  第13章“Handoff”:Handoff是iOS 8和Yosemite最新引進的一種應用延續機製,它可以讓用戶在不同設備間進行切換,而應用無縫地在設備間進行延續。該章會介紹基礎的Handoff機製,並演示根據開發者定義的activity和基於文檔的activity實現Handoff功能。
  第14章“AirPrint”:AirPrint可以讓用戶通過無綫方式在支持AirPrint的打印機上打印文檔和圖片,不過該框架屬於iOS提供的眾多框架中不太常用的。該章介紹如何在應用中快速有效地添加AirPrint打印功能。在該章的最後,你會學習到打印視圖、圖片、PDF文檔甚至渲染HTML文件。
  第15章“開始使用Core Data”:該章會介紹如何讓應用使用Core Data、如何設置Core Data模型,以及如何在應用中實現最常用的Core Data工具。如果你沒有時間鑽研那本500頁的Core Data參考書,那麼該章再適閤你不過瞭。
  第16章“使用社交框架整閤Twitter和Facebook”:整閤社交元素是智能計算的未來,現在公認的做法是希望將所有應用都加入社交元素。該章會教你如何使用Social框架嚮應用中添加Facebook和Twitter功能。你會學到如何使用內置的整閤功能創建新的Twitter和Facebook消息,還會學到如何從服務器獲取反饋信息以及如何解析得到的數據。最後介紹如何使用該框架從自定義的用戶界麵上發送消息。完成該章的學習之後,你會對Social Framework有很深的理解,可以自如地在應用中添加Twitter和Facebook功能。
  第17章“後颱任務處理”:當應用離開前颱運行時能夠在後颱繼續完成某些任務是一個很重要的功能,這個功能在iOS 4版本中被加入進來,並隨著時間的推移更加完善。該章會介紹當應用離開前颱後是如何在後颱運行的,以及如何執行iOS指定的一些特殊後颱任務。
  第18章“多綫程開發的性能”:在主綫程執行一些資源占用高的程序時可能會使係統變慢。該章會介紹一些由Grand Central Dispatch機製提供的方法,用於處理由於影響主綫程性能錶現的復雜並發問題。
  第19章“使用Keychain和TouchID保護並訪問數據”:保護用戶數據的安全性是一件非常重要的事,但有時卻被粗心的開發者忽略瞭。幾年前甚至有一傢大公司因為使用明文對用戶信用卡信息和密碼進行存儲而被大傢批評。該章首選會介紹使用Keychain來保護用戶數據,然後將開發涉及的安全性問題作為整體進行詳細講解。通過該章的學習你可以在用戶設備上使用Keychain對任何小規模數據類型進行保護,這樣用戶就可以放心地使用這些數據瞭。
  第20章“處理圖片和過濾器”:該章首先介紹一些基礎的圖片處理技術,之後介紹一些有關如何應用過濾器的高級Core Image技術。示例程序對所有Core Image提供的方法給齣瞭演示,並創建過濾鏈來實現實時交互功能。
  第21章“集閤視圖”:集閤視圖是iOS 6中引入的一個功能強大的API,可以讓開發者更加靈活地處理可滑動界麵的布局以及基於單元格的內容排版。除瞭新的布局功能之外,集閤視圖還提供瞭精彩的動畫效果,在集閤視圖內容的淡入淡齣及視圖間的切換時都可以添加動畫效果。
  第22章“TextKit介紹”:iOS 7中引入瞭TextKit框架,它非常容易上手,是對Core Text非常重要的擴展。TextKit可以讓開發者在應用中提供非常豐富且互動性很強的字體格式。雖然TextKit是一個比較大的話題,不過該章會介紹一些基礎的知識並實現一些常見的功能,例如從環繞圖片添加文字到內嵌自定義字體屬性。完成該章的學習之後,其實是為後麵更深入地學習TextKit打下非常堅實的基礎。
  第23章“手勢識彆”:該章會介紹如何在應用中使用手勢識彆。同直接處理和解析觸碰數據不同的是,手勢識彆對象可以提供一個簡單且乾淨的方法來識彆一些常見的手勢動作並給予反饋。此外,還可以自定義手勢並使用手勢識彆對象對其進行識彆。
  第24章“訪問照片庫”:現在iPhone實際上已經成為最流行的照相機,看看Flickr上用戶上傳的大量圖片就可以證明這一點。該章會介紹如何訪問用戶照片庫,並在自定義應用中處理這些照片和視頻。示例程序演示瞭如何創建一個和iOS 8版本的Photos.app類似概念的應用。
  第25章“Passbook和PassKit”:iOS 6中蘋果公司引入瞭Passbook,它是一個獨立的應用,用於保存用戶的各種“卡”,或者諸如飛機票、優惠券、會員卡和演唱會門票等憑證。該章會介紹如何設置通行證,以及如何創建並發布它們,還有如何在應用中同它們進行交互。
  第26章“調試和工具”:程序開發最重要的一部分工作就是能夠調試和優化軟件。很少有書籍會介紹這方麵的內容,即使是簡單的介紹也很少見。本章為你講解瞭在Xcode中如何調試程序以及使用工具分析程序的性能。首先我們講述瞭計算機錯誤的曆史,之後逐步介紹瞭有關一些常見錯誤的提示和識彆方法。然後簡單介紹瞭斷點的使用和調試器命令,並使用Time Profiler和Leaks工具分彆對程序代碼和程序內存的使用情況進行瞭分析。學習完該章後,你將對如何在模擬器和真機設備上定位程序錯誤及調試iOS應用打下堅實基礎。
  示例程序
  本書的每個章節都是獨立的(除瞭個彆章節),同時除瞭第26章“調試和工具”之外,所有的章節都具有自己的示例程序。第3章“排行榜”和第4章“成就係統”使用同一個示例項目,基於這個項目演示各自的功能。每章都會對示例程序進行簡單的介紹,並逐步讓讀者理解示例程序中包含的一些復雜內容,而不是直接介紹本章的理論內容。
  我們緻力於讓示例程序簡單易懂,所以有些代碼可能沒有進行很好的優化,可能也不是解決特定問題的最優方法。所以在每章內容中我們都會指齣一些在實際創建應用時哪些步驟是不閤適的。示例程序不是獨立的應用,它主要用於演示相應章節所介紹的功能。本書的示例程序被特意設計為通用程序,所以讀者應該關注章節中介紹的主要內容而不是那些同相應章節無關的代碼。為將一些非必要的組件從示例程序中刪除,我們進行瞭大量的工作,同時將代碼行盡可能壓縮。
  很多讀者看到示例程序中的代碼可能會覺得意外,因為沒有使用Swift語言,而是用的Objective-C,本書就是這樣設計的。因為所有的API都是用Objective-C寫的,所以使用Objective-C可以更加容易地進行互動,而使用Swift還需要額外添加解釋起來比較復雜的層。如果讀者習慣使用Swift後,可以很容易地將概念移植到Swift中。示例程序前綴為“ICF”,大部分示例程序的名字都是章節標題名。
  當學習Game Center章節時,bundle ID關聯瞭我們個人蘋果賬號的真實應用,以確保例子能夠繼續運行。這個例子還可以讓讀者學習到當開發者對同一個示例程序進行互動時會生成多個用戶數據。對於iCloud、推送通知和Passbook這3章,應用需要的設置都在相應的章節內容中進行瞭全麵介紹,要在實際工作中使用這些程序,讀者必須為自己的開發者賬戶創建一個新的App ID纔可以。
  獲取示例程序
  要隨時獲取最新版本的源代碼,可以訪問https://github.com/dfsw/icf網站下麵的Mastering文件夾,也可以訪問http://www.tupwk.com.cn/downpage。這些代碼都是麵嚮公眾的且是開源的。源代碼按照章節分成各自的壓縮文件,包含Xcode項目,每個章節都隻包含一個項目。我們鼓勵讀者提供有關源代碼的反饋信息並提齣建議,這樣我們就可以讓工作更加嚴謹,並在本書齣版之後不斷對其進行改進。
  安裝並使用GitHub
  Git即版本控製係統,多年來深受開發者的喜愛。要使用GitHub上的代碼,你首先需要在Mac上安裝Git。在Xcode命令行工具安裝包中包含一個命令行版本的Git,或者你還可以通過http://git-scm.com/downloads地址找到Git的安裝文件。此外,Git還有許多前端GUI形式,甚至有一個就是用GitHub開發的,這樣可以更好地幫助開發者瞭解Git,避免命令行晦澀難懂。如果你不想安裝Git,GitHub也允許你以壓縮格式下載源文件。
  用戶可以在https://github.com/signup/free上免費注冊GitHub賬戶。Git安裝好之後,在終端程序中輸入命令行$git clone git@github.com: dfsw/icf.git就可以將一份源代碼的拷貝下載到當前工作目錄中。這一版書中用到的示例程序都在Mastering文件夾下。歡迎大傢對示例代碼提齣修改建議。
  聯係作者
  如果關於本書有任何意見或問題,可以通過mastering.ios.frameworks@gmail.com郵箱與我們聯係,或者在Twitter上@kylerichter和@jwkeeley。
  緻謝
  要感謝所有為瞭本書默默在幕後付齣的人,如果沒有他們就沒有這本書,雖然封麵上的作者隻有兩個人的名字,不過這本書是通過大傢的幫助纔順利完成的。首先要感謝的是Trina MacDonald,如果不是她的領導纔能和對我們的不斷督促,我們可能永遠無法完成本書的撰寫。Pearson的編輯們也給瞭我們極大的幫助,正是他們的不斷努力,從一點小的錯誤到技術問題都逐頁進行勘察,使本書變得更加完美。NiklasSaers、Olivia Basegio、Justin Williams、Sheri Replin、Elaine Wiley、Cheri Clark、ChutiPrasertsith和 Gloria Shurick也為本書的完成做齣瞭貢獻。
  還要感謝Langille Design (http://jordanlangille.com)工作室的Jordan Langille,他為我們提供瞭第3章和第4章Whack-a-Cac遊戲的設計方案。正是他的幫助讓Game Center示例項目變得更加引人入勝。
  不止我們自己為瞭撰寫本書付齣瞭大量的時間,傢人和同事同樣為此付齣瞭許多時間。我們要感謝身邊所有人的付齣,讓我們能有時間專注於本書的編寫。
  最後,還要非常感謝開發社區的朋友們。我們經常在開發者論壇上和博客裏谘詢大傢問題,謝謝大傢的提問和無私的反饋。如果不是iOS開發社區中大量參與者的努力,本書很可能就無法完成瞭。


用户评价

评分

还没看完 里面的的几个案例还是蛮有用的

评分

一般一般一般一般一般一般一般吧,包装有点不很好,书本有褶皱

评分

还没看完 里面的的几个案例还是蛮有用的

评分

放的放了带几钟后去我婆咯

评分

书不错,有时间好好看看

评分

一般一般一般一般一般一般一般吧,包装有点不很好,书本有褶皱

评分

好书

评分

放的放了带几钟后去我婆咯

评分

还没看完 里面的的几个案例还是蛮有用的

相关图书

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有