本书深入介绍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平台软件顾问。他关注的领域包括编程方法论(面向对象和函数式编程)、移动开发以及可用性设计。
译者简介:
美团移动
美团移动团队于2011年成立,经过三年多的发展,建立了iOS、Android、WP和H5多个平台上的App,形成了团购、猫眼、酒店三足鼎立的局面,如今更是承载了美团70%多的交易额,是美团对移动互联网时代最好的诠释。
这本书拿到手上就感觉分量十足,沉甸甸的,一看目录,果然是干货满满。作者似乎非常注重基础概念的阐述,开篇并没有急于深入那些炫酷的新特性,而是花了很大篇幅来梳理Swift语言的核心特性和面向对象的设计思想,这一点对于我这种从其他语言转过来的开发者来说,简直是雪中送炭。特别是对于可选类型的讲解,简直是细致入微,图文并茂地展示了 `if let`, `guard let`, 还有`flatMap`在不同场景下的使用区别和性能考量,绝不是那种浅尝辄止的介绍。接着,它对UIKit的生命周期和事件处理机制也做了非常透彻的剖析,我之前一直对`viewDidLoad`和`viewDidAppear`之间的细微差别感到困惑,这本书里通过一个具体的App启动流程图,将整个过程的时序关系描述得一清二楚,让人豁然开朗。写到这里,我忍不住翻到了后面关于并发编程的那一章,内容也相当扎实,它没有止步于简单的GCD队列,而是深入探讨了OperationQueue的依赖关系设置和取消机制,甚至还涉及到一些关于数据竞争的潜在风险提示。总体感觉,这本书的编写者绝对是一位经验极其丰富的实战派,他写的不只是代码如何实现,更重要的是在教你“为什么”要这么实现,这才是真正有价值的。
评分这本书的视野明显超出了标准的App开发范畴,它对于性能优化和系统底层交互的探讨,达到了一个令人尊敬的深度。我过去一直认为,App启动速度的优化是个玄学,但读完这本书中关于Mach-O文件加载过程和延迟加载(Lazy Loading)策略的章节后,一切都变得清晰了。作者详细分析了`+load`方法与`initialize`方法的执行顺序和潜在陷阱,并提供了一套切实可行的、基于代码分割的启动加速方案。这套方案不仅仅是修改几个启动参数那么简单,而是涉及到如何重构类加载的依赖关系。另外,在涉及到用户隐私和安全方面,这本书的处理也显得极其负责任。它详细介绍了如何正确使用Keychain进行敏感数据存储,以及在沙盒机制下如何安全地与系统服务(比如相册、定位)进行交互,并清晰地指出了不同API在iOS新版本中权限收紧的注意事项和替代方案。总的来说,这本书就像一位经验丰富的老兵,不仅教你如何打赢每一场战斗(实现功能),更重要的是教你如何构建一座坚不可摧的堡垒(健壮的架构和安全防护)。
评分拿到这本书后,我最大的感受就是它的结构设计非常贴合真实的项目开发流程。它不像很多教材那样把知识点拆解得过于零散,而是采用了一种“以项目为导向”的叙事方式。我尤其欣赏它在处理数据持久化那一块的策略。它没有直接抛出Core Data的复杂API,而是先从Keychain和UserDefaults的基础应用讲起,让你体会不同存储方案的适用场景和局限性。然后,在引入Realm和Core Data时,作者非常巧妙地将它们放置在一个需要处理复杂关系模型和离线同步的虚拟App开发场景中。比如,它用一个电商App的购物车模块作为案例,详细演示了如何在Realm中高效地查询和更新嵌套的商品列表,并且在描述这些操作时,作者总是会穿插一些性能优化的“小窍门”,比如如何避免不必要的数据库写入,如何利用后台线程来处理数据迁移,这些都是我在网上搜索了很久也找不到的实战经验。阅读过程中,我发现自己对于如何搭建一个健壮、可维护的数据层有了全新的认识,不再是堆砌API,而是真正理解了数据流动的逻辑。这种由浅入深,紧密结合实际需求的讲解方式,极大地提升了我的学习效率。
评分这本书的语言风格非常直接、犀利,读起来完全没有那种传统技术书籍的枯燥感。作者似乎有一种将复杂问题简单化的魔力。最让我印象深刻的是关于UI布局管理的部分。Auto Layout这个东西,相信很多开发者都深有体会,它要么让你瞬间掌握,要么让你抓狂不已。这本书处理这个问题的方式非常独特,它没有过多地纠缠于约束的数学原理,而是直接构建了一个“约束优先级”的等级体系图。它用“敌人与盟友”的比喻来形容不同约束之间的冲突与合作关系,使得那些原本抽象的优先级数值突然变得具象化了。我按照书中的建议,用“打破僵局”的思维去调试我之前一个怎么都调不好的复杂表格视图布局,结果仅仅通过调整两个控件的优先级数值,问题迎刃而解。此外,书中对于自定义View的绘制部分,也展示了非常高超的技巧。它详细讲解了Core Graphics的上下文状态管理,特别是关于图层混合模式(Blend Modes)的应用,作者通过绘制一个动态天气效果的例子,让我清晰地看到了`CGAffineTransform`如何与图形绘制结合,实现出色的视觉效果。这本书在“设计感”的传授上,确实做得非常到位。
评分这是一本真正意义上的“动手实践”手册,它的每一章几乎都对应着一个完整的功能模块构建流程,而不是停留在理论的讲解上。我特别喜欢它对于网络层设计的那一章。它没有仅仅停留在使用URLSession的基本请求,而是构建了一个功能完备的、可复用的网络服务模块。作者花了大量的篇幅来设计一个通用的错误处理和重试机制,这对于构建健壮App至关重要。他不仅实现了基于指数退避算法的自动重试逻辑,还深入探讨了如何优雅地处理Token过期和刷新流程,确保用户在不知不觉中完成了身份验证的更新,用户体验几乎没有受到影响。更让我惊叹的是,书中还引入了对Mocking测试的支持。在讲解如何编写单元测试时,作者展示了如何使用依赖注入(Dependency Injection)的原则,将实际的网络调用替换成预设的模拟数据源,这极大地简化了异步操作的测试难度。这种从架构设计到测试覆盖的完整闭环教学方式,体现了作者对现代软件工程实践的深刻理解,让人感觉自己学的不仅仅是iOS开发,更是如何构建一个可测试、高可用的系统。
评分这本书完全读通感觉还是有一定难度的,细读了第一部分,粗读了剩下的。至少还需再读两遍。
评分看来外国人写的书,确实不适合我
评分这本书应该反复读。只是马上iOS 11就要来了,如果作者能更新一下就更好了,毕竟隔了好几年了!
评分本书开启了我对OC 的全新认知
评分这本书完全读通感觉还是有一定难度的,细读了第一部分,粗读了剩下的。至少还需再读两遍。