虿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转载请标明出处.