background image

对于

iOS,我同样按照上面的流程,但我花了两周时间做各种测试/实验,才让自己觉得可

以开始为这个项目写一些基础代码了。其中大部分的时间都花在研究

CoreData 各种复杂的

API 上面。搞清楚怎么设置、怎么在线程安全的前提下,为每个用户集中管理

PersistentStoreCoordinators

§

ManagedObjectContexts

§也花了些功夫,最重要的是要支持多

账户(这个话题可能需要另一篇博客来单独讲讲)。为

FetchedResultsControllers

§开发一个

可扩展的架构花了更多时间,

FetchedResultsControllers

§用于支持可被用户查看以及操作的

任务表单、队列和分类。最后又过了两周(总共花了一个月)自己才能比较轻松自如地基于
iOS 写代码。
总的来说,

Android 的文档(官方文档、第三方教程、图书、代码示例、StackOverflow)质量

都非常高。我从一些著名的开源

Android 应用中学到了很多架构上的最佳实践,如 Google

开放给开发者的

2012 Google I/O app。此外,Android 本身就是开源的,必要时我可以自己

查看

Android 的平台代码,弄清楚一些疑难问题。虽然 iOS 也有很多文档,但由于 iOS5 和

iOS6 相比之前的版本改动非常大,大部分文档都已经过时,其中包括 ARC 入门一文

introduction of Automatic Reference Counting

§)。因此,大部分的示例代码(包括 Apple

官方示例)和一些问题的解决方法都是不正确的,需要使用新的方法取而代之。搞清楚这些
肯定也需要花更多的时间。
从上面的统计表中也可以看出,开发

GQueues for Android 要比开发 iOS 版的快十分之一的

时间,尽管在开发

Android 版的期间我重新实现了之前用于支持 GQueues HTML5 版的整个

后端服务器同步代码。而开发一个不采用原始

iOS6 风格 UI 的应用也需要多花些时间,单单

比较这个数据,

Android 开发就是比 iOS 开发快。

用到的资源

§Android App

§iOS App

Official Android docs

§

Professional Android 4 Application Development

§

Android Recipes

§

Android Database Programming

§

Mobile Tuts+

§

Google I/O 2012 app code

§

StackOverflow

§

Official iOS docs

§

Beginning iOS 6 Development

§

More iOS 6 Development

§

Ray Wenderlich’s iOS 5 by Tutorials

§

Ray Wenderlich’s iOS 6 by Tutorials

§

StackOverflow

§

 上面列出来的书其实用处很有限,因为跟大部分的技术类书籍一样,书的内容都有点过时
了,而且大部分书只停留在入门级别的概念介绍。不过,在一开始的前几天看一下这些书,
能够比较快地理解平台上的一些核心功能。就目前来讲,对于这两个平台,在线资源仍然是
最有价值的。

工具