社区讨论:Android 应用和 iOS 应用的开发成本比较

  • 崔康

2012 年 4 月 17 日

话题:AndroidiOS语言 & 开发架构

最近,在知名问答网站知乎上,不少开发人员针对 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 开发过程中莫名的开支非常大,例如非常复杂的跨平台调试,例如非常复杂的开发流程,甚至配置一个开发环境投入的时间成本都不是一个小数字。

pansz

总的来说,成本差不多。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 的特性越被抹杀。

AndroidiOS语言 & 开发架构