iOS编程实战
iOS编程实战封面图

iOS编程实战

(美) 纳皮尔 (Napier,R.) , (美) 库玛 (Kumar,M.) , 著

出版社:人民邮电出版社

年代:2014

定价:79.0

书籍简介:

本书是最受开发者喜爱的iOS进阶图书,书中包含大量代码示例,主线是围绕如何设计、编写和维护优秀的iOS应用。开发者可从本书学到大量关于设计模式、编写可重用代码以及语法和新框架的知识。新版进行了大幅修订新增6章阐述iOS新特性。

作者介绍:

Rob Napier 2005年开始从事Mac开发,iPhone SDK发布时就开始开发iPhone应用。他是The Daily、PandoraBoy和Cisco Mobile的作者,Stack Overflow的主要贡献者,并维护技术博客Cocoaphony(cocoaphony.com),主要关注组网、性能、安全和MVC模式。   Mugunth Kumar 独立iOS开发者,新加坡南洋理工大学硕士研究生,主修信息系统。其个人博客(blog.mugunthkumar.com)主要发表移动开发、软件可用性、用户体验和iOS相关的文章。从事iOS开发前,他在财富500强企业通用电气和霍尼韦尔担任Windows和.NET平台软件顾问。他关注的领域包括编程方法论(面向对象和函数式编程)、移动开发以及可用性设计。

书籍目录:

第一部分 全新功能

第1章 全新的系统 2

1.1 新的UI 2

1.2 UIKit Dynamics和Motion Effects 3

1.3 自定义过渡效果 4

1.4 新的多任务模式 4

1.5 Text Kit 5

1.6 动态字体 5

1.7 MapKit集成 5

1.8 SpriteKit 5

1.9 LLVM 5 5

1.10 Xcode 5 7

1.10.1 nib文件格式的变化 7

1.10.2 源代码控制集成 7

1.10.3 自动配置 7

1.10.4 对调试导航面板的改进 8

1.10.5 文档浏览器 8

1.10.6 Asset Catalog 9

1.10.7 测试导航面板 9

1.10.8 持续集成 10

1.10.9 Auto Layout改进 10

1.10.10 iOS模拟器 10

1.11 其他 10

1.12 小结 11

1.13 扩展阅读 11

第2章 世界是平的:新的UI范式 12

2.1 清晰、依从和层次 12

2.2 动画、动画、动画 12

2.2.1 UIKit Dynamics 13

2.2.2 UIMotionEffect 13

2.3 着色 14

2.4 用半透明实现层次和上下文 14

2.5 动态字体 15

2.6 自定义过渡效果 16

2.7 把应用过渡(迁移)到iOS 7 17

2.7.1 UIKit变化 17

2.7.2 自定义设计 17

2.7.3 支持iOS 6 17

2.8 小结 20

2.9 扩展阅读 20

第二部分 充分利用日常工具

第3章 你可能不知道的 22

3.1 命名最佳实践 22

3.1.1 自动变量 22

3.1.2 方法 22

3.2 属性和实例变量最佳实践 23

3.3 分类 24

3.4 关联引用 26

3.5 弱引用容器 27

3.6 NSCache 28

3.7 NSURLComponents 28

3.8 CFStringTransform 29

3.9 instancetype 30

3.10 Base64和百分号编码 31

3.11 -[NSArray firstObject] 31

3.12 小结 31

3.13 扩展阅读 32

第4章 故事板及自定义切换效果 33

4.1 初识故事板 33

4.1.1 实例化故事板 34

4.1.2 加载故事板中的视图控制器 34

4.1.3 联线 34

4.1.4 使用故事板来实现表视图 36

4.2 自定义切换效果 37

4.2.1 优点 39

4.2.2 白璧微瑕——合并冲突 39

4.3 小结 39

4.4 扩展阅读 39

第5章 掌握集合视图 41

5.1 集合视图 41

5.1.1 类与协议 41

5.1.2 示例 42

5.2 用集合视图自定义布局实现高级定制 49

5.2.1 石工布局 50

5.2.2 封面浏览布局 55

5.3 小结 56

5.4 扩展阅读 56

第6章 使用自动布局 58

6.1 Xcode 4的自动布局 58

6.2 了解自动布局 59

6.3 Xcode 5中自动布局的新特性 59

6.3.1 在Xcode 5中使用自动布局 61

6.3.2 固有尺寸 62

6.3.3 固有尺寸和本地化 63

6.3.4 设计时和运行时布局 63

6.3.5 自动更新边框 64

6.3.6 顶部和底部布局引导 65

6.3.7 辅助编辑器中的布局预览 65

6.3.8 在设计时调试自动布局 65

6.3.9 在自动布局中使用滚动视图 66

6.3.10 使用自动布局和边框 66

6.3.11 可视格式化语言 66

6.3.12 可视格式化语言的缺点 67

6.3.13 调试布局错误 68

6.4 小结 69

6.5 扩展阅读 69

第7章 更完善的自定义绘图 71

7.1 iOS的不同绘图系统 71

7.2 UIKit和视图绘图周期 72

7.3 视图绘制与视图布局 73

7.4 自定义视图绘制 74

7.4.1 通过UIKit绘图 74

7.4.2 路径 75

7.4.3 理解坐标系 77

7.4.4 重新调整大小以及内容模式 79

7.4.5 变形 80

7.4.6 通过Core Graphics进行绘制 82

7.4.7 混用UIKit与Core Graphics 85

7.4.8 管理图形上下文 85

7.5 优化UIView绘制 87

7.5.1 避免绘图 87

7.5.2 缓存与后台绘制 88

7.5.3 自定义绘图与预渲染 88

7.5.4 像素对齐与模糊文本 89

7.5.5 透明、不透明与隐藏 90

7.6 小结 90

7.7 扩展阅读 91

第8章 Core Animation 92

8.1 视图动画 92

8.2 管理用户交互 94

8.3 图层绘制 94

8.3.1 直接设置内容 96

8.3.2 实现display方法 97

8.3.3 自定义绘图 97

8.3.4 在自己的上下文中绘图 99

8.4 移动对象 99

8.4.1 隐式动画 100

8.4.2 显式动画 101

8.4.3 模型与表示 101

8.4.4 关于定时 103

8.5 三维动画 105

8.6 美化图层 108

8.7 用动作实现自动动画 108

8.8 为自定义属性添加动画 110

8.9 Core Animation与线程 111

8.10 小结 111

8.11 扩展阅读 111

第9章 多任务 113

9.1 多任务和运行循环简介 113

9.2 以操作为中心的多任务开发 114

9.3 用GCD实现多任务 118

9.3.1 分派队列简介 119

9.3.2 用分派屏障创建同步点 120

9.3.3 分派组 121

9.4 小结 121

9.5 扩展阅读 121

第三部分 选择工具

第10章 创建(Core)Foundation框架 124

10.1 Core Foundation类型 124

10.2 命名和内存管理 125

10.3 分配器 126

10.4 内省 126

10.5 字符串和数据 127

10.5.1 常量字符串 127

10.5.2 创建字符串 128

10.5.3 转换为C字符串 129

10.5.4 其他字符串操作符 131

10.5.5 字符串的支持存储 131

10.5.6 CFData 132

10.6 容器类型 132

10.6.1 CFArray 133

10.6.2 CFDictionary 133

10.6.3 CFSet和CFBag 134

10.6.4 其他容器类型 134

10.6.5 回调函数 134

10.7 自由桥接 136

10.8 小结 139

10.9 扩展阅读 139

第11章 幕后制作:后台处理 140

11.1 后台运行最佳实践:能力越大责任越大 140

11.2 iOS 7中后台运行的重要变化 142

11.3 用NSURLSession访问网络 142

11.3.1 会话配置 143

11.3.2 任务 143

11.3.3 后台传输 144

11.4 周期性拉取和自适应多任务 146

11.5 后台唤醒 146

11.6 状态恢复系统 147

11.6.1 测试状态恢复系统 147

11.6.2 选择性加入 148

11.6.3 应用启动过程的变化 149

11.6.4 状态恢复标识符 149

11.6.5 状态编码器与状态解码器 149

11.6.6 表视图和集合视图 153

11.7 小结 154

11.8 扩展阅读 154

第12章 使用REST服务 156

12.1 REST简介 157

12.2 选择数据交换格式 157

12.2.1 在iOS中解析XML 157

12.2.2 在iOS中解析JSON 158

12.2.3 XML与JSON 159

12.2.4 模型版本化 160

12.3 假想的Web服务 160

12.4 重要提醒 161

12.5 RESTfulEngine架构(iHotelApp示例代码) 161

12.5.1 NSURLConnection与第三方框架 161

12.5.2 创建RESTfulEngine 162

12.5.3 使用访问令牌对API调用进行认证 165

12.5.4 在RESTfulEngine.m中覆盖相关方法以添加自定义认证头部 165

12.5.5 取消请求 166

12.5.6 请求响应 166

12.5.7 对JSON数据进行键值编码 167

12.5.8 列表页面的JSON对象与详细页面的JSON对象 169

12.5.9 嵌套JSON对象 169

12.5.10 少即是多 171

12.5.11 错误处理 171

12.5.12 本地化 173

12.5.13 使用分类处理其他格式 173

12.5.14 在iOS中提升性能的小技巧 174

12.6 缓存 174

12.7 需要离线支持的原因 174

12.8 缓存策略 175

12.8.1 存储缓存 175

12.8.2 缓存版本和失效 178

12.9 数据模型缓存 178

12.10 缓存版本控制 182

12.11 创建内存缓存 183

12.11.1 为AppCache设计内存缓存 184

12.11.2 处理内存警告 185

12.11.3 处理结束和进入后台通知 186

12.12 创建URL缓存 186

12.12.1 过期模型 187

12.12.2 验证模型 187

12.12.3 示例 187

12.12.4 用URL缓存来缓存图片 188

12.13 小结 188

12.14 扩展阅读 188

第13章 充分利用蓝牙设备 190

13.1 蓝牙历史 190

13.2 为什么选择低功耗蓝牙 191

13.3 蓝牙SDK 191

13.3.1 服务器 191

13.3.2 客户端 191

13.4 类和协议 191

13.5 使用蓝牙设备 192

13.5.1 通过扫描寻找服务 192

13.5.2 连接设备 194

13.5.3 直接获取外围设备 194

13.5.4 发现服务 194

13.5.5 发现特性 195

13.6 创建自己的外围设备 197

13.6.1 广播服务 197

13.6.2 常见场景 200

13.7 在后台运行 200

13.7.1 后台模式 200

13.7.2 电量考虑 200

13.7.3 状态保存和恢复 200

13.8 小结 201

13.9 扩展阅读 201

第14章 通过安全服务巩固系统安全 203

14.1 理解iOS沙盒 203

14.2 保证网络通信的安全 204

14.2.1 证书工作原理 205

14.2.2 检验证书的有效性 207

14.2.3 判断证书的可信度 210

14.3 使用文件保护 211

14.4 使用钥匙串 213

14.5 使用加密 216

14.5.1 AES概要 217

14.5.2 使用PBKDF2将密码转换成密钥 217

14.5.3 AES模式和填充 219

14.5.4 初始化向量 220

14.5.5 使用HMAC进行认证 221

14.5.6 错误的密码 222

14.5.7 组合使用加密和压缩 222

14.6 小结 222

14.7 扩展阅读 222

第15章 在多个苹果平台和设备及64位体系结构上运行应用 224

15.1 开发多平台应用 225

15.1.1 可配置的目标设置:Base SDK和Deployment Target 225

15.1.2 支持多个SDK时的注意事项:框架、类和方法 225

15.1.3 检查框架、类和方法的可用性 227

15.2 检测设备的功能 228

15.2.1 检测设备及判断功能 228

15.2.2 检测硬件和传感器 229

15.3 应用内发送Email和短信 233

15.4 支持新的4英寸设备族系 233

15.4.1 Cocoa自动布局 235

15.4.2 代码中固化屏幕尺寸 235

15.4.3 iPhone 5s和新的64位指令集 235

15.5 向iOS 7迁移 236

15.5.1 自动布局 236

15.5.2 支持iOS 6 236

15.5.3 应用图标 237

15.5.4 边界按钮 237

15.5.5 着色 237

15.5.6 图片更新 237

15.6 向64位体系结构迁移 238

15.6.1 数据溢出 238

15.6.2 序列化数据 239

15.6.3 针对64位体系结构的条件编译 239

15.7 UIRequiredDeviceCapabilities 239

15.8 小结 240

15.9 扩展阅读 240

第16章 国际化和本地化 242

16.1 什么是本地化 242

16.2 本地化字符串 243

16.3 对未本地化的字符串进行审查 244

16.4 格式化数字和日期 245

16.5 nib文件和Base Internationalization 248

16.6 本地化复杂字符串 248

16.7 小结 250

16.8 扩展阅读 251

第17章 调试 252

17.1 LLDB 252

17.2 使用LLDB进行调试 252

17.2.1 dSYM文件 253

17.2.2 符号化 254

17.3 断点 255

17.4 观察点 258

17.5 LLDB控制台 259

17.6 NSZombieEnabled标志 262

17.7 不同的崩溃类型 263

17.7.1 EXC_BAD_ACCESS 263

17.7.2 SIGSEGV 263

17.7.3 SIGBUS 264

17.7.4 SIGTRAP 264

17.7.5 EXC_ARITHMETIC 264

17.7.6 SIGILL 264

17.7.7 SIGABRT 264

17.7.8 看门狗超时 265

17.7.9 自定义错误信号处理程序 265

17.8 断言 265

17.9 异常 267

17.10 收集崩溃报告 268

17.11 第三方崩溃报告服务 269

17.12 小结 270

17.13 扩展阅读 270

第18章 性能调优 272

18.1 性能思维模式 272

18.1.1 指导方针一:产品是为了取悦用户才存在的 272

18.1.2 指导方针二:设备是为了方便用户而存在的 272

18.1.3 指导方针三:做到极致 272

18.1.4 指导方针四:用户的感知才是实际的 273

18.1.5 指导方针五:关注能带来大收益的方面 273

18.2 欢迎走入Instruments的世界 273

18.3 查找内存问题 275

18.4 查找CPU问题 279

18.4.1 Accelerate框架 282

18.4.2 GLKit 283

18.4.3 编译器优化 283

18.4.4 链接器优化 284

18.5 绘图性能 284

18.6 优化磁盘访问和网络访问 286

18.7 小结 286

18.8 扩展阅读 286

第四部分 超越极限

第19章 近乎物理效果:UIKit动力学 290

19.1 动画类、行为和动力项 290

19.2 UIKit“物理” 291

19.3 内置行为 292

19.3.1 迅速移动 292

19.3.2 附着 292

19.3.3 推力 293

19.3.4 重力 294

19.3.5 碰撞 294

19.3.6 动力项 295

19.4 行为层次结构 295

19.5 自定义操作 295

19.6 实战:一个“撕开”视图 296

19.6.1 拖拽视图 296

19.6.2 撕开该视图 297

19.6.3 添加额外效果 300

19.7 多个动力学动画类 301

19.8 与UICollectionView交互 302

19.9 小结 305

19.10 扩展阅读 305

第20章 魔幻的自定义过渡 306

20.1 iOS 7中的自定义过渡 306

20.2 过渡协调器 307

20.3 集合视图和布局过渡 308

20.4 使用故事板和自定义联线的自定义视图控制器过渡 308

20.5 自定义视图控制器过渡:iOS 7风格 308

20.6 使用iOS 7 SDK的交互式自定义过渡 310

20.7 小结 312

20.8 扩展阅读 313

第21章 精妙的文本布局 314

21.1 理解富文本 314

21.1.1 字符与字形 314

21.1.2 理解字体 316

21.1.3 段落样式 316

21.2 属性化字符串 317

21.2.1 用字体描述符选择字体 318

21.2.2 设置段落样式 319

21.2.3 HTML 319

21.2.4 简化属性化字符串的使用 320

21.3 动态字体 321

21.4 Text Kit 322

21.4.1 Text Kit的组件 323

21.4.2 多容器布局 324

21.4.3 排除路径 325

21.4.4 继承文本容器 326

21.4.5 继承文本存储 327

21.4.6 继承布局管理器 331

21.4.7 针对字形的布局 334

21.5 Core Text 337

21.5.1 用CTFramesetter进行简单的布局 337

21.5.2 为非连续路径创建框架 338

21.5.3 排版器、文本行、连续文本和字形 340

21.6 小结 340

21.7 扩展阅读 341

第22章 Cocoa的大招:键值编码和观察 342

22.1 键值编码 342

22.1.1 用KVC赋值 344

22.1.2 用键路径遍历属性 345

22.1.3 KVC和容器类 345

22.1.4 KVC和字典 347

22.1.5 KVC和非对象 347

22.1.6 用KVC实现高阶消息传递 347

22.1.7 容器操作符 347

22.2 键值观察 348

22.2.1 KVO和容器类 350

22.2.2 KVO是如何实现的 351

22.3 KVO的权衡 351

22.4 小结 352

22.5 扩展阅读 353

第23章 超越队列:GCD高级功能 354

23.1 信号量 354

23.2 分派源 356

23.3 定时器源 358

23.4 单次分派 358

23.5 队列关联数据 359

23.6 分派数据和分派I/O 362

23.7 小结 367

23.8 扩展阅读 367

第24章 深度解析Objective-C 368

24.1 理解类和对象 368

24.2 使用方法和属性 370

24.3 使用方法签名和调用 372

24.4 消息传递如何工作 378

24.4.1 动态实现 378

24.4.2 快速转发 380

24.4.3 普通转发 383

24.4.4 转发失败 384

24.4.5 各种版本的objc_msgSend 384

24.5 方法混写 385

24.6 ISA混写 387

24.7 方法混写与ISA混写 388

24.8 小结 389

24.9 扩展阅读 389

内容摘要:

《iOS编程实战》是受开发者喜爱的iOS进阶图书。它包含大量代码示例,主线是围绕如何设计、编写和维护的iOS应用。开发者可从《iOS编程实战》学到大量关于设计模式、编写可重用代码以及语法与新框架的知识。
  相对上一版,新版进行了大幅修订,新增6章阐述iOS 7新特性,并对大部分内容进行了更新,涵盖了iOS 7大部分新增特性,包括新的后台操作(第11章)、Core Bluetooth(第13章)、UIKit 动力学(第19章)以及TextKit(第21章)。我们提供了如何处理新的扁平化UI的指南(第2章),还新增了一章开发者不太常见但相当实用的“小技巧”(第3章)。
  《iOS编程实战》适合iOS移动开发人员。

编辑推荐:

适读人群 :移动开发人员

  iOS开发进阶
  深入挖掘iOS高级特性与开发技巧
  挑战编程极限,打造非凡应用

书籍规格:

书籍详细信息
书名iOS编程实战站内查询相似图书
丛书名图灵程序设计丛书
9787115368034
如需购买下载《iOS编程实战》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位人民邮电出版社
版次1版印次1
定价(元)79.0语种简体中文
尺寸24 × 19装帧平装
页数 204 印数 3500

书籍信息归属:

iOS编程实战是人民邮电出版社于2014.9出版的中图分类号为 TN929.53 的主题关于 移动终端-应用程序-程序设计 的书籍。