莇Android和iOS孰优孰劣:真实应用开发过程告诉你答案膄随便搜索一下“Android vs. iOS”,都会出现很多关于哪个平台更好的争论,大多数的争论点都是关于市场占有率、易用性和设备分化等问题。当然也有一些“以开发者的角度”去比较这两个平台的文章,但是很少有从技术上做深入的比较,通常也只是用一个简单的示例应用介绍一些基本的特性。缺少这种深入的比较其实是有原因的:一个公司要做一个足够复杂的移动应用,通常需要一个人或团队做Android,另外一个人或团队做iOS。这两个平台使用不同的编程语言(Java和Objective-C),提供不同的SDK,使用不同的开发工具,所以人力资源分配上各做各的平台也就不奇怪了。袂GQueues是一个在线任务管理器,之前只有一个HTML5版本。最近我完成了GQueues for Android和GQueues for iPhone & iPad的开发。虽然这两个应用的复杂程度不能和第一人称射击游戏相提并论,但也绝不简单 – 为用户存储和管理数以千计的任务信息、支持多账户、提供到WEB端的后台同步、复杂的过滤、排序和分组功能。通过这次的实践,我希望透过独特的视角,分析和比较为这两个平台开发GQueues应用的过程。蝿统计概况蒅蚄Android App荿iOS App螀启动日期袇Sept 21, 2012肃Mar 2, 2013聿第一个可测的Beta版本薇Dec 22, 2012羆June 10, 2013蒃应用发布日期衿Jan 31, 2013虿July 18, months螀Ramp Up Time蒇1 week莁2 weeks莀开发耗时薇870 hours (approx)薅960 hours (approx)肅Beta测试&Bugfix肁34 days蕿38 days羇Beta测试人员人数蒄92 people袁48 people莆代码行数肆26,981 lines袃23,872 MB芃视频预览节GQueues for Android Video葿GQueues for iOS Video薆下载螂 肂 芆学习曲线蚅我已经写了12年的代码,但这是我写的第一个Android应用,也是我写的第一个偏向数据处理的iOS应用(2010年我做过两个iOS 3上的游戏,但那两个游戏主要只涉及一些动画和蓝牙连接)。 我最后一次用Java是在研究生阶段,而我的Objective-C也仅限于那两个游戏。所以对于这两个平台,我基本上可以算是从零开始。膂简单讲,只需要花一半学习iOS的时间来学习Android,我就能开始Android开发。对于Android,我花了一周时间用来看书、跟着一些教程做一些测试应用,这些测试应用包含了GQueues将会用到的一些核心功能。做完这些,我基本上算是打好了为GQueues设计架构的基础,同时也可以开始为这个项目写代码了。在接下来的一周我可以很轻松自如地基于Android做开发,而不再需要依赖某个资源去实现新特性了。螃对于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官方示例)和一些问题的解决方法都是不正确的,需要使用新的方法取而代之。搞清楚这些肯定也需要花更多的时间。羇从上面的统
AndroidiOS优点缺点 来自淘豆网m.daumloan.com转载请标明出处.