什麼是 PWA?有什麼用?送三本《PWA入門與實踐》!

很高興受到《PWA入門與實踐》作者王樂平老師的邀請,爲這本書寫推薦語。

下面我們就聽聽作者王老師帶你快速玩轉 PWA 吧!

文末有給各位粉絲的福利!抽獎送出三本《PWA入門與實踐》。

導讀:如今,互聯網大流量早已進入了移動端,國內主流互聯網產品的移動端流量已經普遍超過整體流量的80%。在移動端應用開發中,我們要面臨爲不同操作系統(AndroidiOSWindows 10)、不同設備(手機、平板)開發應用的問題,爲此我們需要投入額外的成本應對這些差異。就算我們投入了成本,開發出了產品,在下載和安裝環節,仍然存在很大的推廣成本問題。統計學研究表明,安裝煩瑣是用戶放棄嘗試更多應用的主要原因之一。PWA做爲一門Google推出的WEB端的新技術,可以很好地解決這些問題。

來源:華章計算機(hzbook_jsj)

PWA運用現代的Web API能力爲Web進行了擴展和增強,使Web具有與原生應用程序類似的體驗度和能力。作爲一種W3C的規範實現,PWA可以正常地運行在各個平臺的瀏覽器中,真正做到一套代碼解決所有平臺一致性問題。同樣,由於PWA具備安裝成本幾乎爲0的特點,它非常適合實現Web端到應用端的過渡,提升轉化率。

 

目前,國內外越來越多的網站對PWA進行了接入,如淘寶、餓了麼、微博、星巴克、優步、推特、臉書、Ins等等,接入後的性能和轉化率都有明顯提升。如今Google/Microsoft/Apple已全部支持的PWA技術,Web的主流框架ReactVue等對PWA提供了快速接入方案,主流的瀏覽器廠商也緊跟其後,共同爲PWA生態系統提供支持。

什麼是PWA

PWA全稱Progressive Web App,直譯是漸進式WEB應用,是 Google 2015 年提出,20166月才推廣的項目。是結合了一系列現代Web技術的組合,在網頁應用中實現和原生應用相近的用戶體驗。

所謂的PProgressive)這裏有兩層含義,一方面是漸進增強,讓WEB APP的體驗和功能能夠用漸進增強的方式來更接近原生APP的體驗及功能;另一方面是指下一代WEB技術,PWA並不是描述一個技術,而是一些技術的合集。

PWA特性

  • 漸進增強 - 能夠讓每一位用戶使用,無論用戶使用什麼瀏覽器,因爲它是始終以漸進增強爲原則。

  • 響應式用戶界面 - 適應任何環境:桌面電腦,智能手機,筆記本電腦,或者其他設備。

  • 不依賴網絡連接 - 通過 service workers 可以在離線或者網速極差的環境下工作。

  • 類原生應用 - 有像原生應用般的交互和導航給用戶原生應用般的體驗,因爲它是建立在 app shell model 上的。

  • 持續更新 - 受益於 service worker 的更新進程,應用能夠始終保持更新。

  • 安全 - 通過 HTTPS 來提供服務來防止網絡窺探,保證內容不被篡改。

  • 可發現 - 得益於 W3C manifests 元數據和 service worker 的登記,讓搜索引擎能夠找到 web 應用。

  • 再次訪問 - 通過消息推送等特性讓用戶再次訪問變得容易。

  • 可安裝 - 允許用戶保留對他們有用的應用在主屏幕上,不需要通過應用商店。

  • 可連接性 - 通過 URL 可以輕鬆分享應用,不用複雜的安裝即可運行。

 

PWA優、缺點

優點:

上面提到的,所有這些現代 Web 特性。

Web最重要的意義在於開放和去中心化,這纔是萬維網的初衷

 

缺點:

門檻不低。部署的服務器要求HTTPSServiceWorker涉及API衆多,需要單獨學習

用戶體驗習慣。網頁應用替代原生應用的方式,用戶短時間內不適應

 

PWA關鍵技術

Manifest(應用清單)

Web App Manifest是一個W3C規範,定義了一個基於JSON的清單,爲開發人員提供一個放置與Web應用程序關聯的元數據的集中地點。manifest 就是 PWA 概念的一環,它給你了控制你的應用如何出現在用戶期待出現的地方(比如用戶手機主屏幕),這直接影響到用戶能啓動什麼,以及更重要的,用戶如何啓動它。

 

使用 web 應用程序清單,你的應用可以:

 

能夠真實存在於用戶主屏幕上

Android 上能夠全屏啓動,不顯示地址欄

控制屏幕方向已獲得最佳效果

定義啓動畫面,爲你的站點定義主題

追蹤你的應用是從主屏幕還是 URL 啓動的

 

例如:

Service Workers

Service Worker是瀏覽器在後臺獨立於網頁運行的腳本,它打開了通向不需要網頁或用戶交互的功能的大門。這個 API 之所以令人興奮,是因爲它可以支持離線體驗,讓開發者能夠全面控制這一體驗。

 

ServiceWorker是由兩部分構成,一部分是 cache,還有一部分則是 Worker

 

它被設計爲一個相對底層、高度可編程、子概念衆多,也因此異常靈活且強大的 API,它就像一個位於客戶端和網絡之間的代理,可以攔截、處理、響應流經的網絡請求,配合Cache API,你可以自由管理網絡請求文件的緩存,這使得 Service Worker 可以從緩存中向 web 應用提供資源,即使是在離線的環境下。這樣,在離線和網速低的情況下也能秒開,說白了,之前的Hybrid架構的出現不就是爲了這個功能麼。之前雖然有AppCache,但它具有相當多的缺陷,這裏就不說了。

 

來張官網的形象圖:

Push Notification(推送通知)

Push 和 Notification是兩個不同的功能,涉及到兩個API,但是它們之前有依賴關係。

 

Notification這塊應該大家多少了解一些,屬於瀏覽器發出的通知消息,之前需要瀏覽器一直開着才能實現這種通知,但是現在有了上面提到的Service Worker,就可以駐留在進程裏面操作了。

 

Push & Notification關係:

 

Push : 服務器端將更新的信息傳遞給 Service Worker

Notification: Service Worker 將更新的信息推送給用戶

PWA與其他App的對比

目前的移動端APP

●Native APP

●Web App

●Hybrid App

 

Native APP

Native APP,指原生App,是一個完整的App,可拓展性強,需要用戶下載安裝使用。

 

優點:

可使用移動設備所有功能

速度快、性能高、用戶體驗好

離線使用

 

缺點:

開發成本高、維護成本高

每個不通的平臺都要重新開發

應用商店審覈複雜,效率低

 

Web APP

Web App 指採用Html5語言寫出的App,生活在瀏覽器裏的應用,不需要下載安裝。

 

優點:

  • 跨平臺開發、無需下載、無需安裝,開發速度快

  • 發佈靈活,因爲根本不需要應用商店的審覈

較低的開發成本

可即時上線

用戶可以直接使用最新版本

支持設備廣泛

 

缺點:

只能使用有限的移動設備API

瀏覽器兼容問題

無法上傳到應用商店

用戶暫時不適用

 

Hybrid App

Hybrid APP指的是半原生半Web的混合類App,需要下載安裝。

 

優點:

  • 兼容多平臺

  • Web前端工作人員就可快速構建

  • 可以上傳到應用商店

  • 可以基於瀏覽器的方式進行頁面調試

  • 可使用的移動設備的API

缺點:

  • 用戶體驗不如原生應用

  • 爲模擬原生樣式,需要大量的htmlcss

  • 性能稍慢

  • 技術不是很成熟

 

PWA兼容性

Blink內核(ChromeOpreaSamsung Internet 等)和 Gecko內核(Firefox)和Microsoft Edge都已經實現了 PWA 所需的所有關鍵技術的支持, 華爲手機瀏覽器、IOSSafariWebkit)等主流瀏覽器目前均已支持PWAAPI

 

PWA的未來

這裏引用一下黃玄說過的一句話:

 

請不要讓 web 再繼續離我們遠去,瀏覽器廠商們已經重新走到了一起,而下一棒將是交到我們 web 應用開發者的手上。喬布斯曾相信 web 應用才移動應用的未來,那就讓我們用代碼證明給這個世界看吧。

讓我們的用戶,也像我們這般熱愛 web 吧”

 

推薦閱讀:

 

 

PWA入門與實踐》

本書全面介紹了PWA的基礎知識、核心技術以及相關實踐,適合開發者快速入門PWA,對PWA進行全面的學習。

  • 國內首本詳細講述PWA技術原創書籍,更符合國人閱讀習慣

  • 從商業視角的推廣成本到體驗視角的秒開、離線體驗,全方位介紹PWA基礎知識、核心技術及實踐方案

  • 從理論準備到實操流程,再到經驗分享,是一本幫你真正理解PWA的“全鏈路書籍”

【適讀人羣】

本書面向有一定Web開發基礎的讀者,以及想學習PWA或者需要一本全面的PWA手冊的開發者。

福利送書

抽獎送出三本《PWA入門與實踐》。長按按關注“玩轉VS Code”公衆號,回覆“PWA”,進行抽獎。

有興趣的童鞋,也可以點擊“閱讀原文”,直接在京東購買。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章