原生(Native)應用程式和 Web 應用程式已經要怎麼選,這個議題已經好幾年了。或許 Hybrid App(用 Web 打包的應用程式)是個好選擇,但怎麼都沒人在用呢?最近為什麼也沒人在討論 Chatbot 了?
企業都很擔心 Web App 的黏著度不夠高,認為原生應用程式才能佔據使用者的手機桌面。但是原生應用程式開發相對困難,但 Hybrid App 的效能又不足,好幾層轉換使得應用程式反應變慢,降低使用者體驗。既然沒辦法佔據手機的桌面,那就佔據大家每天都會打開的聊天工具吧!Chatbot 因此竄紅,不過似乎也經過一兩年就退燒了,那 PWA(Progressive Web Apps) 究竟又解決了什麼問題?
其實早在 2007 年,Steve Jobs 就提出想要把 Web App 包裝成 Native App 的構想,不過後來 Apple 的策略是推出 SDK 讓大家寫 iOS App,再推出 App Store:App 上得去,錢進得來,Apple 發大財。Google 則是一直到 2015 年才隆重推出 PWA 的概念,簡單來說就是讓大家只要維護一套程式碼,就可以在各式各樣的裝置有相似的體驗。爾後 PWA 慢慢發展,近年來 Microsoft 開始攜手和 Google 一起推廣 PWA,Microsoft 開源的 PWA Builder 加入了 Google 制訂的 Web Shorcuts 等協定 [1];在今(2020)年,Amazon 的雲端遊戲串流平臺也使用 PWA 的方式來避開 Apple 訂定的 App Store 規則 [2],畢竟你怎麼可能讓 Apple 審查每一款雲端遊戲才上架?Google 更是直接打造了一款 Chrome OS,系統打開就只有瀏覽器,你可以使用網際網路上幾十億個網站的功能,更可以把其中一些有 PWA 的網站「安裝」在 Chrome OS 的啟動列裡。
是的,PWA 本身就是網站,不需要特別推廣、宣傳,只要用大家早已熟悉的 SEO(Search Engine Optimizer,搜尋引擎優化)就可以讓別人找到你的 App。使用者一開始看到的是網站,但是只要點一下就可以把它安裝到手機或電腦桌面,而且下次打開不會有網址列,看起來就像一個原生的 App。
想體驗 PWA?試試 這篇文章 裡的範例。
有發現安裝很快,你幾乎沒有感覺浪費到時間嗎?PWA 的體積比原生應用程式還小,知名交友軟體 Tinder 就透過 PWA 把原生應用程式從 30 MB 壓縮到剩下 2.8MB,提升了使用者體驗 [3]。此外,PWA 也定義了快取、離線使用的功能,雖然離線就不能瀏覽網站,但是你可以在 PWA 中撰寫離線時可以怎麼瀏覽,就算應用程式離線,也譨擁有有限的功能,而不是完全無法開啟。Twitter 就透過 PWA 的快取,減少了 70% 的頻寬消耗 [4]。
離線瀏覽、快取,再加上通知功能,不論一個網站是要放在手機上讓行動使用者操作,還是要在 Chrome OS 這樣的雲端作業系統上使用,甚至是一般電腦的網頁瀏覽器,PWA 都有其用處。
最後,本文仍然是鐵人賽的第 20 篇文,接下來剩下的這幾天,我們會在 Chromebook 上繼續探討 PWA 的好處,並實際撰寫一個 PWA 應用程式。
本篇文章同步發表在 Noob's Space。