Progressive web app理念及发展前景
前一段时间微信推出微信小程序进行公测,着实火了一把,博得了大众的眼球,不明真相的吃瓜观众们纷纷围观,所谓的“微信小程序”,通俗的讲就是一种不需要下载安装即可使用的应用程序,脱离于app商店依托于浏览器运行,实现与传统app非常接近的功能,优点这里就不累述了;各路英豪纷纷跟进表示要进行微信小程序开发,各种蹭热度,对于其发展前景,大神们的分析见解也很多;
刚看到微信小程序推出的时候,看到相关的描述,我的第一印象就是,这不就是google的pwa(Progressive web app)设计理念吗,不清楚pwa的童鞋看下图直观的感受下:
关于pwa,说起来话长,也不得不提"Skynet":Google(插句题外话,个人反对过度依赖使用AI,如果有一天人类灭亡于AI,始作俑者一定是Google),2015年,工程师Frances Berriman和Google Chrome工程师Alex Russell创造了“Progressive Web Apps”这一术语来描述新一代浏览器支持的web应用,给予其的理念和定义也非常的鲜明,一种在网络上提供神奇用户体验的新方式,pwa有着以下的特点:
可访问性 – 通过新APIservice-workers(相当于一个本地的proxy,采用JavaScript控制关联的页面或者网站,拦截并修改访问和资源请求),使得的app能够在各种网络环境下使用,包括网络差和断网条件下,不会显示undefind;
快速 – 其本质是一个网页,没有原生app的各种启动条件,快速响应用户指令;
可安装性 – 可以将app的快捷方式放置到桌面上,全屏运行,与原生app无异;
App Shell – 也就是app外壳,也就是download app外壳在设备上,等异步数据来了再填充;
消息推送 – 也就是推送消息的能力,在pwa被关闭的时候,其实是保留有后台进程的,可以接收发送来的通知,不过默认使用的是GCM(Google cloud-messaging),大天朝就…
其官方也给出了一个小引导教程,详情请戳:your-first-pwapp;只需要安装一个本地服务器就可以跑起来,我用的是iis(WIN7),对于阐述pwa很有代表性,有兴趣的小伙伴可尝试下,运行实例:
更多的线上实例可以看这里:https://pwa.rocks;
其实全局来看,pwa里提到的新特性,也不算是非常超前的概念,比如速度和app shell在其他的技术方面也有类似的设计实现理念,就算是其中比较新的service-workers也面临着浏览器支持这一难题,当然,google作为一个全球级别的公司,在新技术研发和推广方面有着绝对的优势,我也相信pwa这一类新理念会慢慢普及被广大厂商、开发者、用户接受并使用,大角度上说pwa的推广是必须的,很多新通道的开辟往往都是这样开始的;
再回到开头提的微信小程序,我敢说绝对受到过google pwa理念的影响,但由于众所周知的原因,中国与世界强大的新知识发源地联系被一定程度的隔绝(it:facebook、twitter、google…),在知识传播、应用传播等方面有了障碍,中国内地只能自己玩,形成自己独特的生态圈(讽刺的是因为人数的原因往往能搞成规模世界规模第一exm?),微信不吹不黑,一个app,依靠用户优势和粘度,竟然形成了这样一个生态圈(包括之前的公众号开发),感觉apple在这方面能力应该是最强的,第一apple是全球通,第二apple有从OS、DEV、app、各种硬件(虽然google也有)一系列的产品支持,你系统不支持,我ios自己搞,你浏览器不支持?我safari自己搞,app商店等各种推广,其他厂商慢慢也会跟进,我深深的相信flash的死亡跟apple表示不支持flash有直接关系,这也是我对微信小程序抱怀疑态度的原因,个人观点;
如上所述,google在中国的技术推广挺痛苦的(只要跟google服务有关的),google pwa在中国推广也有着诸多的困难:
中国apple用户众多,而现在apple不支持pwa;
Chrome在中国桌面版占有率还是不错的,移动端上的占有率却很低;
各大厂商还未明确支持pwa,更不要说中国混乱的各种开发标准了;
依赖的GCM服务在中国被呵呵
;
As of 2016, Progressive Web Apps are implemented in the Chrome browser, but more browsers may support the features needed in the future; -WIKI;
如上所述如微信等其他组织慢慢抢占这样的市场技术份额,当然从推广层面来说这是好事;
山重水复疑无路,柳暗花明又一村,撇开固有的偏见,新技术的创新、推广无论是从哪里做起,对于广大用户来说都是带有便利性的,我们是抱着欢迎的态度的,世界大同,任重道远;
原文地址:http://www.xuechenlei.com/2017/01/progressive-web-app
Progressive web app理念及发展前景的更多相关文章
- (转)PWA(Progressive Web App)渐进式Web应用程序
PWA 编辑 讨论 PWA(Progressive Web App)是一种理念,使用多种技术来增强web app的功能,可以让网站的体验变得更好,能够模拟一些原生功能,比如通知推送.在移动端利用标准化 ...
- 说说 PWA 和微信小程序--Progressive Web App
作者:云图图链接:https://zhuanlan.zhihu.com/p/22578965来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 利益相关:微信小用户,谷歌小 ...
- [io PWA] keynote: Launching a Progressive Web App on Google.com
Mainly about Material design (effects / colors / flashy stuff) Components (web components / polymer) ...
- PWA(Progressive Web App)入门系列:(一)PWA简单介绍
前言 PWA做为一门Google推出的WEB端的新技术,长处不言而喻.但眼下对于相关方面的知识不是非常丰富.这里我推出一下这方面的新手教程系列.提供PWA方面学习. 什么是PWA PWA全称Progr ...
- Progressive Web App是一个利用现代浏览器的能力来达到类似APP的用户体验的技术——不就是chrome OS吗?
什么是Progressive Web App? Progressive Web App是一个利用现代浏览器的能力来达到类似APP的用户体验的技术,由Google实现,让浏览器打开的网址像APP一样运行 ...
- [Angular] Upgrade existing Angular app to Progressive Web App
If you alread have an existing Angular application and want to upgrade to progressive web app. 1. In ...
- Progressive Web App
下一代 Web 应用? 近年来,Web 应用在整个软件与互联网行业承载的责任越来越重,软件复杂度和维护成本越来越高,Web 技术,尤其是 Web 客户端技术,迎来了爆发式的发展. 包括但不限于基于 N ...
- PWA全称Progressive Web App,即渐进式WEB应用?
一个 PWA 应用首先是一个网页, 可以通过 Web 技术编写出一个网页应用. 随后添加上 App Manifest 和 Service Worker 来实现 PWA 的安装和离线等功能解决了哪些问题 ...
- Progressive Web Apps入门
PC和Mobile开发技术演进 PC方向,从客户端到富客户端,到现在广泛使用的Web. 移动方向,目前主要还是原生应用和Mobile Web,PWA相关技术是未来发展方向. PWA的概念 ...
随机推荐
- Ubuntu/Debian 微信安装
1. 更新系统 $ sudo apt-get update $ sudo apt-get install git-core curl build-essential openssl libssl-de ...
- SpringBoot扩展SpringMVC自动配置
SpringBoot中自动配置了 ViewResolver(视图解析器) ContentNegotiatingViewResolver(组合所有的视图解析器) 自动配置了静态资源文件夹.静态首页.fa ...
- Ubuntu14.04+caffe+CPU
刚刚在上篇博客记录了windows10下GPU版本caffe的安装,正准备跑跑论文里的代码,发现好多命令都是.sh命令,这是linux系统的脚本文件.不能直接在windows下运行,于是我想把.sh转 ...
- Pcap4J实现抓包器
前段时间搞抓包程序,打算使用Pcap4J实现,发现除了GitHub,其它资料少之又少,几乎都是不起作用. 被迫我一直看(日本作者!)英文注解的源码和sample和test,比较费劲+营养很少.因为几乎 ...
- CrossUI SPA Builder ---- feathers API框架
CrossUI SPA Builder: http://www.crossui.com/ 国产? 龙博(JSLINB)AJAX框架? CrossUI SPA Builderenables de ...
- eclipse设置代码模板和格式
该设置可以在保存文件时自动根据模板调整代码格式. 首先准备华为代码格式化文件: FEFO-Formatter.xml FEFO-codetemplates.xml 设置格式Preferences-Ja ...
- jmeter之正则表达式
一.Jmeter关联的方式: Jmeter中关联可以在需要获取数据的请求上 右键-->后置处理器 选择需要的关联方式,如下图有很多种方法可以提取动态变化数据: 二.正则表达式提取器: 1.比如需 ...
- CBAM: 卷积块注意模块
CBAM: Convolutional Block Attention Module 论文地址:https://arxiv.org/abs/1807.06521 简介:我们提出了卷积块注意模块 ( ...
- Sandcastle方法生成c#.net帮助类帮助文档chm
Sandcastle方法生成c#.net帮助类帮助文档即chm后缀的文档,其实是通过C#文档注释生成的XML文件来生成帮助文档的.因此,第一步就是生成XML文档, 步骤1生成XML文档 1.打开VS- ...
- 【功能】返回数据类型、字节长度和在内部的存储位置.DUMP(w[,x[,y[,z]]])
DUMP(w[,x[,y[,z]]]) [功能]返回数据类型.字节长度和在内部的存储位置. [参数] w为各种类型的字符串(如字符型.数值型.日期型--) x为返回位置用什么方式表达,可为:8,10, ...