如何利用平台特性
第三部分 移动应用的构件
掌握移动开发
移动开发的掌握主要通过时间和精力投入,投入多寡取决于所学的平台,不同平台不一样。
Android和QT(注:原文如此,右图中黑莓以微弱优势取胜QT)是最容易学习的平台,受访者平均不到6个月就可以掌握。相反,Java ME和Symbian是最难学的平台,平均超过10个月。
和普遍看法相反,mobile web并非容易学习,在学习曲线中排名第六。不是因为HTML和JavaScript语言的复杂性,而是因为开发者需要学习复杂堆栈语言以及客户端和服务器之间的技术架构,此外还需处理不同浏览器的适配。
图为不同平台的学习曲线,不是所有的平台都一样。
分裂的衡量
“除了商务和UX考虑外,iPhone和iPad应用97%的代码是一样的”Alex Curylo,苹果设计大赛的“最具创意产品”获奖者。
分裂和软件一起产生。自从Java ME在2004-5年被广泛使用时,分裂已是移动行业的一大问题。尽管平台不断发展,仍不能解决,不仅对于使用多平台的开发者,还包括Apple,Google,微软,分裂问题可能会中断“平台的故事”。
此外,分裂也是品牌和商业组织进入移动领域所面临,它使复杂性增加新的维度。通过web来进行品牌延伸开发的网站,只要在2-3个主流的浏览器通过测试,就可以到达80%的设备。移动就复杂得多,在最常用的4大移动平台(iOS,Android,Symbian和黑莓)上开发也只能覆盖到20%的设备,而且平台之间代码复用率很低,开发需花费更多资源。由于其他平台到达率更低,要到达这20%以外的用户挑战很大。
我们通过调查开发者需为应用开发的版本数目(同样称为SKU:stock-keeping-units库存单位)来量化分裂程度。
“任何说ANdroid是分离的,一定没有黑莓和Nokia平台的开发经验。即使iOS,现在也需与6个不同设备适配。”Brian LeRoux,Brian LeRoux
通过量化可以看出Apple的iOS是分裂最少的平台(每应用4版本),通过经验,在过去这已被广泛注意到。Apple主要通过两方面管理分裂:一,手机和平板屏幕大小和分辨率标准统一;二,同为OEM和平台厂商的商业精简,使大部分的iPhone和iPad使用者升级到最新OS版本。
相比之下,Android平均需提供6个版本,与mobile web应用一样。
Apple和Android分裂的显著差异同样体现在安装在设备上的版本情况。根据Google在2011年5月发布的数据,有25%的活跃Android手机使用18个月前的平台版本;而发布iOS4后的两个月,只有20%的苹果3G设备没有升级。也就是,苹果设备在移动行业中运行环境是最新。
Android分裂被广泛地讨论,并常指为平台最大的问题。我们分析Android的分裂基于面5点:
1、版本发布速度:Android的创新速度是前作未有(2010年第二季度到2011年第二季度发布了三个主要版本),表明开发人员需要经常跟进核心平台自身的变化。
2、复杂激励机制:和苹果不同,Google没有自己的硬件—Android手机OEM对已售手机的更新缺乏动力。相反,他们更有动力缩短用户设备更换周期。如果手机是由运营商定制则更新更为麻烦。Google最近推出一个兼容计划,将强制手机厂商更新18月前的平台版本。
3、OEM分裂:很多手机OEM通过用户界面、提供自己的应用和功能来定制差异化的Android手机。例如HTC的Sense界面和索爱的Rachel,摩托罗拉的MotoBLUR,三星的TouchWiz和LG的S-Class的不同。所有的OEM增强部分,无论是UI层,功能还是bug修复,都会导致开发者对不同OEM的设备分裂进行跟踪。
4、屏的分裂:由于Android用于多种分辨率屏幕,多种设备形态,从智能手机,功能手机到DECT手机,机顶盒和车载设备,应用不可避免需要适配不同的屏幕尺寸,更不要说将Android代码库加载到Google没有设计的屏幕类型。例如,Android的Honeycomb平台是为平板和TV设计,这和为智能手机设计的Gingerbread平台很不一样,不仅仅只是平板屏幕大小的差异。
5、代码库分支:中国移动Ohone和中国联通Wophone是Andriod在中国市场的分支版本。此外还有诸如Gyanogen、MinuAndroid这些针对技术爱好者的非官方的定制版本。
普遍看法不同,研究发现相对而言Android仍不算分裂。相反,Java和Symbian的分裂问题最大,应用平均版本数是Android的2倍。黑莓,紧随Java ME,也是分裂严重的平台,这是黑莓设备能力、输入机制和屏幕分辨率的多样性造成。在2011年3月,接近40%的黑莓设备运行的操作系统版本低于版本5,而只有运行在版本5及以上的设备才支持北美的App World应用商店。
分裂的不利也是机遇。不少公司提供移植工具,公司包括Appcelerator, Ansca, Didmo, DragonRAD, iFactr, Innaworks, Metismo, Mobile Distillery, MonoTouch, MoSync, Open-Plug, Recursion software, Rhomobile, RunRev, Sencha, StackMob和TapLynx。
走向全球:本地化问题
迄今为止,有接近10亿应用和超过8亿台智能手机,应用是全球化现象。走向全球化,很多开发者需求处理本地化问题,例如将翻译为当地语言。本地化现在还不是主流问题:接近70%的受访者没有尝试应用本地化,或者在本地化的过程中碰到问题。由于应用全球发布越来越容易,开发地区敏感的应用和内容,例如新闻、音乐和社交网络,本地化将很快成为移动开发者面临的基本问题。目前,习惯于开发全球发布应用的开发者,例如Java ME平台使用者,他们报告的大都是本地化问题。
总体而言,有1/3的多地区发布的开发者认为最大的挑战在于本地化完全是人工处理的过程,其次是本地化的成本和管理语言包的复杂。但是平台厂商和OEM都没有提供架构来帮助开发者轻松将应用适配到不同的语言。我们注意到有些架构,协助翻译的软件,可用于移动应用本地化,例如Transifex。这给了那些需要为北美外市场提供差异化的移动平台厂商机会。
应用本地化市场如何发展仍不确定。目前有下面两种方式:
- 浅表式:在这种场景,应用本地化和电影类似,只需要将字幕转为本地文字。
- 广泛式:在这个场景,本地化是应用各方位的改变,以适应地区特色传统,文化,节假日和货币计量,例如将shoot-’em-up游戏在俄罗斯适配为Kalashnikov ,在德国适配为T3。
目前看来,未来发展趋势为广泛式本地化。专门从事本地化社区游戏,从虚拟货品到整个游戏为本地市场适配的创业公司不断涌现。这些公司包括专门从事拉丁美洲本地化的Mentez,针对亚洲用户的6waves,针对东欧市场的101XP。
帮助:所需支持
技术支持是移动应该开发过程中不可缺的一部分,包括sample代码,获得应用测试设备,以及使用没有文档说明的API。那么开发者愿意支付哪类支持?
在今年的开发者经济学研究,开发者对市场和技术支持的偏好很不一样。接近1/4的开发者愿意为应用商店付费。获得设备原型和获取隐藏API同样重要。另一大发现是开发者对运营商门户的兴趣下降了,相比在运营商门户上列出应用,开发者愿意为预装OEM设备支付2倍价格。
连接云:地图,社区和搜索
云连接不仅是移动开发者关注热点,也是众多创新所在。将应用连接Facebook或者Twitter的认证系统,通过Google地图获得当地信息,通过Flickr分享图片,在Amazon S3中存储文档,集成微软Bing,通过支付宝进行交易,开发者在自己程序可以利用这些优秀的功能。云API在长尾效应上没有缺陷,可编程网络(Programmable Web) 中列出超过3000 API,包括音乐(Last.fm),电话(Twilio),短信(411sync),广告(AdSense),购物(eBay)和娱乐(Salesforce.com)。此外,社交云API帮助开发者到达新用户,因为内容很容易在一个拥有上百万用户的社交网络中分享。
我们调查开发者正在使用哪些云API以及计划使用哪些。我们发现,iOS,Android和mobile web开发者在使用云API方面最为活跃,而黑莓和Java开发者最少使用。
地图API是开发者最常使用的云API,在调查中超过了40%的受访者使用,紧接是社区网络和搜索API。最活跃云API使用者,iOS开发者,大多(55%)使用了的地图和社交网络API。
排在地图、社交和搜索之后,开发者计划使用的是计费(有1/3受访者选择)云API,接下来是运营商计费和广告管理API。多用户游戏API也很受欢迎,有1/5的受访者计划在未来使用它。
目前尚未提供跨应用用户配置管理的云API。“目前应用都很独立,它们之间没有交互,对用户而言缺乏跨应用的体验”,Oliver Milcent,Momac的市场营销官指出。尽管社交网站(例如Facebook,Twitter)提供用户认证和获取用户消息和联系联系人,绝大部分设计为只读而非读写。网络游戏OpenFeint和Scoreloop为游戏提供共享高积分,排行榜和在用户间建立社交网络的途径,但并不是为广泛应用而设计。这为通过读写方式在应用之间实现共享的用户配置管理API提供商机。
审批:通过认证
2011年,厂商从过去错误中获取经验,移动平台趋向成熟。因此,审批再也不是现代平台的顶级挑战。老平台,例如Java Me和Symbian,依然受到审批问题的困扰,尤其是成本上。这在Java中特别突出,有50%的开发者报告将应用推向市场时存在这个问题。
新平台,例如iOS,有另外的市场化问题。38%的主要在iOS上开发的受访者报告应用商店的应用认证过程“没有条文规则”,而35%的人认为认证过程时间过长。
Android开发者最不在乎审批,因为Google对于应用认证是“放手”的。接近40%的受访者认为这方面遇到问题,另外有20%的说他们不需要应用认证。就认证而言,Mobile web可能是最容易的平台,因为没有对微件提交和其他web应用认证有正规的要求。
总的来讲,在2010年认证被开发者视为高级挑战,而现在已不再是。相反,在2011年,开发者将应用推向市场碰到的最大的两个问题(29%的受访者,和使用平台无关)是认证是时间和应用签名的复杂性。