溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

跨平臺移動應(yīng)用開發(fā)的挑戰(zhàn) phoneGap vs. Titanium vs. Rhodes

發(fā)布時間:2020-07-08 21:44:05 來源:網(wǎng)絡(luò) 閱讀:976 作者:glex 欄目:開發(fā)技術(shù)

原文,有能力的同學(xué)可以自行去以下地址閱讀: http://great-way.appspot.com/2010/09/2/Mobile-Apps-cross-platform-development-challenge:-PhoneGap-vs.-Titanium-vs.-Rhod.html


也許你對這個概念還不是很清楚,簡單的說,這三個都是跨平臺移動應(yīng)用開發(fā)框架,也就是說,你一次開發(fā)的東西能夠在不同的平臺上運(yùn)行,前面的兩者更是具備了將WEB應(yīng)用本地化這樣強(qiáng)大的內(nèi)容;譯者注。


誰是跨平臺移動應(yīng)用開發(fā)框架里的佼佼者?讓我們來比較一下這三個框架。

首先跨平臺兼容性僅僅是為了提供一個一致的外觀,感覺和功能。所以,如果如果你要找一個用來開發(fā)3D游戲,多媒體,動畫應(yīng)用的框架,那么顯然你走錯了方向。PhoneGap, Titanium 和Rhodes 全部是基于WEB技術(shù)并且致力于為網(wǎng)絡(luò)開發(fā)者繼續(xù)在移動應(yīng)用上發(fā)揮他們的技術(shù)專長。


PhoneGap 和Titanium使用了傳統(tǒng)web開發(fā)的HTML,CSS和JS他們通過提供JS的API接口讓原本的WEB應(yīng)用具備訪問本地設(shè)備特性的能力(如GPS/地理位置/震*動/聲音/多媒體). 而RHODES則不同,它基于RUBY并且受RAILS的啟發(fā),它在終端模擬了一個完全功能的WEBSERVER,然后通過這個WEBSERVER讓應(yīng)用具備訪問本地設(shè)備能力的API調(diào)用


Titanium 和PhoneGap通過一組JS的API暴露智能手機(jī)的本地能力,而應(yīng)用程序本身的邏輯(由HTML CSS JS構(gòu)成)則運(yùn)行在本地的一個WEBVIEW CONTROL里。 通過PHONEGAP JS API,傳統(tǒng)意義上的web應(yīng)用具備了訪問本地功能如地理信息,攝像頭,聯(lián)系人,數(shù)據(jù)庫,文件系統(tǒng)等。

基本上所有的手機(jī)SDK提供的功能都能夠通過JS橋接到傳統(tǒng)的WEB應(yīng)用程序,當(dāng)然(基于安全的考慮)運(yùn)行在瀏覽器端的web應(yīng)用程序則不能訪問這些本地設(shè)備的調(diào)用。


Titanium 網(wǎng)站宣稱“雖然Titanium 應(yīng)用程序使用HTML CSS和JS編寫的,但是他們最終會被編譯成本地的代碼(設(shè)備相關(guān))然后像單獨(dú)的應(yīng)用程序一樣運(yùn)行,這些應(yīng)用程序有非常強(qiáng)大的API支撐來獲得設(shè)備端的所有特性,如GPS,攝像頭等等“ 這段聲明并不意味著Titanium 能夠把你哦HTML CSS JS編譯成本地代碼,這些東西仍然是以資源的形式附在運(yùn)行包中,就像傳統(tǒng)的應(yīng)用中的圖像資源那樣,然后當(dāng)應(yīng)用程序運(yùn)行的時候,這些資源就在UIWEBVIEW控件中運(yùn)行。

PHONEGAP的原理大致類似,從架構(gòu)的角度看,這兩個框架非常類似,那么他們的區(qū)別在哪里呢?

最值得注意的是,PHONEGAP并不通過JS暴露本地的UI接口,而Titanium 則有完整的本地UI接口,通過JS調(diào)用就能夠獲得本地一樣的UI,通過這些UI JS接口Titanium 的應(yīng)用能夠比PhoneGap的應(yīng)用看起來更加接近本地。另一方面PhoneGap支持的移動平臺則比Titanium 要多。PhoneGap的API比Titanium 更加通用,能夠用在諸如:Iphone,Android,黑莓,(甚至是WIKI上提到的NOKIA 塞班 MAEMO以及PALM的WebOS等) Titanium則主要針對Iphone和Android,其API有些是平臺相關(guān)的(如IPHONE UI API),使用這些API會降低這些應(yīng)用的跨平臺能力)

所以如果你關(guān)心的是你的應(yīng)用如何看起來更加本地一點(diǎn),那么Titanium 是更好的選擇,如果你期望你的應(yīng)用能夠被移植到更多的平臺上,那么PhoneGap無疑是最佳選擇。


那么關(guān)Rhodes什么事呢?


Rhodes應(yīng)用程序框架使得開發(fā)者能夠?qū)⒃镜腤EB應(yīng)用通過修改HTML模板和編寫RUBY代碼創(chuàng)建本地應(yīng)用程序,使用Rhodes編寫的應(yīng)用程序具備本地應(yīng)用程序一樣的執(zhí)行效率(譯者注:這實(shí)際上不太現(xiàn)實(shí),通過框架封裝的即使是本地應(yīng)用程序,效率也會有所降低,大概Rhodes的唯一有點(diǎn)也就是讓RUBY程序員快速上手吧),同時保留了Web應(yīng)用程序所具有的全部特性。他們只需要編寫一次應(yīng)用程序就能夠部署到大部分的平臺上,如IPHONE,WM,黑莓等。

Rails的開發(fā)者使用這個框架在一兩天之內(nèi)就能夠在移動應(yīng)用開發(fā)上發(fā)揮作用,當(dāng)然這個框架也有它的缺陷,例如它對多媒體的支持不足使得它只能處理數(shù)據(jù)相關(guān)的應(yīng)用,雖然理論上講你需要這些特性的時候你都可以通過平臺相關(guān)的本地調(diào)用來實(shí)現(xiàn),但是這似乎真正做起來不那么簡單,另外,如果使用了這些平臺相關(guān)的本地開發(fā),那么所謂的跨平臺應(yīng)用開發(fā)框架就失去它的意義了,不是嗎?另一個Rhodes的有點(diǎn)就是RhoSync,RhoSync通過Web服務(wù)從企業(yè)應(yīng)用服務(wù)器調(diào)用數(shù)據(jù),所有的數(shù)據(jù)可以保存在Web服務(wù)端,同時記錄本地用戶已經(jīng)收取的數(shù)據(jù)。(這個優(yōu)點(diǎn)實(shí)在牽強(qiáng)),使用它來編寫,配置和部署應(yīng)用程序要比近年來其他的語言框架要簡單的多。(這一點(diǎn)倒是能夠理解,RUBY么)

當(dāng)然上面的說法不是說PhoneGap和Titanium 不能通過Web服務(wù)調(diào)用數(shù)據(jù)(所以說這一點(diǎn)上,Rho優(yōu)勢并不明顯)


最后這三個框架的License并不相同

PhoneGap完全開源可以免費(fèi)使用

TitaniumBeta階段免費(fèi),正式發(fā)布后將收費(fèi)

Rhodes收取每個項(xiàng)目500$并且在開始開發(fā)前需付清。

Surgeworks 最早收購了Rhoedes,即使是在Rhodes最成熟的時候,它在給開發(fā)者帶來驚喜的同時都構(gòu)成了挑戰(zhàn),這個框架在迅速的演化。很多問題都得到了解決。我們的Rhodes小組也在積極的向Rhodes貢獻(xiàn)補(bǔ)丁。

同時我們也很關(guān)注PhoneGap和Surgeworks ,我更傾向于PhoneGap因?yàn)樗莻€開源,免費(fèi)使用的項(xiàng)目


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI