【51CTO譯文】近來關於新的移動網頁框架及移動平臺存在很多爭論。平心而論,這些工具在條款內容方面的混亂與模糊也是形成你們誤解的緣由之一。我但願經過幾條簡短的評述來儘可能清理這種認識層面上的混亂狀態。html
網頁移動應用程序並不等同於本地移動應用程序瀏覽器
許多人認爲Titanium及PhoneGap與Sencha Touch及jQuery Mobile屬於競爭對手關係。事實上它們並非同一類事物。我敢確定在拋出本身的觀點後,必定會有人對我進行駁斥。不過網頁移動應用程序更應該被看做一類網站,正如Basecamphq.com或是Twitter.com那樣。一款網頁移動應用程序運行於瀏覽器之上,並且其所調用的資源幾乎都是遠程的、存儲於服務器端的。固然不排除有些信息也會出現本地存儲的狀況,但歸根結底,它的本質是網站應用程序。服務器
本地應用程序運行於咱們的設備上,其所有資源都安裝在咱們的本地設備中。本地應用程序使用該設備的平臺、語言以及特殊的本地API以與設備接駁。比方說咱們沒法在網頁移動應用程序中運行NSString,由於只有本地應用程序才能訪問本地資源,而網頁移動應用程序作不到這一點。框架
「那麼它們之間到底有什麼區別呢?」區別以下: Sencha Touch 與 jQuery Mobile 工具
它們具有網頁移動框架。咱們可使用這些技術以建立基於網頁的移動應用程序。它們沒法訪問任何本地API。它們兩者的運行都基於JavaScript。而且儘管它們是以徹底獨立的方式處理相似的問題,但其仍然具備共同點,即它們爲移動頁面服務。性能
你們能夠在PhoneGap及Titanium上使用Sencha Touch與jQuery Mobile。若是咱們可以接受將html/js做爲本身的本地應用程序,還能夠將PhoneGap或Titanium嵌入瀏覽器中並將其放在應用程序在線商店或市場中。我想這可能正是誤解的根源。將Sencha Touch或jQuery Mobile進行本地化包裝並不能使其成爲真正的本地應用程序。該過程只是使其在外觀上像是本地應用程序而已。咱們可能從PhoneGap或Titanium中的API上得到過一些功能,但這仍然不必定能夠被稱爲「本地」應用程序。它們充其量只能看做是運行在本地設備上的網頁應用程序。這種將網頁技術引入本地化領域的應用技術至關了不得。 PhoneGap 與 Titanium PhoneGap及Titanium與Sencha Touch及jQuery Mobile之間並無太多類似之處。事實上,我能夠說得直白一些——PhoneGap與Titanium之間也並不徹底類似。固然它們兩者都容許你們自由分配本地或類本地型應用程序。它們也都不須要爲Sencha Touch或jQuery Mobile準備額外的「建立支持」。爲何?由於它們所支持的設備自帶瀏覽器。請記住,Sencha Touch與jQuery Mobile是運行在瀏覽器上的。由於PhoneGap及Titanium都容許咱們在特定設備的瀏覽器中運行程序,因此它們實際上是經過這種方式實現了對Sencha Touch及jQuery Mobile的支持。網站
PhoneGap與Titanium之間最大的不一樣在於它們所提供的功能。PhoneGap的服務內容更像是一種依附於瀏覽器的外殼,它表現得近似於本地應用程序,但本質上倒是html/JavaScript應用程序。Titanium則經過「頁面預覽」實現了徹底相同的功能,但卻更進一步,爲Cocoa Touch在瀏覽器以外提供了大量的本地API。根據個人觀察,這兩款應用程序在在線商店中有95%都並非基於網頁運行的。編碼
在Titanium上咱們經過JavaScript進行編碼、利用Titanium自身提供的獨特API。最終的結果是,應用程序在運行當中佔用的是本機性能以及本地用戶界面等等。歸納來講:咱們用JavaScript編碼,而其實際運行卻基於Objective-C(這裏指的是iOS類應用程序)。 我仍然對「完全終止本地應用」所得到的讚賞之聲持懷疑態度。在爲瀏覽器及設備分別製做過應用程序以後,我認爲將兩者相結合纔是正確的選擇,且極具發展空間。瞭解了各類技術之間的差別,我想這對於搞清各種工具的本質應該有所助益。htm