拿到这本书不久,我就投入了一个Mac项目的开发,然后直到最近,才重新开始iOS编程。 所以迟迟没有对这本书做出评论。

除了自己编码,我现在还要管理一个微型团队。我的书架上,有从最简单的语言基础,到step by step 的工具教程,再到底层机制(不过这本是Mac OS而不是iOS的)类型的书都有,而这本覆盖了后两种之间 的空间。这是一本很好的工作用书。

为了避免一些不必要的误解,我就不列出其它几本书的名字来比较。因为这里毫无贬低其它书籍的意义。 例如我读过的那几本 step by step 书籍,它们帮助我度过了一段非常辛苦的时间,可以顺利的进入这 一行。在我看来,这种类型的书籍对于职业工作者还是非常重要的。

这本书也同样在引导新手入门的方面有下功夫,在开始部分有足够大的篇幅介绍IDE使用,语言介绍等。 这部分内容对于占智能手机开发者大多数的“有经验的新手”来说,已经足够入门。而它在语言方面, 又比很多教程书更为深入。例如堆、栈、指针到property,再到strong和weak类型的指针的区别,在 语言部分有比较清楚的介绍。通过这部分知识的学习,不仅可以应对日常的开发,就算是类似 the weak–strong dance 这样比较复杂的技巧,也会更容易上手。

后继章节也保持了这种”再进一步“的可贵风格。例如在介绍委托的同时引入了对编译错误和连接器错误 的关注;多点触摸不是直接示范一下 UITouch 的使用,而是从 UIResponder 开始介绍触摸响应的过程。

有些教程不重视对编程范式的介绍,这本书也处理的比较好,对 Controller 和 View的关系,它们的 Why 和 How,也有提及。书中介绍的 MapKit 、触摸绘画,iPad 应用旋转屏幕时的布局策略等示例,本身 就是非常有价值的主题。

书中每一章都有初中高级不同难度的练习列出,对于读者继续学习也有很大帮助。这种习题设计很见诚意, 建议读者尽可能的尝试一下。

这本书特别宝贵的一点是对很多技术的优劣有非常实际的评价。包括一些技术运用的介绍,明显出于工程师 而非技术传播者的视角。例如Core Data的介绍,是在一个既有项目的基础上加入Core Data功能。这种方式 远比从开始就列入Core Data更为实用。更不要说在 Storyboards 的评价中,直率的指出该功能在团队协作、 版本管理、开发流程方面有非常大的问题。这种诚意简直让我感动到落泪。

在 Cocoa 出现的时候,业界还是以XML为主流,而现在JSON早已成为数据传输的事实标准,书中对JSON的运 用方式和适用场景都有一些讨论。

这本书适合做 iOS 工程师的第一或第二本书,以及日常翻阅的桌面工具书。但它不是参考,整体而言,仍然 是一本很好的引导型教材。我认为每一个合格的iOS开发工程师,都应该能顺利的阅读本书。而每一位从事 iOS 开发的读者,我想,都可以不虚此行,从中获取到有益的知识。