我們真的需要網頁版App嗎?Google PWA的困局

2020-12-08 雷鋒網

雷鋒網(公眾號:雷鋒網)按:本文作者黃玄,現微票兒前端工程師,前淘寶旅行前端工程師,GDG字幕組成員,前端外刊評論成員。

其實回來的兩周裡,我對Progressive Web App(以下簡稱 PWA)的理解也在不斷更新,現在是思考更為全面的時候。

一、先從技術角度聊聊我的觀點

6月5日,我在I/O Redux上分享了「Progressive Web App - in my points of view」(PWA之我見) ,簡單介紹了PWA,也聊了聊我的看法。

首先,什麼是PWA?

官網上對PWA的宣傳是這四個關鍵字:可靠、快速、Engaging、安全;再點進去PWA的主頁,會發現還有Instant Loading、添加自主屏、通知推送、響應式,而官方教程就更棒了,一次性給了10個關鍵字!包括Progressive, App-like, Fresh, Installable……

如果搜索下PWA的歷史就會發現、它第一次出現於Googler Alex Russell的博客文章《Progressive Web Apps: Escaping Tabs Without Losing Our Soul》中,其主要觀點是:Web的發展方向應該是「在保留靈魂的基礎上漸進增強」,而非現在大行其道的Hybrid App方向。

我總結文章裡的 Progressive 主要有這兩層含義:

如果用戶需要,網頁可以漸進式地變成App,比如被添加到主屏幕、全屏方式運行、離線工作、推送通知消息等。但它仍是Web而非放到App Store裡。

所有這些「使得Web更能與App匹敵」的特性都是以漸進的方式增強的,在比傳統網頁應用更好的同時也保證了降級兼容。

作者舉的一個PWA例子就是Chrome Dev Summit 2014的Web App,Slides裡的Gif描述了其從網頁被「升級」為 App 的過程:演說.io - 分享你的雲演說

我理解的PWA:

首先是一個「涵蓋性術語」:利用一系列現代Web技術的組合,以在行動裝置上提供最好的體驗(隨著Web技術的發展繼續吸納);

再者,為什麼瞄準移動端?因為目前移動仍是浪尖,而Web畢竟誕生於桌面端,歷史原因使得Web的最大短板還是在移動端。

Chrome團隊一直宣傳說 「PWA:Deliver an app-like UX」 ,在我理解看來,應該說Chrome團隊現階段推進Web的主要目標是「匹敵Native app」。(如果VR真能起來,說不定Web VR又會成為Chrome 團隊的重心)

PWA到底有哪些過人之處(特性)?

看了諸多Session後,其實總結起來主要就四個:

1、Installability (可安裝性):說白了就是可被添加自主屏與全屏運行。對於這個,我就發一張圖不說話:

2、App Shell:說白了就是第一次渲染渲個殼、等異步數據來了再填充,這我也就上個圖:

3、Offline (離線能力):說白了就是離線和弱網環境也能秒開,但是這個就牛逼了。Hybrid架構搞了那麼久,說白了不就為的這個嗎?之前有個東西叫Application Cache,但是那貨就是個shit。

所以這次Chrome搞了個Service Worker出來,給了Web一個可以跑在後臺的線程,它可以搭配非常靠譜的Cache API做緩存、可以攔截所有HTTP請求並使用Fetch API進行response,一個非常完備的Proxy就這麼誕生了。

不過當這種離線能力出現在瀏覽器層面時,意義就完全不一樣了。

4、Re-engageable:說白了,目前主要就是推送通知的能力。推送通知依賴Service Worker與HTTP Push,不過默認的支持可是GCM啊……在國內覆蓋率肯定是捉急的,不展開了。

Slides裡還提到了幾個示例和幾個推薦Session、有興趣的可以自己去看,我這裡就提兩個:

PWA當然不是Polymer only,只能說Polymer都幫你封裝好了。PWA目前用到的幾個特性都是Framework-agnostic的。

AliExpress作為Keynote裡唯一展出的PWA還是值得小自豪一下的;並且,它好像是唯一不搭梯子就可以體驗到的……

那麼技術角度上,我對PWA的看法?

缺點:

門檻不低(要求 HTTPS;Service Worker也需要學習);

瀏覽器支持(主要是Safari不願意支持,只是在5年計劃裡提了一嘴);

用戶習慣(讓用戶習慣於網頁可以離線工作真不是短期可以達到的)。

優點:

剛才提到的,所有這些現代 Web 特性;

由於這些都是「優雅降級、漸進增強」 的,給支持的設備更好的體驗,不支持的設備也不會更差。

可以看出來,其實我對 PWA 的評價也並不是那麼積極的:

除了Service Worker帶來的諸多可能性外,其他幾個都不算是什麼新鮮事;而就連Service Worker,還面臨著瀏覽器支持這個Web發展的千古難題。

那麼,為什麼我們還要擁護並 stick on Web 呢?

我特別同意《The Mobile Web: State of the Union》這個Session裡Chrome產品團隊Leader Rahul所說到的:Dicoverable、Linkable、Low Friction、Broad Reach等等,這些都不是Web最大的優點,Web最重要的意義在於Open(開放)與Decentralized (去中心化),這才是全球資訊網(WWW)的初衷。

是啊,縱使強如Chrome都不能對Web一手遮天,這才是Web真正與眾不同的地方。這也是Web背後開放與分享的力量。

二、再說PWA的意義,技術與技術之外的

PWA看上去並不是那麼breakthrough,但這可能只是站在開發者的角度之上的。

大家都很熟悉 「Ajax」 這個說法,它出現於2005年,用於描述Gmail (2004) 或者Google Maps (2005) 這樣的網頁應用,這個詞不但宣告了Web客戶端技術的全面復興與流行,也成為了Web 2.0的最大技術推動。然而事實是,早在「Ajax」這個詞出現的5年前,IE5已經廣泛支持了XML HTTP Request並實現了Outlook Web App (2000) 。

技術並不是不需要包裝。如果沒有「H5」這樣易於傳播的爛詞, Mobile Web乃至前端工程師在所有中國群眾、新手開發者、產品經理、創業者中也不會得到如此重視。

身為開發者我們知道,Web這幾年發展迅猛,我們能做的事情越來越多。但是在大量群眾的心裡可能並不是這樣,如果你做出一個體驗足夠優秀的Web產品,可能大家的第一反應是:「這肯定是一個App」。

而這正是「PWA」希望解決的問題,Chrome團隊希望用一個新的buzzword(流行詞)來影響、改變用戶的期待。作為開發者我們知道,PWA歸根結底還是個網頁,當然,是個更好的網頁。但是Chrome希望讓用戶感受到不一樣:「哦這是個普通網頁;哦這個Chrome告訴我可以添加到主屏幕上,告訴我可以離線、可以推送、這是個PWA」

這也是為什麼Rahul 一直在強調Mobile Web已經Business ready,並積極與企業合作去推出PWA的原因,Chrome團隊希望用實際的產品要告訴用戶,PWA就是那個體驗跟App一樣好但是都不用你安裝的網頁應用。」

看看華盛頓郵報的這個新版就可以發現,「PWA」 這個名詞是對用戶的。沒有哪個產品會對所有用戶開屏提醒,嘿我這個是Isomorphic JavaScript App!但是PWA可以,這個概念是希望被用戶接受的,而不止是開發者。

同樣,另一個Google大力鼓吹的印度第一電商FlipKart也很有意思,他們把自己的官網改為了PWA,命名為FlipKart Lite,然後還拍了宣傳片兼教程來公開介紹這種新體驗以及新技術。

在發現了這幾點後,我對PWA的理解才終於到了一個新的維度。

推動一個技術的發展其實是很多維度的,你要吸引的不止是開發者、還有用戶和公司(讓它們使用這個技術)、最終才能讓整個生態建立起來。所以無論App Store還是Google Play總是要說我們幫助了多少公司/開發者獲得了成功,就是這個道理。

從這個角度來說,「PWA」 可能比單純的技術突破對Mobile Web整個生態的影響要更大。開發者之間希望說服對方一個技術比另一個技術更好都是一件很難的事情,更不要說說服用戶了。我們不能說 「PWA」 完全是個營銷詞彙,但我真心希望這輪對用戶的營銷能夠成功,讓用戶對Mobile Web有所改觀,這才能真正解決我上面提到的「用戶習慣難以養成」的問題。

Web的開發與去中心化在商業角度經常陷入「沒爹又沒媽」的窘境,Rahul在臺上大聲對下面喊 「Google Love the Web!」,然後觀眾席響起了稀稀拉拉的掌聲,看得我很是心酸。

上一輪有著類似可能性的Web App推動來自咒死Flash的Steve Jobs,老喬在2008年的WWDC上對著世界說:即將發售的iPhone沒有SDK,但是iOS 1.0有Safari,你們可以用Ajax+Web2.0創造媲美原生應用的web app,下面連掌聲都沒有,後來被罵到打臉,不了了之。

三、最後說說PWA的地域性

一個很有意思的現象是:「Apple親中,Google親印」。這可不止是管理層的組成問題,而是對市場環境的優勝劣汰。

全世界都知道中國人土豪、有錢、能買、愛慕虛榮,剛好和iPhone的土豪打法臭味相投;雖然天朝網絡條件現在相當可以,但偏偏Google再遇上個不能描述的問題,兩者地位一下子天上地下。

再看印度,整體還處於「第三世界」,網絡條件差,沒錢買Apple,但也沒有中國的特色問題;於是Google一直在打低價、低硬體環境牌,在印度做的風生水起。

Google的技術在國內推進本身就是很痛苦的,Android搖身一變「安卓」得以在國內馳騁,但PWA在中國的發展則困難重重:

國內iPhone居多,首先就不支持 PWA。

各路Android ROM中的瀏覽器早都已經被改的沒有人形了,大家在支持PWA這件事情上肯定毫無興趣 ——什麼添加主屏,與我的利益毫不相關啊。

原生Chrome雖然在國內桌面端的市佔率還不錯,但是移動端應該差到不行。

依賴GCM的通知推送,直接再見。

國內的Web環境非常複雜、首先是各種Webview,然後才輪得到瀏覽器。

國內的網際網路公司大都「技術深厚」,各種黑科技大行其道,哪裡輪得到PWA。

而再看印度,PWA簡直就是神器:

由於都是Google服務健全的Android設備,標配Chrome,PWA 一推,用戶到達率簡直直逼100%。

印度網差,下載一個App痛苦,一個可以「流式下載」的PWA在用戶初次訪問上就可以完爆Native App。

網際網路環境還比較原始,大都直接親Google,公司支持率也會非常高。

所以你看,AliExpress率先支持了PWA,但在國內,這一天不知道要等到猴年馬月了。


雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • Google Earth 谷歌地球app
    (app)由於google退出中國市場,中國大陸無法使用google相關軟體,但是可以通過ourplay框架,來使用Google相關軟體。也可以在框架中使用其他google軟體,請自行發揮。現在,您使用 Google地球(網頁版)製作的讓人身臨其境的地圖和故 事也可以呈現在行動裝置上。一. 安裝步驟:1.下載ourplay並啟動。2.在ourplay商店中搜素【谷歌地球】並安裝。
  • Google Play Store切換國家下載app
    store算是下載正版app的唯一來源,要是下載大陸區沒有的app的話我們就採用海外區的帳號來下載。 眾所周知tiktok已經無法在香港的商店下載了包括app store以及google play store
  • Instagram中文網頁版
    Instagram中文網頁版是一款玩法豐富的軟體,快來下載體驗下。Instagram中文網頁版軟體功能:Instagram中文網頁版玩法特別有趣,快來下載吧!讓您與喜歡的人和事物聯繫更緊密。
  • YouTube網頁版更新!觸控操作更容易
    ▲YouTube推出網頁版更新。(圖/路透) 陳心怡/外電報導 YouTube是目前使用最廣泛的影音平臺,根據《9to5google》報導,Google本周為YouTube網頁版引入一些更新,其中包括變得更適合觸控,以迎合愈來愈多人在具觸控熒幕的裝置直接瀏覽YouTube。
  • Android版Instagram登陸Google Play
    在Android版Instagram發布不到24小時,就有超過百萬下載量喜人成績。平均每分鐘就有2000的下載量,這也讓 Instagram 成為Google Play平臺有史以來最火爆的應用之一。UI界面清爽,App簡單易操作。
  • 真的來了:谷歌翻譯app可在國內順利使用
    所以,這次實際上是谷歌翻譯app的解禁。雖然之前的App Store和Google Play都能下載到谷歌翻譯app,但前者使用還是需要科學上網,而後者則在國內直接被禁。經愛活測試,如果你的谷歌翻譯app已升級到最新版本,將可無需藉助科學上網而下載到語言包,如此便可使用其翻譯的功能。
  • insgream網頁app下載
    insgream網頁app下載軟體介紹:Instagram 是一種捕捉和分享世界精彩瞬間的簡單方式。只需關注,即可借他人之眼來捕捉全球的精彩瞬間,順便從中發現趣味。展示自己的魅力和創意,讓眾多小夥伴參與互動評論,共享歡樂。
  • Google翻譯App更新:拍照就可翻譯!
    8年來,用戶可通過translate.google.cn訪問網頁版的Google翻譯,現在用戶還可下載Android和iOS版本應用。該功能被啟用後,可在任意App中選中並複製需要翻譯的文字內容 (如聊天記錄、評論、歌詞等),Google翻譯的按鈕便會自動出現在當前界面,點擊即可獲取翻譯結果。Google翻譯同時也搭載Word Lens。當你在旅途中遇到路標、菜單甚至說明手冊時,Word Lens可實現英漢之間的即時識別翻譯。
  • Google Chrome v74.0.3729.108 正式版發布
    谷歌瀏覽器v74正式版增加了兩個關鍵功能:對網頁和作業系統級集成的減速支持瀏覽器將獲得Windows 10的原生黑暗模式。
  • Win10應用商店網頁版出現白屏提示「Access Denied」
    但剛剛PConline小編發現Windows商店網頁版突然遭遇Access Denied(拒絕訪問),整個商店網頁呈現白屏,無法顯示正常內容。▲旗魚瀏覽器訪問截圖當訪問Win10應用商店網頁版時(青島聯通網絡),無論是首頁還是應用跳轉頁面都顯示Access Denied(拒絕訪問),並且還有更多內容:You don't have permission to access "http://unistore.www.microsoft.com/store/apps/app/9wzdncrfjbh4"
  • 全新網頁版/移動版PS商店將於本月上線
    文件中,索尼表示新版的PlayStation商店將於10月19日推出網頁版,10月28日推出行動裝置版。  有趣的是,網頁端和移動端的PS商店將僅限於PS4和PS5。文件表示PS3/PSP/PSV遊戲將不會出現在網頁端和移動端的PS商店上,並且網頁端和移動端的PS商店也不會有PS4主題、各類app應用軟體或頭像。但那些已經購買過了PS3/PSP/PSV遊戲的人毫無疑問還是可以在自己的遊戲庫裡保留這些遊戲。而你也仍然可以通過PS4的PS商店來購買這些遊戲。
  • 變態版手遊平臺app
    變態版手遊平臺app下載!對於遊戲玩家來說是必備的,有了變態版手遊平臺基本上可以解決你在遊戲中遇到的所有難題,為了讓各位玩家能玩到最新的變態版手遊,本文為大家帶來變態版手遊平臺排行榜大全,涵蓋了大型單機、手機遊戲、網頁遊戲等資源,喜歡的小夥伴記得下載體驗哦!
  • 和陌陌一樣,今天 Instagram 也在網頁版上又邁了一步
    今天,陌陌宣布正式推出網頁版。但這並不是一個個例,根據我們的觀察,近年來跨設備、無縫對接已經成為一種行業趨勢,很多移動應用開始觸及電腦端。這一點在社交類產品上尤為顯著, Line 、 Whatsapp 、Kakaotalk 、 Facebook Messenger 和微信等,近年都相繼推出了網頁版,完成了從純移動向大屏端的過渡。
  • GooglePlaystore蘋果版
    GooglePlaystore蘋果版遊戲玩法:非常受歡迎的應用市場軟體《Google Play Store》推薦給大家,包含了大量的熱門最新應用,非常受廣大用戶的喜歡,功能非常的全面,只需下載APP即可獲取到各種免費的最新應用和遊戲,非常的好用,對此感興趣的話不妨下載Google Play StoreAPP試試哦!
  • 【已恢復】Win10 應用商店網頁版部分遭遇 「拒絕訪問」錯誤
    感謝IT之家網友 wkdubhe1987 的投稿下午21點發現Win10商店網頁版已經恢復。IT之家訊 6月1日消息,微軟Windows10商店開放以來遇到過幾次錯誤,但大多數受影響的是Win10 Mobile和Windows10 PC設備端,但剛剛IT之家發現Windows商店網頁版遭遇Access Denied(拒絕訪問),整個商店網頁呈現白屏,無法顯示正常內容。
  • Google縱橫定位軟體推出iPhone網頁版
    Google Latitude的iPhone版本運行在Safari瀏覽器當中,屬於網頁應用。它可以找到好友的所在位置,也可以提供簡單的導航功能。通過點擊藍色圓點,它也能迅速定位到用戶當前所在地點,這還要拜iPhone OS 3.0中的Safari已經支持W3C Geolocation API,可以直接調用手機GPS的功能所賜。
  • 辦公一族P圖娛樂 首選美圖秀秀網頁版
    而要更方便快樂的P圖娛樂、在線分享,就不得不給大家推薦「美圖秀秀網頁版」。    網絡下載被限制 美圖秀秀網頁版來救急    公司網管很不給力,在辦公室裡沒法進行網絡下載;而且就算是從家裡帶來的資料、軟體,存儲在辦公室電腦上後第二天也會被還原。想下載安裝一個做圖軟體來拼拼圖、做些美化效果都沒法,真的好鬱悶!    不鬱悶,用美圖秀秀網頁版吧。
  • Google推出免費網頁加速服務搶先試用
    谷歌先生最近又推出了一款站長特別喜愛的服務,網頁加速。它是以自動加快您的網頁加載 。它從你的伺服器上獲得網站內同,然後重寫後提供給使用谷歌客戶端的用戶訪問,提升多少的速度是要看你網站內容,地理位置,帶寬等參數來決定的。至少現在是免費的一種服務,谷大哥這麼說的。
  • instagram網頁版上線 instagram網頁版打不開解決辦法
    全球最著名的圖片博客社區Instagram正式推出網頁版,登錄方法很簡單,只要在瀏覽器輸入:instagram.com/username(username替換為你的Instagram ID即可)。當然如果是遇到instagram網頁版登陸不了的話,這個是受了國內IP的限制問題。需要解決這個問題才可以登錄。
  • 不登app也能刷故事? Instagram推出網頁版Stories
    8月31日,Instagram宣布推出網頁版Stories,用戶現無需進入App,登錄Instagram.com即可瀏覽Stories,但暫不支持內容發布。 Instagram發言人稱,Instagram暫不會在網頁版Stories中插入廣告,且還將在今後添加在移動網頁發布Stories的功能,但不會支持電腦網頁內容發布。