跨越行動網頁與原生軟體的隔閡 – PhoneGap

評論
評論

隨著行動運算的市場規模成長,許多 Web 開發者也紛紛的對行動平台感到興。然而,為了能夠在 iPhone 或 Android 上推出自己的軟體,就必須得花上不少時間先學會這兩個平台上的相關開發技術,讓許多 Web 開發者遲遲無法跨入這個領域,選擇用網頁技術開發行動版網頁作為替代,而 PhoneGap 便是可以解決這個問題的最佳選擇!

8/15 更新!

JetPlurk 的作者 Irvin 提供了他們在 Coscup 上 Lightning Talk 時 展示的範例程式碼 ,讓有興趣的朋友可以參考。

跨平台間的共同開發環境


除了 Android、iPhone 兩大陣營之外,國外最大的 Blackberry 和透過 Mameo 展開反擊的 Nokia 也都佔有一定的市場。而每個不同的平台均有不同的開發工具、開發環境,對於行動開發者而言會是很大的負擔。

然而,在這些平台中,其實是有著共同的標準,也就是網頁標準 HTML、CSS 與 JavaSript,且由於 HTML 的快速發展,一些新的技術像是 HTML5 或是 CSS3 的出現,讓網頁可以突破傳統的限制,成為功能完整的應用程式。更重要的是,這些行動網頁的軟體大多都可以幾乎不用修改、或是透過很少的修改便移植到不同的平台。

原生軟體的優點

由於是透過瀏覽器作為軟體的入口,所以仍然與一般的 apps 有明顯差異。更重要的是,這些網頁軟體沒有辦法像其他原生開發的軟體一般,透過軟體銷售平台獲利,而是必須在行動網頁中自行加入付費的會員機制或是廣告。

這樣的困境便造成了網頁開發者的兩難局面:固然開發行動網頁作為軟體是容易且跨平台的,但最終成品與原生應用仍有明顯的差異,但學習原生的開發卻又必須花費許多時間成本。

PhoneGap

PhoneGap 便是為了要解決這個問題而誕生了!

這套開放原始碼的解決方案,便是提供了 iPhone、Android、Palm 和 Blackberry 平台的原生包裝軟體(wrapper),讓行動網頁可以被包裝成原生軟體的樣子,而不需透過瀏覽器作為入口。

背後的原理也沒有很複雜,PhotoGap 所提供的其實是一個只有瀏覽器的軟體程式碼和幾個已經預設建立好的資料夾,而我們所要做的事情便是將寫好的網頁應用程式,包含 HTML、CSS 和 JavaScript 放到指定的資料夾中,便可以完成一隻以假亂真的原生應用軟體了!

以 iPhone 為例

就讓我們以 iPhone 平台作為例子,做一個簡單的介紹吧!

PhoneGap 的安裝步驟以比較複雜,大概如下:

  • 安裝好 iPhone SDK(可以由 蘋果的開發網站 下載)
  • 下載 PhoneGap 的最新版本
  • 打開終端機並切換到剛剛下載的資料夾下,進入 phonegap-iphone 子目錄並且輸入 make 建立安裝檔
  • 執行剛剛建立出來的安裝檔叫做 PhoneGapLibInstaller.pkg 進行安裝

接下來我們就可以開始建立第一個 PhoneGap 軟體了!
打開 Xcode 並且建立專案,你會發現在側欄中多了 PhoneGap 的選項,選擇建立一個新的 PhoneGap 專案後 Xcode 便會自動生成大多數的檔案。

我們會在專案目錄中看到其中有一個 www 資料夾,這個資料夾中便可以讓我們放置軟體中所需要用到的 HTML 以及 CSS 和圖像等檔案:

在我們加入適當的網頁內容後,另外需要設定 BaseSDK 以便讓 Xcode 編譯時可以使用最新版的 iOS 4.0 SDK 來進行編譯,我們在專案的項目上面按右鍵選擇 Get Info:

接下來在選項中找到 Base SDK,選擇 iPhone Device 4.0 即可:

最後則是在 Xcode 左上角選單中選擇 Simulator,然後編譯就可以在模擬器中看到成果囉!

進階玩法

除了基礎的網頁之外,我們可以透過 PhoneGap 所提供的其他一些 JavaScript API 來與原生的 UI 元件做連結,像是加速器、攝影機等等,在 官方網站的文件 中都有記載相關的使用方式。

結論

這一類的應用程式在 App Store 中其實有相當不少的案例了,像是 JetPlurk 這套相當流行的噗浪軟體便是透過 PhoneGap 所完成的。筆者相信,隨著行動市場的崛起,未來會有越來越多網路業者和開發者投入行動市場,這一類的應用程式框架將會越來越受到重視、功能也將會變得更為完善!

相關文章

評論