本文来自国外知名调查分析机构Vision Mobile数月前发布的2012跨平台开发工具报告,报告专业而具洞见地对当前跨平台工具市场现状和未来做了调查分析,强烈推荐给关注此领域的开发者。
跨平台的淘金
2012年标志着移动平台领域的一个拐点。Apple的iOS和Google的Android平台已经推进到以前无法想象的高度,截至2011年年底,在这两个平台上,分别有超过540,000和350,000种应用程序,这些应用程序来自成百上千的开发者。正因为所谓的网络效应(network effects),Apple和Google对竞争者已经建立起巨大的壁垒,即使是像微软这样花费超过10亿美元进行营销的竞争对手,仍然远远落后于Apple和Google。
然而,正当Apple/Google的双寡头垄断看起来似乎坚不可摧之时,对诸如Microsoft的 WP7 以及 Samsung的Bada这样的竞争者来说,前进道路上的障碍正在被扫除:跨平台的工具让开发者可以针对多个平台进行开发,让代码有较高的重用率,从而让增长的开销较小。
简言之,跨平台的开发工具(CPTs)允许开发人员开发针对多个平台的应用,针对各个平台的开发可以基于相同的核心代码库,或使用相同的设计工具。CPTs的影响是两方面的,它们可以减少移动开发进入壁垒,又使得开发者转向新的开发平台更容易,从而对某个平台的黏度降低了。
开发的民主化 首先,跨平台的工具允许开发人员为他们之前所不能进行开发的平台进行开发。 CPTS使得进入门槛降低了,例如,现在Web开发人员仅使用HTML和JavaScript就能够创建本地智能手机应用程序。CPTS可以提供易于使用的语言和开发工具,并便于模块化开发和软件组件重用。有些工具还允许开发人员使用相同的代码库来针对多种屏幕进行开发—— 并且,这种开发不止局限于手机,还针对平板电脑、游戏机、台式电脑和电视机。这便是软件开发的“民主化”,即平台可以开放给所有类型的开发者。
减少开发者的平台固化 跨平台工具的第二个影响是战略性的。CPTs减少了平台的退出壁垒,也即“开发者平台固化(developer lock-in)”。例如,CPTs让开发者在为iPhone开发的同时也可以为Android和Windows Phone 7开发。在App的生态系统中,竞争体现在四个方面:app的数量,top app的可用性,app投入市场的时间(一个app很难同时出现在所有平台的app stores中)以及总体的app质量。在理论上讲,跨平台的工具使得网络效应减小了,从而使非Android和Google平台更容易参与竞争,比如现在Bada平台就更容易参与竞争了,因为CPTs允许开发者在为Android开发的同时也能为Bada开发。换句话说,跨平台的工具让小的平台不仅可以在数量方面与大的平台竞争,也能在app的可用性、到达市场的时间和质量方面进行竞争。
众所周知,Apple试图通过在Apple的设备上禁止Adobe的Flash runtime来增加开发者对于Apple的XCode工具以及iOS API的黏度——它成功做到了。然而,跨平台工具让打破Apple的限制更为容易,它们可以将runtime和app进行打包,或者在编译连接的时候将与平台无关的代码翻译成本地代码。
正如我们将要看到的那样,2012标志着跨平台工具在技术上的成熟。使用Flash或者Java这种通用的方法已经失去了其吸引力,新的基于thin runtimes、cross-compilers 以及 hybrid web apps的方法更为喜闻乐见。2011年在初创阶段受到批评的工具现在要么获得了VC,要么被收购,要么发布了主要的产品。例如,MoSync 2.7使得网络编码变为可能,并且它和Marmalade一起增加了实时本地UI元素。此外,Sencha已经准备发布Touch version 2.0,在该版本中,Sencha推出了自己的web打包方法(web wrapper solution)以及流水线式的构建流程。其他的,比如LiveCode Android deployment pack以及Mono for Android,都是在2011年才正式发布的。
与此同时,HTML5系列的技术已经过了狂热的高峰期正在慢慢走向低谷(此观点来源于Gartner’s Hype Cycle)。HTML5还没有真正成为一个平台;它缺乏一些必要的元素,比如实施的一致性、主流的发布渠道(也即app stores)以及除mobile ads以外的盈利模式。然而,因为跨平台工具的存在,HTML5(包括Javascript)正让mobile app逐步发展。有好几十个工具致力于让web开发者使用现有的技术构建‘native’ 或者 ‘hybrid’的手机应用,这其中包括Appcelerator, PhoneGap, Rhodes, Sencha 2.0 以及Worklight。同时,mobile frameworks在致力于让web apps能提供一个“near native”的用户体验,这其中包括jQuery Mobile, Sencha, iUI, 以及适用于游戏的Impact.js.。CPTs以及为HTML5扫清了道路,不仅让它可以成为一个平台,而且会成为智能手机apps的主流开发技术。
#p#
跨平台领域的赢家与输家
在写这份报告的时候,跨平台开发正十分流行,随处可见收购、资产剥离和融资。Adobe的Flash,曾经作为跨平台解决方案的经典方法,正面临退出,Adobe在2011年11月,宣布了将会停止为mobile browser开发Flash插件。同时,Adobe会同时终止Flex SDK,而将力量集中于ActionScript-only开发。从2011年中期起,跨平台工具提供商方面的收购包括RhoMobile, Metismo, Aptana, ParticleCode, Nitobi, Strobe和Worklight。另外,Alcatel Lucent在2010年收购的Open-Plug因为资金缺乏而不得不停止它的产品(本章后面的案例研究将会谈到这一点)。同时,Sencha,一个高调的开发native、touchscreen UI的Javascript框架,在2010年和2011年完成了两轮融资,筹到了2900万美元。下面的三个表列出了跨平台工具领域主要的收购、退出以及VC融资。
投资涌入
正当投资者们正在寻找下一个经济增长点时,跨平台工具出现在他们的视野,在这个领域,筹集到超过两亿美元。在主要风投资金的支持下,Appcelerator扮演了中间人的角色,它自己在试图app的生态周期中提供更为端到端的解决方案,收购了Particlecode, Aptana 和Cocoafish。Worklight在被卖到IBM之前,获得了2100万美元的投资,而Pyxis在筹到100万美元以后,重命名为Verivo。
CPT中的资产剥离:OpenPlug案例
在一片大好的投资环境下,跨平台工具的竞争中也出现了一些失败的例子。2010年9月,Alcatel-Lucent收购了OpenPlug。这个电信基础设施供应商,希望建立一个电信运营商和开发者之间的战略平台。然而一年以后,在2012年12月,OpenPlug宣布终止运营,因为它吸引不到足够的开发者。
这个公司最初是有着嵌入式软件背景的公司,曾经为非智能手机(feature phones)开发过名为ELIPS Suite的操作系统,这个系统在2008年大量生产,尤以和Sony Ericsson的结合最为出名。那时候,手持设备代工生产商(handset OEMs)将注意力从非智能机转向了在智能机中采用Android以对抗Apple的iPhone带来的竞争压力。
结果,OpenPlug转向了生产跨平台的runtime和toolset,并于Adobe MAX 2009会议上发布了beta版,该版本以ELIPS Studio冠名。它的目标用户群是那些想要从桌面端拓展到智能机的Adobe开发者。这样是不合时宜的,因为这个时候恰逢Adobe为iPhone推出了Flash packager,为Mobile推出了AIR。ELIPS Studio那时候使用的还是Adobe丰富的应用框架(Flex以及MXML),这个框架很快便受到HTML5的挑战,并最终被Adobe所淘汰。OpenPlug还被指责说不能让toolset和Adobe的MXML 和AIR APIs更为兼容。
最终OpenPlug没能找到一个盈利模式,它面临的最主要的问题是劝说习惯了免费增值产品的用户付费试用它的支持功能和专业服务。它的竞争对手Appcelerator让这一问题更为严重,因为Appcelerator有丰富的VC资金,因此Appcelerator的产品都是免费的。和其他产品不同,OpenPlug没有任何云服务产品,也就没有其他销售来源。
OpenPlug的母公司Alcatel-Lucent,作为一个运营商,显然不能帮助OpenPlug找到开发者。相反,这个公司发现,开发者们都没有把运营商看做mobile app生态系统中的一个重要部分。在终止运营以前,OpenPlug聚集了22,000注册开发者,但只有少量是活跃用户,大多数人只是尝试写过“Hello World”后便不了了之了。
跨越赶时髦的阶段
跨平台工具已经度过了“赶时髦”的阶段,而成为现今的主流了。一个工具提供商——Sencha——声称有160万开发者,并且有30万注册社区用户。游戏开发平台Unreal声称有100万的SDK安装量。Unity在2011年有很大增长,它有80万注册开发者,其中有20万是活跃用户。Appcelerator原本有25万用户,现在随着它收购Aptana并将它的“Titanium”技术整合到流行了Aptana IDE中,它的用户猛然增加了160万。PhoneGap已经被下载60万次,并且被整合到几十个移动应用平台以及App builders中。跨平台工具对于消费者也有影响。Corona声称用它的工具创建的应用已经有6000多种,这些应用在2011年的下载量有3500万次。Appcelerator声称用它创建的应用有35000种,并且有4000万设备部署(device deployments)。
在跨平台工具出现的背后
跨平台工具的出现主要是为了处理在mobile apps开发中出现的三个市场上主要的障碍:平台碎片、进入新平台的壁垒以及管理开发资源。
处理平台碎片
跨平台的工具出现之初便是为了解决设备和平台的碎片化。Java ME可以处理几十种2000s系列的由定制操作系统驱动的手机——但是开发者需要能支持超过200种设备,以便能为在任何一个国家内的80%的设备做开发。Mobile web站点也是因为浏览器对标准执行很差而很难找到通用解决方法;即使在现在,Windows Phone上的IE对HTML5的支持度只比得上Apple的Safari所能支持的一半。另外,要能够发布类似于app感觉的应用,HTML5还有很长一段路要走,还需要不菲的调整。为iPad以及Android tablets开发了Financial Times HTML5 app的Assanka,说它为了开发iPad 版本的Financial Times HTML5 app,花了24人月(估计为US$400,000),然后又花了另外12人月将这个app移植到Android上去。
除了设备间的碎片,平台碎片也是很严重的。Android因为它的运行时碎片而臭名昭著;在2012年2月,有三个不同版本的Android平台(API levels 7,8 and 10),互相之间只有超过2%的相同点。所有这三个版本都落后于最新发布的版本,这个版本是API level 15的,前面过渡性的API levels (11-14)是针对平板电脑的(由Gingerbread发布)。
对了应对碎片化问题,跨平台工具提供商在云中提供了一些设备相关优化手段以及web资源重新表现方法。数据库中的设备详细参数和性能可以帮助优化图像大小、重新确定布局以及用户界面、实施一些折中而非强迫开发者一定要找到通用的方法。从传统上讲,设备性能数据库(device capability databases)是由像Wurlf, DotMobi 以及 DetectRight.这样的专营公司提供的。慢慢的,device databases有了更多来源,比如通信架构公司(如WDS, Ericsson, mFormation, Ascom),通信公司本身(如AT&T device capabilities API),以及已有的跨平台工具(如Netbiscuits, Mobile Distillery, Sevenval)。BKRender,另外一个跨平台解决方案,提供了含6000种设备的数据库以及一个HTTP反向代理(an HTTP reverse proxy)来优化移动在站点。
一些CPTs因为内部咨询项目的碎片化问题需求而成长起来。其中的一个例子是Enough Software,,它是给Java ME apps提供优化工具的。Enough Software走的是跨平台工具领域中的典型路线——先解决他们在自己的项目中遇到的碎片化问题,然后将解决方案转化为一个商业工具。这条路随后被Pyxis (Verivo),、Netbiscuits、Marmalade 以及 DragonRad所模仿。
尽管CPTs开始解决一些平台碎片化问题,但是又出现了新维度的碎片化。Handy Games的CEO Christopher Kassulke说,“现在的碎片化已经是4D matrix的了”。他提示开发者要处理平台间的碎片化,如软件平台,计费平台(以及定价模型),广告平台以及社交平台。
#p#
让为新平台以及设备开发成为可能
对于参与到我们的在线调查的2500位开发者来说,我们发现影响跨平台工具选择的最重要的因素是该工具支持的平台广泛程度。除了占统治地位的iOS平台以及Android平台,许多平台都在争夺亚军位置——包括Windows Phone 7, Bada以及BlackBerry,更不用说针对各式屏幕的平台了,比如针对桌面机屏幕、游戏机屏幕和机顶盒平台屏幕。我们发现开发者都将iOS和Android作为起跳板,并在随后拓展到新的平台。现今非常流行的Appcelerator 和Marmalade工具的用户中有超过90%是定位在iOS,有超过80%是定位在Android。而CPT的整个用户群中有超过70%是定位在iOS,有超过60%是定位在Android。
在VisionMobile Developer Economics 2011年度报告中,我们发现开发者平均关注的平台个数为3.2个。大概过了一年,在跨平台工具报告中所作的调查里,我们发现开发者平均关注的平台个数变成了人均3.8个平台——而对于跨平台工具活跃用户而言,这个数字增长到4.5.换句话说,跨平台工具让开发者可以同时使用的平台数目增加了。
从经济角度来说,开发者可以同时使用的平台数据增加是有利于节省开销的。对于一个开发者而言,针对另外一个平台重写一个应用耗时耗力。通常要为一个新平台再做开发需要增加超过初次开发开销的50%。两外,由于各个平台和不同app stores相对应,app的提交和宣传开销也会增加。
我们同时还发现CPTs被用来处理新屏幕,也即新的联网设备、台式机、机顶盒和游戏机。在我们的调查中,27%的人提到他们还会应用他们主要的跨平台工具去处理Windows PC,另外有24%人会借用跨平台工具处理Mac台式机。由于Eric Schmidt预言说2012年中期在北美有超过半数的电视机将使用Android驱动,对新屏幕的处理能力将会成为跨平台工具的一个主要的增长点。由于我们的调查时间稍微靠前,在2011年底才出现的智能电视,没有表现出多大的势头。只有一个被调查者希望能有对智能电视的支持,还有一些人提到了智能电视平台,比如Google TV 和 LG TV。另外有一些开发者希望能有对Playstation3 和Vita、 Xbox 以及 MS Surface Table的支持。Linux被证明是最流行的备选平台,这是我们之前没有看到的,有76个受访者指出他们在处理嵌入式、服务器以及台式机问题时会应用Linux平台。
管理开发资源
跨平台工具出现的第三个重要原因是开发者资源管理问题。不管是单人开发还是顶级的五个游戏软件供应商联合开发,在为移动端进行开发时,都要面临这样的问题。
每一种主要的智能机、PC或游戏平台都有它自己的指定语言、它自己的API集、它自己的开发环境和它自己的app store。下面的表展示了主要的智能机平台的区别。
假设一个例子,有一个小的apps公司,它为iOS,Android以及Windows Phone7开发。他们需要雇佣三个团队,这三个团队擅长的技能都不一样。他们需要维护三套不同的代码库,并在功能增加或者修复bug时同时对这三套代码库进行操作。这是一个很大的挑战,也是为什么很多apps在不同stores的发布时间有几个月的延迟。另外,随着各个团队的工作进行,质量以及设计的一致性都会发生改变,尤其是将对新平台的开发外包给第三方的时候。为多个平台开发时,后期维护也很困难,因为三个平台需要各自建立开发文档,内部用户支持文档也需要三份。
因此,跨平台工具能为软件工作室提供产品投入市场时间的优势、为其节约开销。“我们发现通过使用跨平台工具,我们的产品投入市场的时间平均减少了70%。” InRuntime的CEO Paulius Uza如是评价。他接着说:“即使我们只是要为单个平台构建单个应用,我们也会选择跨平台工具。”
原文链接:http://www.webapptrend.com/2012/05/2940.html
【编辑推荐】