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

隨著行動運算的市場規模成長,許多Web開發者也紛紛的對行動平台感到興。然而,為了能夠在iPhone或Android上推出自己的軟體,就必須得花上不少時間先學會這兩個平台上的相關開發技術,讓許多Web開發者遲遲無法跨入這個領域,選擇用網頁技術開發行動版網頁作為替代,而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 所完成的。筆者相信,隨著行動市場的崛起,未來會有越來越多網路業者和開發者投入行動市場,這一類的應用程式框架將會越來越受到重視、功能也將會變得更為完善!


Akamai 服務上新,於邊緣處推動快速創新

Akamai EdgeWorkers 為開發團隊提供豐富功能和工具來創建新的微服務,利用 Akamai 提供的 25 萬台分佈式服務器組成的網絡,在邊緣執行安全而快速的計算,並在邊緣暫存內容,以實現快速交付。
評論
評論

在雲計算技術還沒有大規模普及前,絕大部分企業和組織都需要自建數據中心,或通過託管的方式來部署自己的硬體基礎架構,並在此基礎上為員工和客戶提供服務。取決於業務或其他方面的諸多要求,此時需要部署的數據中心可能有很多個,並廣泛分佈在不同地區,藉此為客戶提供流暢的體驗,並透過多個數據中心保障連續性。在發展的過程中,隨著「雲端」的出現,讓各個組織的計算開始集中。

而當在線直播、無人駕駛、智能家電、物聯網等應用開始陸續深入我們的工作和生活,情況又不同了。以往透過雲平台集中運行和服務的模式,因為距離導致的網絡延遲已經對用戶的使用體驗產生極大影響。為了提供更敏捷、靈活、快速、可靠的體驗,企業需要從最貼近用戶的地方提供服務。因此,邊緣計算就成為最有效的解決方法。

透過將數據的收集、分析和處理等工作,由「雲中心」重新分散到最接近用戶的邊緣位置,企業可以就近為用戶提供服務,通過延遲更低的響應打造更出色的用戶體驗。

「無服務器」的出現,帶來計算方式的革新

以前,當組織需要上線一套業務系統時,首先需要採購並部署相應的服務器硬體,並且要負擔服務器日常運維過程中的管理、維護、補丁安裝、配置等繁瑣任務。

上雲前,組織需要在自己的數據中心,以硬體服務器的方式執行這一系列工作;上雲後雖然簡單許多,但依然需要面對雲服務商提供的虛擬服務器,從本質上來看相關負擔仍相當繁重。

無服務器(Serverless)技術的出現,讓組織可以在不需要考慮服務器的情況下,構建並運行由微服務構成的創新式應用程式與和服務。藉此不僅可以省略基礎架構管理任務,還能為幾乎任何類型的應用程式或後端服務構建無服務器應用程序,更方便、靈活地構建出具備極高可用性的應用。

Akamai EdgeWorkers :為創新賦能

Akamai EdgeWorkers 為開發團隊提供豐富功能和工具來創建新的微服務,利用Akamai 超過 25 萬台分佈式服務器組成的網絡,在邊緣執行安全而快速的計算,並在邊緣暫存內容,以實現快速交付。

當開發團隊在邊緣開啟代碼時,他們會將數據、見解和邏輯推送到更靠近最終用戶的位置。Akamai 的高性能、可擴展式實施模型,可確保數據和計算不會被延遲問題困擾,進而避免對數字化體驗產生負面影響。

在該服務幫助下,開發者可直接在 Akamai 的全球分佈式平台上快速、迭代地創建和部署新服務,以解決問題和自定義交付。

長期以來,Akamai 在邊緣計算的創新和成功實施皆具有優勢。自 1998 年起,便開始為 Akamai 內容交付網絡(CDN)的客戶推出自定義交付邏輯,其他里程碑還包括 2001 年的 Edge Site Includes 、2002 年的 Edge Java 以及 2014 年的 cloudlet 應用程式。

目前, Akamai 在全球擁有超過 4100 個入網點,為 EdgeWorkers 用戶提供出色的邊緣基礎架構規模和範圍,開發人員可以在靠近最終用戶和他們的數字化接觸點的地方部署代碼,以實現盡可能低的延遲。EdgeWorkers 同樣獨立於雲,客戶可以選擇利用 CDN 供應商或雲供應商平台上的無服務器計算功能。在 Akamai 幫助下,客戶可以在整個混合雲或多雲環境中部署單一的無服務器計算平台。

更多相關資訊:https://www.akamai.com/solutions/edge

本文章內容由「猿聲串動」提供,經關鍵評論網媒體集團廣編企劃編審。