漸進式網絡應用程序

漸進式網絡應用程序(英語: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