漸進式網路應用程式

漸進式網路應用程式(英語:Progressive Web Apps,簡稱:PWA)是一種普通網頁網站架構起來的網路應用程式,但它可以以傳統應用程式或原生行動應用程式形式展示給使用者。這種應用程式形態視圖將目前最為現代化的瀏覽器提供的功能與行動裝置的體驗優勢相結合。

PWA 徽標

技術背景

自2005年以來,網頁開發從靜態形式升級為以伺服器端技術(如PHPASP.NET等)與客戶端工具(如Ajax[1]等)以及一些回應式網頁設計技術構建的動態形式。[2]那時儘管有一些基於網頁技術製作的網路應用(如iPhone於2007年展開的嘗試),但都在與原生應用的競爭下失敗。相較於需要利用瀏覽器執行的網路應用,原生應用提供一個更好的使用者體驗和極快的執行速度。以打包資源和直接利用硬體資源的特性,都令原生應用執行速度更快,並提供更多功能。但到2010年代中期,由於HTML5CSS 3JavaScript技術的持續發展,技術更強大、相容性更高的瀏覽器的出現,以及類似A10和高通驍龍 821這樣強大的處理器的發明,都讓高效的混合型應用程式成為強有力的原生應用程式替代品。

混合型應用程式

混合應用程式最大程度地還原行動裝置的使用者體驗,並且需要通過應用商店下載。因此,它們依然消耗儲存空間。以標記式語言樣式表,以及手稿語言製作的互動網頁元素沒有使用封閉的系統,例如Flash。一部分執行在行動瀏覽器的混合型應用沒有URL,但支援豐富的使用者介面,也允許使用一些作業系統層級的能力。最新發布的CSS 3和JavaScript框架允許開發者使用新的設計範式,例如以網格和Flex為代表的CSS 盒模型,還能使用轉譯、轉換與動畫等功能。

特點

在2015年,設計師弗朗西斯·貝里曼和Google Chrome的工程師亞歷克斯·羅素提出「漸進式網路應用程式」概念[3],符合條件的應用程式可以在現代瀏覽器中使用新功能,包括應用工作執行緒和網路應用清單,而且使用者在原生作業系統中,可以從網路應用程式向漸進式網路應用程式升級。根據Google開發者支援頁面,[4][5]這些特徵是:

  • 漸進式:使用者無需擔心使用哪個瀏覽器,也可以正常使用PWA。因為這些PWA以漸進增強作為核心信條。
  • 回應式:PWA適應包括電腦手機平板等其他常用裝置在內的多種瀏覽環境。
  • 連接獨立性:利用服務工作執行緒,PWA可以離線或網路情況較差的環境下工作。
  • 接近原生應用:為使用者提供更接近原生應用的互動體驗與導航。
  • 保持新版:歸功於服務工作執行緒的更新機制,PWA可以保證使用者永遠使用最新版本。
  • 安全:通過HTTPS,PWA可以阻止通訊竊聽,而且能保證內容不被篡改。
  • 可被發現:歸功於W3C提供的清單檔案[6],以及服務工作執行緒的註冊範圍機制,PWA可標識為「應用」,且搜尋引擎可以正常地索引PWA。
  • 可被組裝:類似推播通知這樣的功能在PWA上都可以輕鬆組裝。
  • 可被安裝:允許使用者直接「保留」PWA到他們的系統桌面,無需到應用商店完成麻煩的步驟。
  • 可被連結:只需輕鬆地分享URL便可連結至PWA中,無需複雜的安裝步驟。

參考文獻

  1. ^ Garrett, Jesse James. Ajax: A New Approach to Web Applications. [February 18, 2005]. (原始內容存檔於2019-05-07). 
  2. ^ Marcotte, Ethan. Responsive Web Design. [May 25, 2010]. (原始內容存檔於2021-04-18). 
  3. ^ Russell, Alex. Progressive Web Apps: Escaping Tabs Without Losing Our Soul. [June 15, 2015]. (原始內容存檔於2021-03-24). 
  4. ^ Your First Progressive Web App | Web Fundamentals - Google Developers. [2016-07-17]. (原始內容存檔於2016-06-24). 
  5. ^ Google Developers. Progressive Web App. [June 15, 2015]. (原始內容存檔於2020-02-24). 
  6. ^ W3C “Web App Manifest”, Working Draft頁面存檔備份,存於網際網路檔案館), retrieved 12 September 2016