跨平台移动应用开发的挑战 phoneGap vs. Titanium vs. Rhodes

2023-05-13,,

原文,有能力的同学可以自行去以下地址阅读: http://great-way.appspot.com/2010/09/2/Mobile-Apps-cross-platform-development-challenge:-PhoneGap-vs.-Titanium-vs.-Rhod.html

也许你对这个概念还不是很清楚,简单的说,这三个都是跨平台移动应用开发框架,也就是说,你一次开发的东西能够在不同的平台上运行,前面的两者更是具备了将WEB应用本地化这样强大的内容;译者注。

谁是跨平台移动应用开发框架里的佼佼者?让我们来比较一下这三个框架。

首先跨平台兼容性仅仅是为了提供一个一致的外观,感觉和功能。所以,如果如果你要找一个用来开发3D游戏,多媒体,动画应用的框架,那么显然你走错了方向。PhoneGap, Titanium 和Rhodes 全部是基于WEB技术并且致力于为网络开发者继续在移动应用上发挥他们的技术专长。

PhoneGap 和Titanium使用了传统web开发的HTML,CSS和JS他们通过提供JS的API接口让原本的WEB应用具备访问本地设备特性的能力(如GPS/地理位置/震*动/声音/多媒体). 而RHODES则不同,它基于RUBY并且受RAILS的启发,它在终端模拟了一个完全功能的WEBSERVER,然后通过这个WEBSERVER让应用具备访问本地设备能力的API调用

Titanium 和PhoneGap通过一组JS的API暴露智能手机的本地能力,而应用程序本身的逻辑(由HTML CSS JS构成)则运行在本地的一个WEBVIEW CONTROL里。 通过PHONEGAP JS API,传统意义上的web应用具备了访问本地功能如地理信息,摄像头,联系人,数据库,文件系统等。

基本上所有的手机SDK提供的功能都能够通过JS桥接到传统的WEB应用程序,当然(基于安全的考虑)运行在浏览器端的web应用程序则不能访问这些本地设备的调用。

Titanium 网站宣称“虽然Titanium 应用程序使用HTML CSS和JS编写的,但是他们最终会被编译成本地的代码(设备相关)然后像单独的应用程序一样运行,这些应用程序有非常强大的API支撑来获得设备端的所有特性,如GPS,摄像头等等“ 这段声明并不意味着Titanium 能够把你哦HTML CSS JS编译成本地代码,这些东西仍然是以资源的形式附在运行包中,就像传统的应用中的图像资源那样,然后当应用程序运行的时候,这些资源就在UIWEBVIEW控件中运行。

PHONEGAP的原理大致类似,从架构的角度看,这两个框架非常类似,那么他们的区别在哪里呢?

最值得注意的是,PHONEGAP并不通过JS暴露本地的UI接口,而Titanium 则有完整的本地UI接口,通过JS调用就能够获得本地一样的UI,通过这些UI JS接口Titanium 的应用能够比PhoneGap的应用看起来更加接近本地。另一方面PhoneGap支持的移动平台则比Titanium 要多。PhoneGap的API比Titanium 更加通用,能够用在诸如:Iphone,Android,黑莓,(甚至是WIKI上提到的NOKIA 塞班 MAEMO以及PALM的WebOS等) Titanium则主要针对Iphone和Android,其API有些是平台相关的(如IPHONE UI API),使用这些API会降低这些应用的跨平台能力)

所以如果你关心的是你的应用如何看起来更加本地一点,那么Titanium 是更好的选择,如果你期望你的应用能够被移植到更多的平台上,那么PhoneGap无疑是最佳选择。

那么关Rhodes什么事呢?

Rhodes应用程序框架使得开发者能够将原本的WEB应用通过修改HTML模板和编写RUBY代码创建本地应用程序,使用Rhodes编写的应用程序具备本地应用程序一样的执行效率(译者注:这实际上不太现实,通过框架封装的即使是本地应用程序,效率也会有所降低,大概Rhodes的唯一有点也就是让RUBY程序员快速上手吧),同时保留了Web应用程序所具有的全部特性。他们只需要编写一次应用程序就能够部署到大部分的平台上,如IPHONE,WM,黑莓等。

Rails的开发者使用这个框架在一两天之内就能够在移动应用开发上发挥作用,当然这个框架也有它的缺陷,例如它对多媒体的支持不足使得它只能处理数据相关的应用,虽然理论上讲你需要这些特性的时候你都可以通过平台相关的本地调用来实现,但是这似乎真正做起来不那么简单,另外,如果使用了这些平台相关的本地开发,那么所谓的跨平台应用开发框架就失去它的意义了,不是吗?另一个Rhodes的有点就是RhoSync,RhoSync通过Web服务从企业应用服务器调用数据,所有的数据可以保存在Web服务端,同时记录本地用户已经收取的数据。(这个优点实在牵强),使用它来编写,配置和部署应用程序要比近年来其他的语言框架要简单的多。(这一点倒是能够理解,RUBY么)

当然上面的说法不是说PhoneGap和Titanium 不能通过Web服务调用数据(所以说这一点上,Rho优势并不明显)

最后这三个框架的License并不相同

PhoneGap完全开源可以免费使用

TitaniumBeta阶段免费,正式发布后将收费

Rhodes收取每个项目500$并且在开始开发前需付清。

Surgeworks 最早收购了Rhoedes,即使是在Rhodes最成熟的时候,它在给开发者带来惊喜的同时都构成了挑战,这个框架在迅速的演化。很多问题都得到了解决。我们的Rhodes小组也在积极的向Rhodes贡献补丁。

同时我们也很关注PhoneGap和Surgeworks ,我更倾向于PhoneGap因为它是个开源,免费使用的项目

《跨平台移动应用开发的挑战 phoneGap vs. Titanium vs. Rhodes.doc》

下载本文的Word格式文档,以方便收藏与打印。