编辑推荐
畅销书作者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
2
精通iOS框架·第2版/移动开发经典丛书 下载 mobi epub pdf txt 电子书 格式