Site icon Soul & Shell Blog

Web App 行動開發 (1) - Web App 開發介紹

App 三大開發陣營

App 近年真的大放異彩,App Store 也是一個讓沒有直接銷售管道的軟體研發工程師,有個築夢的環境與機會。想要開發 App 的方法有很多種,我們先來介紹一下主要的 App 開發方式有哪些種類,主要分為三大陣營:

原生程式 App,使用原生程式語言開發,例如:Android 用 Java、iOS 用 Object-C。優點:速度快;缺點:無跨平台能力、必須學習專有語言。

利用 App 內嵌瀏覽器利用 Web 技術實作功能。優點:跨平台、使用 Web 標準技術;缺點:API 功能有限、速度不如原生程式。

混合式 App 結合 Web App 跨平台能力與原生程式的速度優勢,可保留 Web App 部分跨平台的能力,將複雜與高運算的行為交由 Native 程式處理。優點:部分跨平台 / 速度尚可;缺點:實作架構複雜、整合技術有門檻。

行動作業系統兩大主流 iOS 與 Android 陣營

接下來介紹目前市佔率最較高的兩種行動裝置作業系統 iOS 與 Android,比較如下:

Google Android

Apple iOS

今天的主角 What’s Web App

以下是我對 Web App 的定義:

利用 App 內嵌 Browser 來開啟網頁,使用 Web 技術實作適合行動裝置操作的應用程式。
然而在開發 Web App 通常會用到以下幾種主要的技術:
  • HTML 5
  • CSS 3
  • JavaScript
  • JavaScript Bridge(一種與 Native 溝通的技術)

大部分的網頁開發者會選擇 Web App 是因為至少在程式語言上比較熟悉,但許多 Web Designer 並不常在傳統的 Web 開發上使用到 HTML 5 的相關技術,原因是我們很難限制使用者必須使用符合 HTML 5 實作的瀏覽器來觀看網站,因此 HTML 5 都是以輔助的角色存在我們的設計中。

但是 Web App 就不一樣了,瀏覽器是我們自己內嵌的,很容易控制執行效果。那麼現在的瀏覽器對 HTML 5 的支援情況究竟如何呢?可參考以下圖表 (來至 THE HTML5 TEST 網站):

上表很明顯 Google Chrome 與 Safari 對於 HTML 5 的支援是足夠的,可以作為未來開發的參考。

為何要選擇 Web App 開發

通常會選擇  Web App 開發架構有以下幾種原因與優勢:

但 Web App 其實還是有缺點的,例如:Android 執行速度不佳(除非高階機種)、能力不如 Native 強大(需要借助JavaScript Bridge 技術)、記憶體耗量高、CSS 渲染技術實作不一致。如果用在開發比較複雜的 App,整體的開發週期其實是很長的(當然看個人追求的品質),Web App 實際上要花費很多的心力才能做的跟 Native 一樣好用,但是:

軟體的最大價值在於複製!

雖然 Web App 開發成本高,但是只要一跨平台就值得了。所以如果你一開始沒有要計畫跨平台,那麼 Web App 可能會為你帶來痛苦。

JavaScript Bridge 技術

前面提了很多次 JavaScript Bridge 這個名詞,先來就介紹一下 Web App 的典型系統架構,如下:

其中紅色方框的就是 JavaScript 的角色,目前最有名的就是 PhoneGap (Codorva) 這一個 Library,JavaScript Bridge 實作的原理是透過 Browser (WebView) 的底層機制與 JavaScript Runtime 溝通,每個不同 OS 提供的 WebView JavaScript Bridge 實作方法都不盡相同。

藉由這樣的技術 Web 就可以與 Native 進行溝通,達到原本 Web 做不到的功能(像是裝置震動、陀螺儀、加速器、電話簿等等)。有人會想到其實瀏覽器外掛一樣可以達到效果,但是許多封閉的 OS 是不允許使用者安裝外掛程式的,因此我們才需要這樣的技術。善用 Web 實作基本功能與 UI,透過 Native 處理比較複雜的運算與功能,這樣的組合就成了 Hybrid App,保留跨平台能力擁有執行速度優勢,算是比較兩全其美的解法。

到這裡那麼各位客官對 Web App 是不是有比較深入的了解呢?有空會在分享行動開發的相關經驗與技術,敬請期待囉。感謝。

系列文章

參考資料

Exit mobile version