2011年5月22日

PhoneGap 跨平台的行動應用程式開發框架

PhoneGap是開放源碼(open source)且免費(free)的開發框架(framework),它讓應用程式只需要建立一次,就能發佈到各種不同智慧型手機(smart phone)。

PhoneGap如何運作?
  1. 使用網頁標準(Web Standards)建立應用程式:以HTML5為基礎,所以一般開發人員普遍熟悉的HTML及JavaScript語法就可以建立應用程式。
  2. 透過PhoneGap封裝:讓採用PhoneGap框架的應用程式可以存取不同手機的原生API。
  3. 部署到多種平台:以標準網頁技術建立的應用程式,能夠在行動裝置上運作。
看到這邊,也許有些讀者會產生一個疑問,既然都用網頁標準開發應用程式,為什麼還需要PhoneGap,直接用手機內建的瀏覽器打開不就好了?跟一般的網站形式的應用程式有何不同呢?

如果是一般網站應用程式就能解決問題,其實就不需要PhoneGap。但很多應用程式需要利用智慧型手機的特殊裝置,例如:加速計(Accelerometer)、照相、電子羅盤、地理位置定位、檔案系統等,一般的網頁應用程式在安全性的考量上,不太可能直接或完全取得這些手機裝置的存取權限。

由於在不同的平台(如iOS、Android、Symbian等),有各種不同的原生API及應用程式開發方式,通常開發者必須為不同裝置各打造專屬版本的應用程式。使用PhoneGap框架之後,只要符合PhoneGap支援的HTML5網頁標準,就可以交給PhoneGap的底層程式解決跨平台的問題。(PhoneGap對各類行動裝置的支援程度請參見Supported Features)

開發環境需求

不同行動裝置的部署會需要不同的開發環境配置。
  1. iOS: Mac OS X (Intel-based) + XCode
  2. Android: JDK + Eclipse 3.4 + Android SDK
  3. BlackBerry: Windows + JDK + BlackBerry WebWorks SDK
  4. Symbian: Windows(cygwin) or OS X or Linux + S60 SDK
若有同時需要建置及部署不同行動裝置的需求,採用Mac OS X或Linux應該是比較合適的選擇。

PhoneGap適合我嗎?

行動裝置應用開發還在發展初期,所以各家平台未來肯定會持續有大改版出現,PhoneGap要解決這種跨越平台及版本的Gap並不容易,不適合作為重要應用程式的基礎(特別是準備要上架當作商品的專案),至少目前是如此。

對於新的應用程式,若Web就能搞定,不需要用到手機照相或定位等功能,其實只要考慮例如jQTouch這種純網頁技術的解決方案。

若是真的需要開發裝置原生的應用程式,特別是準備做為商品上架販售,需要考慮為主流平台(如iOS或Android)客製化專屬的原生應用程式,某些功能也許可以搭配Web Services方式發佈。因為行動裝置的應用程式開發,很強調節省系統資源、避免不必要效能消耗,多了一層不見得是好事。

但如果手邊的專案本身是以網頁為主,而行動版本只是提供給部份使用者一些方便,還未考慮開發正式的行動專用版,這時候嘗試用PhoneGap製作雛形(prototype),也許就是不錯的選擇。因為很容易就能讓Android及iOS都能試用,作為未來行動版本發展的評估。而且對既有的網站開發人員來說,只要熟悉HTML5及JavaScript技術就能開始進行,相較原生應用程式的開發,門檻比較低。

延伸閱讀
  1. PhoneGap (official) 
  2. PhoneGap Wiki
  3. 跨越行動網頁與原生軟體的隔閡 – PhoneGap
  4. 建構Android應用程式 (book)

沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!