讀: 當前跨平臺開發工具有很多,例如PhoneGap、Titanium、jQueryMobile、Sencha等等,究竟哪一款才最適合開發者呢?本文與 開發者們共同探討了這個領域的新寵兒——PhoneGap。拜HTML5大潮所賜,更是加速了PhoneGap的發展。那么Phonegap的用戶體驗又 如何呢?
首先來看看,PhoneGap是什么?
官方的介紹是,PhoneGap是一個開源的開發框架,使用HTML、CSS和JavaScript來構建跨平臺的的移動應用程序,它使開發者能夠利用 iPhone、Android、Palm、Symbian、WP7、Bada和Blackberry智能手機的核心功能——包括地理定位、加速器、聯系 人、聲音和振動等,此外PhoneGap擁有豐富的插件,可以以此擴展無限的功能。
PhoneGap的性能:
1.兼容性——完全做到了written once,run everywhere(一次編譯到處運行)
2.標準化——PhoneGap采用W3C標準
熱門跨平臺開發框架的比較
隨著人們對跨平臺應用開發研究的不斷深入,當前市場上已出現了若干致力于跨平臺開發的產品級框架。從Web App到PhoneGap、MonoTouch、Titanium、jQueryMobile、Sencha再到Native App。其中PhoneGap、Titanium和Rhodes便是當下發展較為成熟的三款開發框架。
一起來看下他們的對比情況:
支持平臺
Titanium框架目前只支持Android和iPhone平臺,而PhoneGap和Rhodes則均聲稱支持當前大多數的主流平臺,圖中描述的是PhoneGap開發框架當前的兼容平臺。
編程語言
PhoneGap和Titanium框架均采用了HTML + CSS + JavaScript作為其編程語言,同時對HTML5和CSS3提供了相應的支持;而Rhodes則使用Ruby + Rails作為其編程基礎,使用Ruby來實現移動應用的邏輯。不難發現,上述三者都選擇了成熟的腳本和Web技術作為實現平臺兼容的入手點,這也是目前 實現跨平臺開發的唯一可行之路。
如圖所示:PhoneGap框架對當前主流移動平臺的支持細節
當前,PhoneGap已經對幾乎所有的主流移動平臺提供了支持,不過從圖中看以看出,受到來自技術和商業競爭的影響,PhoneGap在每個平臺上都有若干的功能點無法覆蓋,有待于進一步完善。
實現原理
在三者之中,PhoneGap和Titanium框架的實現原理較為相似,編程人員通過使用CSS和HTML來設計程序UI并控制程序的邏輯;同時,使用 JavaScript來調用API與對應平臺的SDK進行交互,以啟動手機的GPS、震動、重力感應等功能。使用PhoneGap和Titanium編寫 的程序會被打包并安裝到手機上,在應用運行時載入到手機的瀏覽器控件中解析執行。而Rhodes則依賴于Ruby + Rails的Web框架,在手機內部構建了一個完整的Web App server環境,使用Rhodes開發的應用可以像傳統Web服務器一樣,接收并處理用戶的操作事件,并訪問對應平臺的SDK API。
得出的結論:
如果想快速開發一個iOS/Android原生UI的程序,選擇Titanium或許更適合
如果想實現一個跨平臺的基于HTML的移動應用,PhoneGap或許更適合
有技術人員在知乎網拋出了“Titanium、PhoneGap、jQueryMobile、Sencha誰能談談實際使用經驗?”的話題,網友們各抒己見。編輯們整理了部分,與大家一起探討下,當然,也歡迎您在評論里發表自己的看法。
Titanium、PhoneGap、jQueryMobile、Sencha應用體驗的比較
技術人員 楊鍇:
1.PhoneGap是比較底層的庫,對表現層沒有支持,所以用phoneGap開發需要再加上jQuery或XUI,YUI這類UI層的東西;
2.phoneGap主要的好處是學習成本不算高,缺點是速度慢,內存容易溢出。
3.jQuery主要優勢是微軟支持,學習資料多,熱度高。缺點是學習成本高,默認模板很難看,想做個性化修改特別麻煩,而且速度也因為兼容太多瀏覽器 (連IE也兼容,這對移動應用多累贅啊)比較慢。基本上如果你的技術方案是phoneGap+jQuery,最好不要做超過5頁的產品設計,而且盡量不要 做拍照,文字輸入等互動功能。
4.sencha主要的優勢其實是云端服務支持,但對國內的人來說就享受不到了。
5.Titanium是我們遇到的國外的HTML5工具效率最好的一個,因為他們把不少HTML和CSS代碼預編譯成了JavaScript,這點在開發Julia時我們也借鑒了。缺點是學習曲線比較高,當然如果你是JS熟手就容易很多。
5.Julia我們自己做的開發工具,本周末我們會開放Julia的0.9版本,同時源碼會放到Github上。優點是運行速度快,學習曲線低,而且會在國內做開源社區。缺點是我們剛開始各方面資源都還不完備,而且大多數人不太相信中國人能做出能用的東西來。
產品設計師 張晨暉:
1.PhoneGap(with jQTouch):可用API比較少,但可選UI樣式比較多。
2.Titanium Mobile:更多依靠JavaScript,因此開發意味比設計意味更重。相比來說,可用API更多一些。值得一提的是,需要使用它自己的桌面應用來編譯和打包app。
3.Sencha Touch:是一個HTML5,CSS3和JavaScript結合的Web App開發框架,更多用來開發Web App而不是提交到Appstore的源生應用,但能在Webkit瀏覽器里支持多種手勢操作。
前端開發工程師 柴春燕:
jQueryMobile、Sencha是實現移動應用的前端呈現,Sencha官方的說法是“提供移動平臺的解決方案”,實現的效果很接近Native App了,但是這個庫很大,如果是要做Web App的話還是可以用一用的,但是做Mobile Web App,性能也是一個都很大的問題。
如果單獨看Phonegap運行效率與用戶體驗又是如何?
面孔網:
PhoneGap是比較出名的一個跨平臺解決方案。但是PhoneGap并不支持UI設計,它僅僅是瀏覽器調用本機代碼(比如獲取地理位置)的一層接口。UI設計還需要別的JS類庫支持。
在Google的NexusOne(1G的CPU)上面測試,加載一個PhoneGap和jQuery Touch用時0.9秒左右,這僅僅是基礎庫的加載,應用本身的HTML、CSS和JS代碼還都沒有計算。性能很成問題。性能,也就是運行速度是現有跨平 臺工具的首要問題。
Web開發者和設計師 柴源:
在iOS平臺勉強過的去,在Android平臺上比較慘,特別是一些比較老的低配置機型上。
介紹一些我開發PhoneGap web app優化經驗:
1.少用圖片,特別是大面積的png圖片;
2.巧用-webkit-transform 屬性,在iOS平臺上,如果你的dom帶有-webkit-transform的3d屬性,系統將開啟硬件加速,你會發現你的動畫幀率瞬間上了一個階;
3.盡量避免使用
4.盡量簡化dom樹的層級;
最后總之一句話:無論你使出渾身解數來優化,Web app距離Native的性能差距還是一大截,慎用。
總結:
PhoneGap針對不同平臺的WebView做了擴展和封裝,使WebView這個組件變成可訪問設備本地API的強大瀏覽器,所以開發人員在 PhoneGap框架下可通過JavaScript訪問設備本地API,實現WebView與SDK API雙向通信。但PhoneGap所體現的混合類型的應用還不能完全取代原生應用,在一些復雜的API調用或者涉及高性能計算的應用開發上,原生應用還 是唯一的選擇。除此以外的大多數場合,混合類型的應用以很小的性能犧牲為代價,帶來了極大的靈活性和開發效率。用PhoneGap官方的一句話概況其特點 是:“written once,run everywhere”——一次編譯到處運行。
當然,目前PhoneGap缺陷還是蠻多的,比如運行速度慢,UI反應延時,這是個致命傷。不過,這種問題是會隨著技術的進步而消失的。
本文由用戶
jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!