所以你看过了上次那篇「做响应式网站好还是原生移动应用好?」之后,你根据对商业需求的判断,你选择要做一个原生应用。下一个要考虑的是一个恒久远的话题:“iOS还是Android?”
Theo问道:
是否应该选择为iOS开发应用而不是Android?Apple会倒闭吗?
开发原生应用的部分困难在于,哪怕只为一个平台开发就有很多事情要做了——更别提2、3个平台。虽然移动市场并不是只有iOS和Android两家,但不管怎么说,这两家是占绝对优势的。其它移动平台确实存在,但为了不让这篇文章变得太长,目前我们就先只看iOS和Android。
iOS?Android?还是一起?
即便哪怕是一年以前,如果问我“iOS还是Android”,我一定会毫不犹豫地回答“先iOS,再Android。”
今天,这个问题的答案就有些复杂了。Android是统治全球的移动操作系统(尽管在美国Android和iOS的市场占有率差不多),而且它先于iOS达到了100万个应用的里程碑。另外,随着诸如三星Galaxy S4这样的机型的热销,Android的品牌认知度也日渐增长。
我的建议是,大多数公司如果需要原生的移动应用的话,可以同时计划iOS和Android版。但这不代表说你要同时发布这两者,只是这两者你都得提上议事日程。
决定先发布哪个
如果你没办法同时开发iOS和Android版应用的话,你得决定一下先搞定哪个。
这里列举一下在考虑要首先发布哪个版本应用时的一些因素:
- 你的用户用什么?查阅一下你的访问者统计信息看看大部分移动访问者是从Android还是iOS来的。如果iOS用户的粘度比较高,那最好就从它们开始下手。反之亦然。
- 你的平板计划如何?虽然Android是移动系统第一名,但在平板上它还是个小巫。Google大概会吹嘘全球市场有一半平板都是Android的,但如果我们要看它们是怎么用的——或者说看大部分平板应用的使用率比例的话,iPad显然是赢家。唯一的例外是Amazon的Kindle Fire,但它用的是改头换面的Android——所以是一个单独的种类。如果你要创建平板体验的话,先搞iOS。
- 你的开发者们熟悉什么?虽然大部分公司的移动开发可能是外包的,但你还是需要跟你的团队讨论一下看看他们所熟悉的是什么平台。为iOS开发需要一台Mac而Android的开发工具虽然一直在进步但也还没达到Xcode的水平。
- 你想为你的应用收费吗?所谓Android用户不会为应用付钱这个理论现在已经没以前那么有说服力了,但iOS用户更愿意为应用花钱倒是真的——同一个应用iOS用户比Android用户更可能付费。不过那不能成为你抛弃Android的理由——还是有不少赚钱方法的——但如果是首次发布的话,还是需要好好考虑一下。同时你还要看看在这两个平台上你可以收到从哪里来的钱。Google一直在增加可以支持Google Play付费应用的国家数量但这个领域Apple仍然是领头羊。
为什么先搞定iOS比较合理
大部分应用还是会现在iOS上发布。通常来讲这并不是因为iOS比Android更优秀,而是因为做iOS应用比做Android应用的麻烦要少得多。
Android的一个好处是,每个人都能用而且有无数机型可以选择。但这也是一个问题,尤其对资源有限的开发者来讲。
在写这篇东西的这个时点,大部分Android设备终于支持Android 4.1及以上的Jelly Bean了。相较今年上半年来说这是一个飞跃性的进步。
问题是,仍然有三分之一的人在用2010年发表的Android 2.3.x Gingerbread的某个版本。Android的某些最佳及最有趣的功能在这些老版本上是没有的。也就是说,如果你要为Android开发,你必须决定:我要只面向新用户呢,还是同时也兼容老设备?
这个问题的答案很大程度上取决于你所在的市场和地区。如果你在美国,那我建议你针对Android 4.0及以上版本开发。如果你有很多欧洲和亚洲用户,情况就不一样了。
同时,虽然iOS也有一定的碎片化,但大部分iOS用户都是第一时间更新到最新版本的操作系统。
如果你为iOS 6创建应用,你就知道它可以运行在iPhone 3GS一直到5,以及iPad 2、3、4和iPad mini上。另外,因为Apple同时控制软硬件,所以你不用担心诸如不同屏幕尺寸或者图像处理器或者是否支持X、Y、Z之类的问题。你还是需要在每一种设备上测试,但测试设备的数量远远地少过为Android开发时的需求。
如果你现在想要开发一个新应用,我还是强烈建议你开发一个只针对iOS 7的应用。这是勇敢的一步,但根据我每天的观察,现在这已经是一大趋势,越来越多的主流应用都在这么做了。而且,iOS 7的设计是如此不同,如果你不用新设计语言来设计的话,你的应用看上去就是个落伍货。
跨平台工具包
不管你从哪个系统开始,缩减需要为两个版本的应用所编写的代码数量对于各公司——尤其是小公司——来说并不陌生。
根据你的应用类型的不同,诸如Appcelerator或者Sencha Touch或者Phonegap这样的跨平台框架会变得非常有用。
然而你必须记住的是,你的应用如果真的需要很多原生功能,或者如果它需要处理大批量的数据,那么你只能做原生的。
没有比使用iOS式样的按钮设计的Android应用或者慢到死的看上去像应用一样实际上是一个内嵌网页的iPhone应用更烂的了。
Apple(或者Google)会倒闭吗?
Theo的问题的后半部分其实问的是关于应用平台的长期存在性。我不是什么大魔术家我也无法预测未来,但从目前的情况来看,不管Android还是iOS都不会是什么大问题。Apple拥有一个根深蒂固的生态系统以及数百万的忠实顾客。
它们会不会明天就消失得无影无踪呢?会的。看看诺基亚。看看黑莓。但我赌近阶段完全没有这个可能性。
Google也一样。对,大多数人听到Android的时候想到的是三星而不是Google——那确实是个问题——但Android仍然在健康成长而且火着呢。
只选一个也OK
虽然我认为对于大多数小公司和小品牌来讲,双系统应用最好不过了。但如果你没什么钱的话,只选一个平台也是OK的。
许多开发者只做iOS也做得非常非常好。实际上,我为什么对iOS这么忠诚的一部分原因就是那些只有iOS版本的优秀应用。
另一方面,也有一些非常不错的Android先行的开发案例。而且,Google自由的应用在Android上非常好用也是有些用户优先考虑Android的原因之一。
移动应用的现实情况是,你的应用在进入市场——任何市场——之前,你无法得到所有你想要知道的信息。先用iOS或者Android练练手,然后再将你吃一堑长一智学到的东西运用到下一个平台里。如果你在一个平台的用户粘度和使用率较低,那你就可以马上停掉这个应用而选择去做一个更加优化的移动版网页了。