最近,在知名问答网站知乎上,不少开发人员针对Android 应用和iOS 应用的开发成本谁高谁低(包括前、后两个帖子)发表了自己的看法,大家普遍认为iOS 应用的开发成本要低于Android 应用,其中的分析和见解对从事移动行业的开发者很有帮助。
iOS 成本不高:表面上需要买个 Mac 很贵,但是 7000 多的 Mac 已经很好了,不需要买 1 万的入门。iOS 设备可以买 Touch 或者 iPhone 3G,也不贵。学习难度很低,只要你有点英文基础。Android 表面上成本低,但是需要买大量手机做适配。而且不好挣钱。
目前我在公司是做Android 客户端方面的工作,从我近两年的编码经验来看,iOS 和Android 的比较必须从多个方面来比较,不能过于笼统地断定哪个成本高和低。从硬件设备投入来看,通常开发人员都会有PC 环境,那么开发Android 应用程序的基本条件已经满足了一个,而开发iOS 程序最好还是需要一个Mac 环境,对于绝大部分开发者来说还是需要另外花费一笔资金的,关于测试机当然肯定是Android 会比iOS 糟糕,因为Android 的机型实在是太多太多了。如果你是个人开发者的话,那么在这个角度上来看你选择iOS 是明智的,而对于公司来讲,其实这些并不是非常重要的问题,如果在公司就职的话,公司不论做哪个平台都是需要提供开发环境的,至于测试机也是一样的,如果公司有20 个开发者,那么有20 个iOS 设备和拥有20 个Android 设备对于机型的覆盖率相差不会那么大的,虽然iOS 可以做到百分百覆盖,但是对于Android 来说也差不多了,当然小公司的话这个问题可能会稍微尖锐一些,其实从Android 机器均价与iOS 设备均价来对比,相差无几。从学习成本投入来看,Android 程序员从Java 转过来的是绝大多数,而且可以较为快速的进入状态开始编码, 而iOS 开发对于大部分开发者来说是完全陌生的,也就意味着要重新学习,但是对于程序员来讲,即便不是工作需要,我想在不断的工作过程中也会去接触更多的新鲜知识,从这个角度来看这个也不是什么问题,都有不错的官方文档来支撑前期的学习和入门。从开发具体应用来看,根据我在公司一年多经历的项目来看,在Android 上做应用类产品的难易程度相对简单,因为Android 的开放性以及Java 界多年来在开源上的积累,项目中需要用到的很多模块都可以找到成熟的开源实现,而iOS 近几年逐渐发力,在开源上的积累相对薄弱一些,在做应用时可能很多的模块需要自己造轮子,这个对于个人开发者来说可能比较重要。谈到适配机型的问题,对于想做游戏的同学们来讲可能会比较痛苦,特别是游戏使用到3D 技术的,由于Android 不同厂商选用的各种芯片的标准不一致实现不一致,很容易出现在某款机器上完全无法正常游戏的情况,而且游戏需要跟设备尺寸的结合度往往比较高,要完美地适配Android 众多尺寸不一的设备确实非常的让开发者头痛,而且设备的选购也是一笔不小的费用,对于个人开发者来讲是比较不现实,而iOS 相对来将就比较单纯,而且硬件控制得好,大家碰到的问题大体上都比较一致,社区里面肯定有能解决你问题的人和案例。综合上面的这些,我认为个人开发者选iOS 更合适,对于在公司就职的同学们,公司对于不同平台的重视程度通常应该都是一致的,不需要考虑过多其他的问题,更多的是做好工作完成任务,做出好的应用和游戏,可以依照自己当前的技术优势和兴趣做出选择,成本公司自然会给你承担。
开发成本这个定义太大了。如今的软件企业,开发硬件成本基本可以忽略,主要是人力成本。一般来说iOS 的开发成本低。iOS 平台API 和文档比较完善,很多问题都有一些苹果推荐的解决方案可以用,还可以有苹果的技术支持。相对来说Android 平台API 不同版本变化比较大,文档跟没有一样,Google 的支持非常不给力。这个成本很容易忽略,但是在实际开发中非常影响效率。iOS 有很多UI 现成的Pattern,设计容易。Android 在这个领域跟放羊一样,如果完全参照iPhone 的设计又会增加开发的周期。iOS 平台机型少,调试容易,周期短。iOS 开发和Android 开发者工资差不多,但是Android 开发需要在多个机器以及不同分辨率进行调试,所以人力成本会增加。总体来说,Android 开发同一个程序的成本要比iOS 高一半左右。测试和后期维护也差不多是这个比例。
iOs 前期硬件投入高,Object C 熟练者较少,人工成本高,学习曲线较陡,总之门槛较高。但产品一旦成功回报丰厚。Android 使用的 java 语言是计算机的基础课,人工成本低,硬件投入少,但产品利润较低。
这里的成本可以分成两个部分,开发成本和学习成本。学习成本来说,iOs 比较低,文档丰富,不象Android,开源系统的通病,没有文档。开发成本,确实iOs 的门槛较高,因为你需要一台Mac OS 机器,和至少一台不太落伍的iOS 机器,然后还要每年99$ 的开发者资格。如果只是讨论成本的话,我觉得开发一款同等质量(这里并没有提到收益),我觉得很有可能是iOS 低于Android 的。因为学习成本,开发复杂度太高,官方给予的支持少很多。这些导致要花费大量的人月。
因为iOS 的表现和交互已经在事实上统治了移动应用的设计标准,所以高品质App 的设计一般是Android 向iOS 看齐的。在这种情况下,如果要求同样的品质,以我的经验Android 投入的人员至少是iOS 的1.5 倍。另外, Android 在Windows 下的开发环境非常之烂(不稳定,脑残一样的模拟器启动时间)。具有讽刺意义的是,我们团队的Android 开发人员最终选择MacOS X 来开发Android(还有人使用Linux)。但是,即使转移了平台,像模拟器和真机之间的失真问题,也仍然无法避免(这对高度重视设计的Apps 而言很噩梦)。最后, Android 有些非常脑残的历史遗留问题,比如3.0 之前的Bitmap size exceeds VM budget 等。而因为Android 手机的升级非常成问题,所以团队不得不面对低版本开发,去处理那些问题。这些都带来更多的成本和风险。而且,这还没有计算测试的代价。主流多个厂商,多个系统版本,多个分辨率的机器跑一遍,也需要大量的人力。简而言之,和 iOS 开发比较, Android 的开发要苦逼不少。但是,为什么在@蒋全刚的那个统计中, Android 的开发费用并没有高出很多?原因去Market 看看就知道: Android 的Apps 做的更烂!Android 的Apps 如果追求iOS 的品质(设计和稳定性),要付出更大的代价。
如果说成本的话,其实问题相当复杂了。如果你没什么太高追求,或作做的App 比较简单,那一定是Android 的成本低,因为人力成本便宜。但如果你要App 质量说的过去的话,一定是iOS 低。Android 开发过程中莫名的开支非常大,例如非常复杂的跨平台调试,例如非常复杂的开发流程,甚至配置一个开发环境投入的时间成本都不是一个小数字。
总的来说,成本差不多。iOS 的主要成本:苹果硬件设备,人员工资等。Android 的主要成本:你什么都想要,既要做得跟 iOS 一样又想兼容中低端设备。人员方面,因为 Java 人员的工资在程序员中算是低的,因而即便需要 1.5 倍的人力,最终也只跟 iOS 人力成本持平。更何况,如果你只兼容硬件配置不低于 iPhone 的机型,那么可以极大的节省开发开销,如果只关注少数的几款机型,最终,人力需求还小于 iPhone(主要因为,业界人员对 Java 的熟练程度远远大于 iOS 的开发语言)。
虽然开发环境而言,Android 基本上都是免费的。但是 Android 的主要开发成本是在对各种终端的适配,调试,特性对应等工作上。当然也包括为了做这些工作而花的时间、人力成本。因此根据最后应用实际跑的终端的实际情况,最终开发成本可能大于 iOs。
高端 App 里,尤其是同一家公司既做 iOS 又做 Android 的话,一般都是采用 iOS 的设计。这并非是 iOS 能展现更好的设计感,也并非 iOS 比 Android 高贵多少。而是 Android 开发过程中需要的适配和调试要比 iOS 复杂,另外,Android 中 UI 特效比 iOS 更多得需要程序员自己编写和控制。这些造成了 Andriod 的开发周期一般较长,而 App 开发不可能让进度快的等着进度慢的,所以往往是开发进度快的掌握着产品设计的调整方向。而 iOS 开发人员和产品设计人员一般很少考虑同项目 Android 组的感受,当然,他们可能也并不了解 Android 的具体机制,所以很多 Android App 都是 iOS 风,甚至没有利用到 Android 一些优于 iOS 的特性。越是大公司的项目,Android 的特性越被抹杀。
评论