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的概念 ...
随机推荐
- SpringBoot注册Servlet、Filter、Listener
SpringBoot默认是以jar包的方式启动嵌入式的Servlet容易来启动SpringBoot的Web应用,没有web.xml文件 因此我们可以使用以下方式来注册Servlet.Filter.Li ...
- 【转】Python之列表生成式、生成器、可迭代对象与迭代器
[转]Python之列表生成式.生成器.可迭代对象与迭代器 本节内容 语法糖的概念 列表生成式 生成器(Generator) 可迭代对象(Iterable) 迭代器(Iterator) Iterabl ...
- [转]HEX文件格式解析
1.前言 本文主要讲述keil MDK 下STM32编译生成的的HEX镜像文件格式.并说明镜像load地址是如何添加进HEX文件的. 2.keil MDK如何在HEX文件中添加load addr 通过 ...
- Linux下查看文件或文件夹大小的命令df 、du、ls
转自:http://www.cnblogs.com/benio/archive/2010/10/13/1849946.html 当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的 ...
- windows环境变量PATH顺序的重要性
PATH是路径的意思,PATH环境变量中存放的值,就是一连串的路径.不同的路径之间,用英文的分号间隔开.系统在执行用户命令时,若用户未给出绝对路径,则首先在当前目录下寻找相应的可执行文件.批处理文件等 ...
- sqlyog通过跳板机ssh连接mysql数据库
方法一: 方法二: 在跳板机上启动sh脚本做ssh端口转发,客户端配置连接 10.0.0.1的8306端口即可 jdbc:mysql://10.0.0.1:8306/testdb?useUnicode ...
- centos6.7环境之kvm虚拟化quem工具配置及使用详解
环境准备 需要勾选CPU的虚拟化支持,支持cpu虚拟化的CPU列表: intel支持虚拟化技术CPU列表: Intel 6 Cores / 12 Threads CPU Number: Code Na ...
- CentOS 6.5结合busybox完成自制Linux系统及远程登录和nginx安装测试
前言 系统定制在前面的博文中我们就有谈到过了,不过那个裁减制作有简单了点,只是能让系统跑起来而,没有太多的功能,也没的用户登录入口,而这里我们将详细和深入的来谈谈Linux系统的详细定制过程和实 ...
- vim常用
删除空行 :g@^$@d
- js高阶函数map和reduce
map 举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个数组[1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map实现如下: 由于map()方法定义在JavaScr ...