![]() 作者:[美] Rob Napier/[美] Mugunth Kumar 出版社: 人民邮电出版社 原作名: iOS 7 Programming Pushing the Limits 译者:美团移动 出版年: 2014-9 页数: 408 定价: 79.00元 装帧: 平装 ISBN: 9787115368034 内容简介 · · · · · ·本书深入介绍iOS 7新特性和新功能,涵盖iOS 7大部分新增特性,包括新的后台操作、Core Bluetooth、UIKit动力学以及TextKit。另外还介绍了如何处理新的扁平化UI,并新增了一章你可能不知道的“小技巧”。如果读者熟练掌握C和C++,读完本书即可创建性能优异的iPhone、iPad和iPod touch应用。 本书主要内容包括: iOS 7新特性和新功能概览; 深入解析多任务、多平台、安全服务、应用内购买、自动布局等高级主题; 全面介绍REST、高级GCD、本地化和国际化、Core Bluetooth; 细致讲解UIKit动力学、自定义过渡及其他内容。 本书助你充分利用iOS 7新特性,挑战编程极限,打造非凡应用。 作者简介 · · · · · ·作者简介: 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章 全新的系统 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 7为苹果设备带来了全新的用户界面,但是iOS 7在用户界面上的变化不仅仅是表面的。就像本书一样,iOS 7是给用户和开发者双方都带来好处的一次大升级。本章我们从新的UI及其对应用的影响开始讨论,然后是各种SDK的附加功能,还有新的IDE和编译器Xcode 5/LLVM 5。iOS 7也为SDK带来了大量全新的核心特性,能帮助应用脱颖而出。iOS 7增加了两种新的技术,分别是UIKit Dynamics和UIMoti... |
以前就看过的书
品质不错值得拜看
推荐给了朋友
很多历史的细节。