轉自:http://www.cnblogs.com/charley_yang/archive/2011/02/28/1967559.html
上次周例會我給大家做了題目為:《漫遊移動平台前端開發》的彙報,現在推薦一些額外的學習資料。
依照目前iPhone/Android 迅速提升市佔率的情勢來看,未來如果想要在先進的智慧型手機上撰寫應用程式,要不是選擇使用Objective-C + CocoaTouch Framework 撰寫iPhone/iPad 應用程式,就是選擇Java + Android Framework 撰寫Android 應用程式,如果想要同時支援兩種平台,勢必要維護兩套程式碼,對於剛起步的小服務而言也算是個小有負擔的維運成本。
大家一起來用HTML5 開發Mobile Web App 吧!
一、前言 所幸在iPhone 及Android 上的瀏覽器對於HTML5 及CSS3 的支援愈來愈好,使得原本一定要用原生的應用程式開發架構才能做出來的效果,現在很多都能利用HTML5 或是CSS3 的技術來完成。所以,使用HTML5, CSS3 來撰寫Web-based 的應用程式,若要同時支援iPhone 及Android,幾乎只需要維護一份程式碼(少部份要因應clients 作修改),而且未來若有其它行動裝置擁有支援HTML5 的瀏覽器,那同樣的WebApp
直接就多了一個支援平台。
二、現況 目前大量以HTML5 開發Mobile WebApp 的就屬Google 的系列服務了。在Google 官方的部落格也早就寫了一些利用HTML5 撰寫Mobile WebApp 的文章,現在使用iPhone 或Android 透過瀏覽器串連至GMail、Google Voice、Buzz等服務就可以看看Google 的成果。
GMail Mobile
Google Buzz
Google 的系列服務使用了不少HTML5 中的cache、storage 及database 規格來做到離線存取程式的效果。因為比起案頭應用程式,行動裝置的網路連線更不穩定,而且有時在移動中並無網路可以使用,透過這些技術才能讓使用者即使在無網路環境下繼續使用你的webapp 。 HTML5 中還定義了不少2D圖形處理、多媒體(Video/Audio)的技術規格,要在上面製作各種充滿視覺效果的應用程式也不是完全不可能,使用HTML5 寫Mobile Web App 雖然不像原生程式那樣能對行動裝置做完整的掌控,但要製作豐富的應用程式是絕對值得投入心力下去的。
三、開發前的準備 首先你要瞭解的是,雖然是使用HTML5 來寫WebApp,你還是得瞭解HTTP、Web 的運作模式,並且瞭解如何利HTML/CSS/JavaScript 開發Web 的前端畫面、互動程式。在這些基本功夫都上手之後,你需要的就是以下的資源: HTML5 的規格書。當然你要瞭解HTML5 制定了什麼規格,才知道手上有多少武器可以運用。 參考資料,好的參考資料能帶你上天堂,增加學習的效率:
Apple 提供的開發iPhone Web App 指南也會帶你學習HTML5 的各項新技術規格
Google 提供的加速 WebApp 指南。為了讓瀏覽器在WebApp 上有更好的表現,開發人員必須儘可能地提升WebApp 速度,降低反應時間,避免長時間的等待增加使用者的挫折。 既然是WebApp,勢必(大多數的情況下)需要一個Web Server,現在免費的Web/App Server Hosting 也有不少(如:Google App Engine等),都是構成WebApp 不可或缺的要素。
四、其他參考資料(來自IBM Developmerworks)
《Android 和 iPhone 瀏覽器之戰》系列:1. Android 和 iPhone 瀏覽器之戰,第 1 部分: WebKit 成援兵2. Android 和 iPhone 瀏覽器之戰,第 2 部分: 為 iPhone 和 Android 構建基於瀏覽器的應用程式
《使用 HTML 5 建立移動 Web 應用程式》系列:1. 使用 HTML 5 建立移動 Web 應用程式,第 1 部分:聯合使用 HTML
5、地理定位 API 和 Web 服務來建立移動混搭程式2. 使用 HTML 5 建立移動 Web 應用程式,第 2 部分:使用 HTML 5 開啟移動 Web
應用程式的本機存放區3. 使用 HTML 5 建立移動 Web 應用程式,第 3 部分:使用 HTML 5 支援移動 Web
應用程式離線工作4. 使用 HTML 5 建立移動 Web 應用程式,第 4 部分:使用 Web Workers
來加速您的移動 Web 應用程式5. 使用 HTML 5 建立移動 Web 應用程式,第 5 部分: 使用 HTML 5 開發新的可視化 UI 特性 --------------------------------結束 --------------------------------