跨平台手机软件开发技术纵览
当手持电脑刚步入主流的时候,开发者只有一个选择:Palm Pilot。仅仅过了五年,他们又不得不考虑塞班和Pocket PC (亦即后来的Windows Mobile)。截至2009年,已经至少有八个智能手机平台:两个Windows Mobile版本,两个黑莓版本, iPhone,Android,塞班,和webOS,更别提那些运行Java程序的传统功能手机。
?
影响
开发者不得不在操作系统中做出艰难的选择。更要命的是用户越来越分散,呼吁不同版本的软件,没有一个操作系统绝对领先。直到几个月前,他们还只有一个选择:为不同的手机平台单独开发软件,选择支持哪些平台,花费巨额费用,而得到的回报是一个未知数。
但是,这一问题正在发生变化。开发者有三个办法可以实现跨平台开发。技术虽然尚不成熟,但进展会很快。
HTML 5和手机网
第一个选择就是开发手机网页版软件。可以访问本地数据库的HTML 5让这一点成为可能。目前的问题有两个:第一,HTML 5的普及性;第二,用户是否愿意把HTML 5当成一种标准。第一个问题可以通过时间和来自其它操作系统平台的压力得以解决,而第二个问题是个大问题,用户接受网页版软件需要一个心理变化过程。
Flash
Adobe最近宣布进军移动领域,推出了支持大部分平台的Flash浏览器,以及一个“Flash到iPhone软件”编译器。这样,开发者只需在flash里编写所有软件,然后通过编译软件在多种手机浏览器上部署就可以了。
这也面临着HTML 5的问题,因为用户接受在浏览器内运行软件需要一个适应过程。此外,苹果反对在浏览器中使用Flash的强硬立场也是一个巨大障碍,因为需要两个完全不同的创建过程。
要想Flash得到普及,操作系统厂家不得不对网页版软件和非网页版软件一视同仁。
JavaScript和本地软件
有一类新的软件正在崛起,这些本地软件针对特定平台汇编,但使用用户界面的网页技术。这种方法潜力最大。最著名的要算PhoneGap。其它同类软件还包括Appcelerator和Rhomobile(使用Ruby on Rails网页语言)。
这些开源技术都允许开发者使用本地代码编写后台过程,然后利用HTML,CSS和JavaScript开发用户界面,然后把该软件编译成本地软件,然后上传到软件商店,通过下载安装进行发布。
但是手机开发的最大问题不是后端。所有平台的骨干部分都基于C或Java,问题在于开发用户界面需要深入了解各种手机。跨平台界面开发技术解决了大部分此类问题。该技术的唯一不足就是跨平台软件看上去不那么“本地化”,需要高超的设计和CSS技巧。
结论
随着智能手机行业的不断发展,我们很难看到一个绝对领先者(不同于PC领域),因而,开发者不得不针对多种平台开发软件。但是,现在有了跨平台开发技术,开发者可以大大降低开发成本,缩短学习过程。
这些技术目前处于早期阶段,但这是大势所趋。Flash,HTML 5和JavaScript将让“一次编写,处处通用”变为现实;届时,跨平台的手机应用软件开发将成为现实。