用jQuery Mobile做HTML5移動應用的三個優缺點

JQuery Mobile & HTML5

使用HTML5和JavaSript構建一個手機應用,你需要寫很多JavaScript代碼。然而,帶有觸摸屏的設備的UI控制和處理與標準的Web應用程序非常不同。因此,你會想要使用現成的手機HTML5/JavaScrip框架(除非你有很多的時間並且打算將所有東西重新構建)。現在有很多現成的框架可供選擇:jQTouchSencha Touch 等等.

JQuery Mobile 和 HTML5 的 3個優點

1. 上手迅速並支持快速迭代:在一個星期多一點的時間裏,通過閱讀JQuery Mobile文檔以及O’Reilly出版的JQuery Mobile書籍,我完成了一個可以工作的app初步版本。在此之前我沒有HTML5 / JQuery Mobile開發經驗。與Android和iOS相比,使用JQuery Mobile和HTML5構建你的UI和邏輯會比在原生系統下構建快得多。

譯註:原生系統:原裝的操作系統,例如Android原生系統是Google發佈未經修改的系統。在本文中,原生應用指直接用系統提供的API開發的程序,與JQuery Mobile開發的程序相對應。

我發現Apple的Builder接口的學習曲線十分陡峭,同樣學習令人費解的Android佈局系統也很耗時間。此外,要使用原生代碼將一個list view連接到遠程的數據源並具有漂亮的外觀是十分複雜的(在Android上是ListView, 在iOS上是UITableView)我能夠通過已經掌握的JavaScript和HTML/CSS知識快速地實現同樣的功能,無需學習新的adapter,delegate等等抽象概念,只要編寫JQuery代碼就可以做到。

2.避免麻煩的應用商店審批過程以及調試、構建帶來的痛苦:爲手機開發應用,尤其是iOS系統的手機,最痛苦的過程莫過於通過Apple應用商店的審批。想要讓一個原生應用程序發佈給iOS用戶,你需要等待一個相當長的過程(需要好幾天,甚至可能是好幾周)。不僅在第一次發佈程序時要經歷磨難,以後的每一次升級也是如此。這使得QA和發佈流程變得複雜,還會增加額外的時間。由於JQuery Mobile應用程序僅僅是一種web應用程序,因此它繼承了所有web環境的優點:當用戶加載你的網站時,他們就馬上“升級”到最新的版本。可以馬上修復bug和添加新的特性。即使是在Android系統——應用市場的要求比起Apple環境要寬鬆得多,在用戶不知不覺中完成產品升級也是一件很好的事情。

進一步的好處是,發佈beta或測試版本會更加容易。只要告訴用戶用瀏覽器打開你的網址就可以了!不需要考慮iOS令人抓狂的DRM,也不需要理會Android必須的APK。

3.支持跨平臺和跨設備開發:一個巨大的好處是,我的應用程序馬上可以在Android和IOS上工作,同樣也可以在其他平臺上工作。作爲一個獨立開發者,爲不同的平臺維護基礎代碼是一項巨大的工作。爲單個手機平臺編寫高質量的手機應用需要全職工作,爲每個平臺重複做類似的事情需要大量的資源。應用程序能夠在Android和IOS設備上同時工作對我來說是一個巨大收穫。

更進一步,尤其是對於運行Android各種分支的設備,它們大小和形狀各異,想要讓你的應用程序在各種各樣屏幕分辨率的手機上看起來都不錯,這是真正的挑戰。對於要求嚴格的Android開發者來說,按照屏幕大小進行設屏幕分割(從完全最小化到最大進行縮放)會需要很多開發時間。由於瀏覽器會在每個設備上以相同的方式呈現,關於這個方面你不必有任何擔心。

jquery-mobile-logo


JQuery Mobile 和 HTML5 的3個缺點

1.比原生程序運行慢:在我看來最大的缺點是,即使是在最新的Android和iOS硬件上(雙核Tegra 2 Android手機,雙核iPad2平板),JQuery Mobile應用程序都會明顯慢

於原生程序。尤其是在Android上,瀏覽器比起iOS更慢且bug更多(雖然谷歌是專注web領域的公司)。我沒有在更早的Android設備上測試我的程序,也許根本就不能運行(例如Android G1)。我相信在未來的12-24個月,硬件速度會很快得到提升(例如,四核設備2011年馬上就要上市),性能也許很快就不會成爲問題。但是今天,它確實是一個缺點。如果你只專注於iOS,你大可以期待一下瀏覽器的性能,至少它在這方面是可靠的(不像Android,黑莓等等)

2.古怪(跨瀏覽器、跨平臺開發):JQuery Mobile現在仍是beta版本,因此我遇到了很多bug。也就是說,JQuery團隊還在積極地回覆GitHub上提出的問題。我認爲其中最大的一個問題是各種瀏覽器在不同的手機平臺上古怪的表現。這個問題一直爲人詬病。應用程序可能看上去有些古怪——雖然我認爲JQuery Mobile團隊在widget和主題上做得很棒,但的確和原生程序看起來有顯著的不同。這個問題到底對用戶有多大影響不得而知,但是這一點需要引起注意。

3. 有限的能力 vs 原生程序:很明顯,運行在瀏覽器上的JavaScript不能完全地訪問設備的很多特性。一個典型的例子就是攝像頭。然而,類似PhoneGap這樣的工具能夠幫助解決很多常見問題。實際上,我已經開始將我的應用程序通過PhoneGap將幾個版本部署到iOS和Android上,使用的是原生Facebook綁定,效果令我映像深刻。我會在未來的博客中寫一些使用PhoneGap的經驗。


總結

總的說來,我認爲使用JQuery Mobile和HTML5作爲手機應用開發平臺是可行的。然而,這並不適用於(至少到目前爲止)所有類型的應用程序。對於簡單的內容顯示和數據輸入類型的應用程序(相對的是需要豐富多媒體/遊戲程序),它是對原生程序一個有力的增強。我對自己的應用程序使用新平臺的結果感到高興——不再需要同時爲Android和iOS維護我的健身跟蹤軟件。

在接下來的1-2年中,隨着硬件變得越來越快,手機設備越來越多樣化,我相信HTML5 (JQuery Mobile, PhoneGap, 等等)在手機應用開發中會成爲更加重要的技術。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章