張居彥
摘 要 該文針對目前比較流行的HTML5移動應用框架進行了闡述,分別介紹了PhoneGap、Sencha Touch、jQuery Mobile、Titanium Mobile等四種常用的框架特點及運用。
關鍵詞 HTML5 移動應用框架 PhoneGap 跨平臺
中圖分類號:TP311 文獻標識碼:A
目前,隨著Google的Android手機和蘋果的iphone手機的逐漸普及,越來越多開發者加入到移動應用開發的大軍當中。其中,Android應用是基于Java語言基礎上進行開發的,而蘋果公司的iphone則是基于C語言開發的。它們幾乎無法融合,就算是都采用 Java 接口的 Android 和 BlackBerry,它們的 API 接口也不一樣,如果想開發一套原生的應用,必須在每個平臺調用各自的原生 API。
為了解決上述問題,跨平臺的移動應用開發技術逐漸地引起了開發者的關注。隨著人們對跨平臺應用開發研究的不斷深入,當前市場上已出現了若干致力于跨平臺開發的產品級框架。為了更好地了解當前的跨平臺開發框架技術,本文介紹當下發展較為成熟的四款開發框架:
1 PhoneGap
PhoneGap是一款開源的手機應用開發平臺,它僅僅只用HTML和JavaScript語言就可以制作出能在多個移動設備上運行的應用。PhoneGap將移動設備本身提供的復雜的API進行了抽象和簡化,提供了一系列豐富的API供開發者調用,只要你會HTML和Javascript或者Java語言,就可以利用PhoneGap提供的API去調用各種功能,PhoneGap就能讓你可以制作出在各種手機平臺上運行的應用,這對移動應用開發者來說無疑是個福音。目前,PhoneGap已實現對iPhone/ipad、Android、Symbian、Palm、黑莓各版本絕大部分功能的支持。
PhoneGap可以將基于標準 HTML、CSS和Javascript 打造的頁面視圖封裝為本地客戶端應用,目前支持多種移動平臺。在數據資源傳輸方面,可以采用普通 WebApp 所使用的 Ajax等方式。PhoneGap 在頁面視圖與本地應用之間提供了一個橋梁,允許開發者通過 JavaScript 訪問并使用移動設備的硬件功能,比如攝像頭、聯系人信息、麥克風等;這是單純依靠移動瀏覽器運行的 WebApp 類應用所無法實現的。
2 Titanium
Appcelerator公司的Titanium Mobile可以讓您使用Javascript API來編寫app。不過Titanium把你的代碼編譯成Native的iPhone或Android app,這意味著它并不是一個真正的Web框架,而是一個兼容層或者編譯器。
Titanium允許web開發人員使用JavaScript和一點點XML之類的其他相關技術,可以實現高性能、更換皮膚很方便的Native App,而不需要額外去學習Objective C或者Cocoa Touch等技術了。
Titanium Mobile 可以直接將 JavaScript 編譯為ios 或 Android 平臺的本地應用代碼。開發者們經常將它與 PhoneGap 做比較,其實它們的機制是截然不同的。在 Titanium 中,開發者需要按照它規定的語法書寫應用代碼,而無法使用原生 Javascript。對于資深Javascript 開發者來說,這種方式不會帶來很大困難,而新手則需要學習和適應。由于沒有標準的 Javascript 支持,造成開發基于 Titanium Mobile 的移動應用,需要額外的學習新的腳本。
3 Sencha Touch
Sencha,翻譯意為“煎茶”,是指一種在日本很流行的綠茶品種,在Java開發的傳統中,它代表了軟件開發的一個新的水平階段。目前Sencha Touch已經成為構建移動HTML5應用的領先框架。Sencha Touch是一個基于HTML5的移動應用開發框架,其前身是Ext。使用Sencha Touch,開發者可以構建在iPhone、Android和BlackBerry touch等設備上運行的移動web應用,其效果看起來如同本地應用。Sencha Touch是專門為移動設備開發應用的Javascript框架,全面兼容Android和Apple ios。用戶界面組件及數據管理全部基于HTML5和CSS3,通過Sencha Touch你可以創建非常像native app的web app。Sencha是目前為止所發現的最強大的應用于移動平臺的框架。它將自己定位為框架不是類庫,也充分說明了這一點。隨著它的出現,移動平臺的移動應用用戶體驗設計會得到提升,對HTML5、CSS3在移動平臺上的運用及推廣也起到一定的作用,甚至是推進作用。HTML5技術雖然還在發展與完善當中,但未來的移動平臺的應用,將會將其納入其中,Native App會慢慢淡出人們的視線,甚至是終結。該框架最大的特色就像它的名字一樣,增強了對手持移動設備觸控操作的強力支持,除了支持瀏覽器標準的觸摸事件,還額外添加了如tap, double tap, swipe, tap-hold, pinch 和rotate 等富有吸引力的操作事件,使用戶體驗到與原生程序一樣的效果。
4 jQuery Mobile
jQuery一直以來都是為桌面瀏覽器設計的,是非常流行的富客戶端及Web應用程序開發中使用的JavaScript類庫,沒有特別為移動應用程序設計。jQuery Mobile是一個新的項目用來填補在移動設備應用上的缺憾。它在jQuery框架的基礎上,提供了一定范圍的用戶接口和特性,開發人員可以在移動應用上使用。使用該框架可以節省大量的js代碼開發時間。
jQuery Mobile 是jQuery 在手機上和平板設備上的版本。jQuery Mobile 不僅會給主流移動平臺帶來jQuery核心庫,而且擁有完整統一的jQuery移動UI框架。支持全球主流的移動平臺。JQuery mobile構建于JQuery以及JQuery UI類庫之上,為前端開發人員提供了一個兼容所有主流移動設備平臺的統一UI接口系統。擁有出色伸縮性,輕量化以及漸進增強特性與可訪問性。JQuery mobile針對的是所有的觸摸屏幕設備與平板電腦。它為移動Web網站的構建提供了一系列布局工具,如工具欄、導航,及UI組件,如列表和標簽組件等,內置了6套不同樣式的CSS主題框架,可以組合應用于移動web。
jQuery Mobile可以輕松地幫助我們實現非常好看的,可跨設備的Web應用程序,jQuery Mobile開發的Web應用像Native App,其中包含了Web應用中的各種常用部件,如對話框、表單、列表、按鈕、工具條等,jQuery Mobile使用Ajax加載頁面,實現炫麗的頁面切換效果
5 總結
跨平臺的移動應用開發框架均著眼于解決不同平臺之間應用開發的兼容性問題,因而討論某一框架的優劣,不應拿諸如使用該框架 是否能開發出 3D 游戲這樣的標準來對其進行考量。通過上文的比較,筆者認為開源框架 PhoneGap 的優勢更為均衡,具有更好的發展前景。
參考文獻
[1] phonegap.http://www.phonegap.cn,2011.
[2] Peter Lubbers(李杰). HTML5 高級程序設計.北京:人民郵電出版社,2010,5-15.
[3] GiulioBai.JQuery Mobile First Look.UK:Packt Publishing,2011,9-16.
[4] Jon Reid.JqueryMobile.USA:O'Reilly Media,2011,9-22.