移动应用开发技术选择六要素

这是一个新的时代、新的机会。自从2007 年1月乔布斯揭开iPhone的面纱以来,移动时代的大潮滚滚向前,已经走过近5个年头。这个产业正在从新生走向成熟阶段。在这样的产业时代背景下,各种不同的系统平台,不同的技术路线,自然是层出不穷、迅猛发展。对于每一个投身于移动行业的软件开发者而言,充分地了解和掌握各个平台的发展状态,搞清楚各种开发技术与方向的优劣,是关系到产品与自身发展的头等大事。

平台选择

从2007年到现在,涌现出了不少面向移动设备的操作系统平台。先不论原先已存在的Symbian和Windows Mobile系统,新的系统就有苹果的iOS、Google的Android、Palm/HP的WebOS、Nokia的Maemo/MeeGo、三星的bada,以及RIM新的基于QNX的PlayBook Tablet OS。

一个真正占有市场的平台才能吸引更多开发者为其开发更多应用,更多应用又能反过来替平台争取更多用户,从而促进平台的进一步发展。正是由于平台与应用之间相辅相成的关系,使得平台的选择成为开发者首要关注的重点。

对于开发者而言,一个移动平台的意义,并不只是一个操作系统而已,它还包括了与之相联系的整个生态环境。平台的市场占有率直接决定了应用能够被多少消费者使用,平台本身又能带给开发者多少回报。这些都是在平台选择中必须考虑到的问题。

无疑,iOS和Android是目前占有市场份额最大的两个平台。这两个平台不但用户众多,拥有的开发者数量、应用数量和下载量也都远远高于其他平台。一些数据可以反映这种情况: 在今年最新的北美地区智能手机市场份额调查中,Android及其定制版占有了58.67% 的市场份额,iPhone占有14.67%,Symbian占有14.33%,BlackBerry占有9.2%,bada占有3.33%,而Windows Phone仅占有1.67%的份额。

作为一个平台,iOS有以下几大特点:第一,iOS是一个相当一致的系统。目前苹果仅有三种运行iOS的设备:iPhone、iPad和Apple TV。从API方面来说,这三种设备的不同代产品各自的设备属性都相当固定,而各自的操作系统版本也都保持一致,这对开发者来说是一件极其方便的事情;第二,iOS系统本身具备了相当良好的,内建流畅的用户交互实现。就算是一个照着教科书中规中矩写出来的iOS程序,其用户体验也会不会差;第三,苹果提供了一个非常良好的iOS程序开发环境。只有很少的功能是模拟器无法模拟而必须在真机上进行调试测试的;最后,苹果本身的品牌也是一个相当有影响力的支持。

另一个主要的平台就是Android。得益于Google对Android的开放(不向厂商收取授权费), 以及大大小小各种厂商的机海战术,Android手机的占有量已经是第一位了。因此,选择了Android平台就意味着选择了最大的用户群体。另外,Android本身源码的开放性,对于一些需要利用底层实现细节的开发者来说,是个很好的特性。而且从开发本身来说,Android 所采用的开发语言和环境, 相对来说比iOS 的门槛要低,这是它的优势所在。但也正是因为Android的开放,造成了市场上Android设备的规格特性各不相同,增加了应用开发中机型适配所带来的大量开发和测试工作。

除了iOS和Android这两大巨头之外,Microsoft的Windows Phone 7从去年开始也大张旗鼓地开始发力。在WP7平台上,Microsoft仍然扮演着系统提供商的角色, 硬件生产仍然是各个厂商的事。但Microsoft为了保证用户体验的一致性,对设备的指标作了非常严格的规定。因此,目前WP7还没有机型适配的问题。在新的移动市场上,Microsoft显然来晚了一步, 成为占有比较小的市场份额的竞争者,这一点远远比不上iOS和Android。 另外,WP7提供了专有的Metro UI界面形式,展现了跟iOS和Android都截然不同的风貌,这对其是有益的。从开发本身来说,Microsoft为WP7开发者提供的工具有比较大的限制。除了 Silverlight和XNA之外就没有别的支持了。很多非Web Based的、非游戏类应用无法在现有的平台上进行开发。这不能不说是一个弱点。

三者之外,除了BlackBerry在北美地区的占有率较高以外,别的平台都只占有少少的一点份额。BlackBerry的系统,已是一个落后整个产业十余年的东西,BlackBerry赖以生存的基础是集成到系统中的push mail机制,而不是它的系统本身是先进还是落后。Symbian则是连Nokia自己都放弃的东西,不会对现在的开发者有多大的吸引力。webOS生不逢时,空有良好的用户体验和很有特色的开发方式,却最终被HP所抛弃。三星的bada则仿佛是其自身的一亩三分地,只在wave系列中推出。

从市场占有率来看, 开发者首选的平台无疑是iOS和Android了。除了已占有的市场份额,以及目前所能看到的发展前景之外, 对开发者来说,还有一点非常重要:这个平台对开发者的回报如何,对于开发者的支持如何。在这一点上目前苹果比Google做得好。各种调查统计数据表明,在iOS平台上的开发者收入要高于Android平台。另外,苹果对从设备到应用的严格控制虽然为人诟病,但也无可非议地为应用开发者创建了一个单一而良好的环境。反过来,Google的开放政策变成了不管不问政策,由于没有审查机制,导致Android Market里有很多质量低劣的应用,甚至是恶意应用。官方的Android Market尚且如此,各种第三方的商店市场就更不用说了。

当然,在做平台选择时,可能还会有一些其他因素存在。比如在iOS上,应用无法读取用户的短信记录,也不能在不通知用户的情况下发送短信或者拨打电话。对于有这样需求的应用(我们姑且先不谈是否恶意或者侵犯隐私)就只能在Android上开发了。因此,对于平台的选择,市场占有量、生态环境的优劣、以及平台是否能提供所需要的具体功是几个比较重要的考虑因素。