它比微信小程序早出現半年,卻不曾引爆技術圈

qqyaofa01 8年前發布 | 7K 次閱讀 微信 移動開發

作為一個程序員,這兩天的朋友圈被微信小應用刷屏了吧?想試了吧?沒拿到邀請吧?沒關系,我來幫你!

當然,我沒法幫你拿到邀請碼 —— 因為我也沒有。不過,別失望,我今天要跟大家談一項比微信小程序更宏觀的概念 —— Google提出的PWA。

PWA是什么?

PWA全稱是“Progressive Web Apps”,譯成中文就是 漸進式應用。 這是Google在2015年6月15日提出的概念,參見Alex Russell寫的 《Infrequently Noted》

那么,什么是漸進式應用呢?

Alex寫道:

在昨天的晚餐上,我和Frances列舉出了新型應用的幾個特征:

  • 響應式:適應任何形態因素
  • 不依賴網絡:在Service Worker(H5中的新技術,appcache的升級版)的支持下能夠離線使用
  • 像本地應用一樣交互:采用“殼+內容”模式來實現類似本地應用的瀏覽和交互體驗
  • 保持最新:始終透明的升級到最新版,這要感謝Service Worker提供的升級機制
  • 安全:通過TLS(這是Service Worker所要求的)來防止通訊被窺探
  • 可發現的:具有像“應用”一樣的唯一標識,這要感謝W3C的Manifest文件格式,它在“Service Worker”中注冊的scope能允許搜索引擎發現這些應用。
  • 可“再接觸”的:可以訪問操作系統的“可再接觸”界面,比如推送通知
  • 可安裝的:通過瀏覽器提供的提示,可以把它加入主屏,允許用戶把覺得有用的應用“保留”下來,而不用到應用商店去安裝,那樣太麻煩了。
  • 可鏈接的:這意味著它們是零阻力、零安裝,并且易于共享的。URL更能發揮社交傳播的能量。

PWA怎么用?

一個PWA的使用過程大概是這樣的:

這貨開始就是一個普通網頁:

然后,這是什么鬼?

這網站看著還不錯,那就接受吧!

它出現在手機的首屏了,以后隨叫隨到!

點了就能像一個本地應用那樣啟動它:

看,啟動完也跟一個本地應用沒有區別:

PWA的好處

Web應用(網頁)和本地應用(App)各有優勢,比如:

  • Web應用不需要安裝,因此減少了用戶流失(想想你要安裝一個應用時有多么猶豫吧)
  • Web應用方便傳播,你只要在微信或者QQ里發一個網址就有很多人會去看(比如本文 ^_^)
  • Web應用的收藏、前進、后退這些功能非常有用
  • 本地應用的留存度比較高。你看過一個網址后再回來的概率大約是本地應用的1/3。
  • 本地應用可以推送通知,而Web應用只有在瀏覽器打開狀態下才行
  • 本地應用可以離線使用,只要做適當的設計就可以不受網絡環境的影響
  • 本地應用可以訪問更加豐富的功能,比如更大的本地存儲空間

那么,它們能否合二為一呢?這就是PWA所做的事!

通過前面提到的這些步驟,PWA可以讓用戶同時獲得這兩種好處。這無論對于用戶本身還是對于應用的開發者都非常有意義。

如何實現PWA?

其實從Alex的描述中就可以看到,在技術上我們離實現PWA并不遠:

Web應用開發技術

已經具備。

特別是得益于Angular等SPA應用的普及,SPA不但響應更加快速,更加接近原生應用的操作體驗,而且讓我們可以完全不依賴服務器工作。

離線存儲技術

可能有人還記得一項叫AppCache的技術,它已經廢棄了,現在被Service Worker所取代。這是一個更強大的AppCache,它不僅能存儲HTML/JS等靜態文件,而且還讓你能夠在客戶設備上運行起一個仿真的超輕量級Web服務器,你在里面已經幾乎可以寫Node程序了!

這是新的H5標準的一部分,而不是PWA特有的。

推送通知

H5標準中已經有了用來推送通知的API(用過Web Gmail的話應該見過),現在只要把它和操作系統的API對接就行了。當然,這最好由操作系統提供支持,這已經實現了,那就是新推出的Android 7。

App殼程

這個殼程序其實自己來實現也沒問題,技術上沒啥難度,不過不用重復造輪子了,因為官方已經出了一個,參見 https://github.com/GoogleChrome/application-shell 。如果用Angular 2就更幸福了,因為Angular 2還制作了一個Angular 2專用的殼: https://github.com/angular/mobile-toolkit 。不過,它現在還處于未發布狀態,早鳥可以開始提前嘗試了。

微信小程序與PWA

雖然”微信小程序”概念的提出比PWA晚了半年,不過相信張小龍這個級別的產品經理不會是簡單的抄襲PWA概念,而是會發揮微信生態圈的優勢,提供更廣闊的應用場景。或許我們應該把微信小程序看做PWA的一種優質實現。

 

 

來自:http://insights.thoughtworkers.org/wechat-app-and-pwa/

 

 本文由用戶 qqyaofa01 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!