說說 PWA 和微信小程序--Progressive Web App


作者:雲圖圖
鏈接:https://zhuanlan.zhihu.com/p/22578965
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

利益相關:微信小用戶,谷歌小員工


微信發布了微信小程序,雖然還在內測階段,但是無論從技術上,還是以后要不要開發原生應用(native app)上引發了不少討論。其實看到微信小程序的消息, 我第一時間想到的是 Google 之前推出的PWA(Progressive Web App),兩者的目的是類似的(偽原生應用),但是形式卻又有不少區別,可以比較來看一下。

耐心點,先讓我來說說PWA。

PWA 是什么?

PWA 的全稱是 Progressive Web App,是 Google 在2015年提出,今年才推廣開來的想法。具體的意思就是在移動端利用提供的標准化框架,在網頁應用中實現和原生應用相近的用戶體驗

總而言之,它說到底還是一個網頁應用,只不過通過最新的技術手段實現了某些以前原生應用才有的功能。



PWA 的優勢在哪?

技術上不想說太深,我也不懂,所以從用戶角度來說,列舉一下和傳統網頁應用相比的優勢。

  • 消息推送。用戶只要允許,即使網頁關閉后仍然可以在系統通知欄收到推送消息。(自從知道 Facebook 應用為了消息的即時性強制阻止安卓系統進入節電模式后,我就卸載了 Facebook 原生應用改用他們的網頁推送了)
  • 后台加載。往常的網頁應用只要關閉了網頁他的生命就結束了,現在引入了一個 Service Worker 的概念,即使網頁關閉,PWA 仍然可以在后台運行獲取數據更新(當然有限制)。
  • 離線使用。PWA 打開后會緩存一些內容,之后再次訪問即使沒有網絡也可以瀏覽之前的頁面(如同IE時代的離線瀏覽)。
  • 原生應用界面。在某些情況下 PWA 應用可以隱藏瀏覽器本身的所有視覺成分,光從UI和UX上看,很容易認為這就是一個原生界面,如下圖其實都是PWA而不是原生應用。
  • 桌面圖標。PWA只要配上一個圖標,再放快捷方式在桌面上(比如一定時間內第二次訪問PWA會自動詢問是否添加快捷方式到桌面),就真的和原生系統無異了,打開的速度也很快(當然功能不能很龐大)。

另一方面,和原生應用比,PWA 又不需要用戶安裝,只需要瀏覽器支持 PWA 就可以了。



為什么要推出PWA?

首先,網頁應用在一定程度上受到了瀏覽器的局限,所能獲得的權限,效能都是的很多復雜的功能很難實現,這是更簡單的方法就是開發原生應用了。而 PWA 就是一個試圖把兩者相融合的嘗試。如果需求不大,新公司已經沒有必要花血本雇佣不同平台的開發人員做原生了,只要一個 PWA 就夠了。另外當網頁應用發展更好之后,整個移動平台的用戶都提升了,對於正在轉型移動平台的 Google 來說當然價值非常。


我個人覺得這是一個很好的嘗試,也會推進行業的發展,但是究竟能走多遠抱有謹慎樂觀的態度(如今微信也加進來應該更樂觀了)。


其次,當你主導的技術在市場上被廣泛采用的時候,你在整個行業的話語權都會提高,也有更多的獲利機會。


比如我在廣告業務的的技術支持部門工作,有的同事就會去有的廣告業務客戶那里推銷 PWA,同時公司內部也有各種 PWA 的培訓和講座。如果公司沒有或者用戶沒有安裝原生應用的話,PWA 擁有比傳統網頁更好的體驗,在計算競價排名上也有優勢(Landing page experience),PWA 就會給客戶公司帶來更多的用戶,而更多的用戶也就帶來了更多的收入,自然的Google也就獲得了更多的廣告收入。。



PWA 的發展

這個概念在行業內發展的挺快,在本文的這個時間點上,基於 Chromium 的瀏覽器 Chrome 和 Opera 已經完全支持 PWA 了,Firefox 和微軟的 Edge 正在開發中,水果公司的 Safari 最近剛剛表達了可能會支持 PWA。從長久的角度看,只要 Google 不斷推動一些網站往 PWA 轉型,其他的瀏覽器或者競爭對手也就會自然跟風上船。


網上已經可以找到大把的 PWA 例子了,這里有不少:,其中不乏 The Washington Post,Flip Board,AliExpress,Wikipedia,Gmail,Booking 這樣的大頭。


里面有個 Air Honer 很有意思,大家可以玩一下(小心有聲音別在開會的時候打開。。),The Air Horner,從點開到使用只需要點擊一次屏幕(不需要安裝),使用體驗又非常接近原生應用(UI/UX設計,桌面圖標)。



微信小程序


我沒有第一手資料,只是從最近的新聞和其他文章中得到的微信小程序的一些消息,大體和我想象的相同,就是微信提供一個內嵌的封閉運行環境,讓開發者可以利用基於Web的技術開發出和原生應用類似的用戶體驗和功能。(如果不准確望指正)


先說結論,在我看來,微信小程序相比於 PWA,雖然起步晚一些但是前景會更好。



從技術手段上來說

兩者都是基於現階段 Web 技術的,但是又不同:PWA 是 Web 的父集,通過提供更多的外部接口和規范來讓網頁應用獲得原生應用才有的特點;微信小程序是Web的子集,通過簡化 Web 開發過程和提供封閉完善的空間,使得原先的公眾號用戶以【1.成本低於原生應用開發 2.體驗高於網頁應用】 的偽原生應用。這是兩個不同的思路,PWA 更多的是說服現有應用轉型,微信小程序更多的是說服新用戶寄生在其中。愚見雖然 PWA 的格局更廣,但是顯然微信小程序的前景更好。



從推廣手段上來說

兩者不太相同。PWA 其實是個抽象的技術標准,Google 只能通過自己行業內的影響力和一些刺激因素來說服瀏覽器支持 PWA,客戶開發 PWA,推廣其實受到不少阻力。微信這邊情況就好很多,作為一個蓬勃發展的生態系統,大多數企業為了不落后,都無法忽視微信的任何一個動作。微信出公眾號就要弄公眾號,出支付平台就要支持微信支付,出小程序就要開發小程序。這是個雙贏的行為,微信在推廣自己的平台,目標企業在推廣自己的業務,所以這陣東風誰不願意吹一下呢。



從目標用戶上來說

兩者基本接近的,PWA 只有加法沒有剪法,所以即使原有網站的功能很復雜,只要投入足夠的資源總能開發出等效的 PWA,甚至可以擁有類似拍照之類的原先只有原生才有的功能。微信則是在一個簡化的封閉環境中。就好像微信公眾號,雖然文章是基於 HTML 的,但是有很多 HTML 標簽不能用(比如 hr,a 等)。所以微信小程序能實現的功能一定是受限的,犧牲了一部分功能,但是帶來的是開發流程的簡化。這會更吸引那些對權限,技術接口要求不高,更多以內容為主的應用。最好的例子就是微信公眾號,他們十分依賴微信平台,但是受到公眾號平台的限制,內容的豐富程度十分有限,相信推出后會有大批的微信公眾號嘗試小程序。



從目的上來說

兩者都是為了擴大圍繞自己的生態圈和行業影響力。如果 PWA 推廣開,就相當於 Google 引領了 Web 的發展方向,這會給公司帶來巨大的長期利益。而與微信小應用,則是推廣開后,其裙下寄生的應用越多,就越能給微信吸引用戶流量,讓微信往平台轉變。微信從最開始的即時消息軟件,發展到后面的內容平台,支付平台,這一步則是應用平台。另一方面,寄生其下的應用內的交易必定需要經過微信支付的通道,正好兩者相輔相成。



從局限性來說

兩者首先有個共同的局限性:



現實點說,大部分公司不會立馬拋棄現有的網頁應用或原生應用,所以在一定的時間里,公司需要額外分配一部分資源用來開發 PWA/微信小程序。這是無法避免的,特別是微信平台,當用戶養成使用小程序的習慣后,公司為了擴大自己的覆蓋面,很可能會入住微信,但是另一方面原先的 App 即使活躍用戶很少了,卻也不能完全拋棄,不然用戶會不滿甚至棄用你的產品。所以前期公司需要投入一定資源在新平台的開發上,后期也需要投入在原有久平台的維護上。


微信額外的局限性就在於內容的豐富程度上,這其實是個妥協。如果內容要豐富,那么就對性能和接口有更多的需求,這樣就對微信平台本身的要求更高,簡直可以理解成開發了一個新的操作系統 WeChat OS。而且一個系統一旦功能多了,上手就會變慢,很容易就嚇跑那些原先之生存在微信公眾號里的用戶,得不償失了,所以我猜他們會在一定程度上限制這些小程序可以使用的接口數量。


PWA 在局限性這點上是有優勢的,但是在推廣方面卻缺乏關鍵動力。畢竟相對於微信小程序,開發 PWA 需要的資源更多,不是所有中小團隊都能付出的起的。



總結一下

微信小程序和 PWA 作為牆里牆外的兩個巨頭試圖改變移動互聯網行業的努力,看起來很類似,但是其實格局很不一樣。現階段來看微信的這個新平台很有前景,但是畢竟還在 Close Beta,究竟以后發展如何還是留給市場決定吧。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM