另一个应用时代崛起:见证PWA书写历史

发布时间:2018-04-19 16:36

iOS上的“超级小程序”

苹果在春天正式推送的iOS 11.3带来了不少重要更新,大家比较熟悉的就是电池管理和关闭降频功能,不过对于很多关注前端技术和Web App的用户应该注意到了,苹果iOS 11.3已经悄悄加入了对“渐进式Web应用”(PWA)这一系列新技术的基本支持。

这可能是促进行业发展的一项重要改变,只是苹果自己并没有大肆声张,普通用户也未必这么关心。

但如果说这项改变的意义,不亚于6、7年前我们讨论移动App拥有多大的潜力,如今,新的App发展已经铺好了道路。

PWA,全称Progressive Web App,不是特指某一项技术,而是应用了多项技术的Web App。其核心技术包括App Manifest、Service Worker、Web Push、Credential Management API,等等。其核心目标就是提升Web App的性能,改善Web App的用户体验

PWA所倡导的一些核心技术特性有:

  • 可以在主屏幕上创建图标

  • 可以离线运行

  • 可以利用后台线程与服务端通讯

  • 对搜索引擎友好

  • 响应式界面,支持各种类型的终端和屏幕

  • 方便分享,用户可以方便地把URL地址分享出去

简而言之,PWA可以通过浏览器Safari将支持网页或者网页服务添加到桌面,生成一个图标,形成一个Web App,它和从App Store安装原生App相同,点击图标即可开启,不会出现地址栏也不需要你再输入地址,它还能在离线状态下使用,原生App可以做到的离线使用、消息推送、后台自动更新等,Web App通过PWA也可以具有类似的能力。而且它还免去了App的安装过程,可以用理解为一种以浏览器为入口的“小程序”。

再说一句大通俗话:你可以将支持的某个网页直接生成一个App放在iOS桌面上,并且以后都像打开App一样打开了,以后这种形式还会扩展到更多。

PWA的发展正是这两年开始的事,苹果虽然默不作声但是对PWA的发展一直保持着关注,从去年年底开始就不断有消息预测苹果iOS——更确切的说是苹果Safari会支持PWA,不过我们没想到它这么快就来了。

PWA只能在浏览器或Web平台的安全和执行模型中运行,所以我们要通过Safari来找到:

打开Safari,前去一个支持PWA的站点,点击下方分享图标,你会发现分享项上有一个“添加到主屏幕”,戳它,点击确定,主屏幕上就会出现一个长得跟原生App很像的App图标(有些已经推出独立App的会在角标上注明网页版)。

以后你但凡需要到这个网页,只要点开这个App图标就完事了,不用通过Safari,它的启动和原生App的速度一样快,而且最大的优点是可以在网络很不好的情况下流畅地开启和使用。

是不是感觉,添加Web App很像添加Web收藏夹?

但既然它能够叫做App,能做到事情自然还有很多。

iOS平台上PWA的可用能力有:

  1. 访问地理位置

  2. 使用传感器数据(磁力计、加速计、陀螺仪)

  3. 访问摄像头

  4. 音频输出

  5. 语音合成(仅限使用耳机的情况)

  6. 调用Apple Pay

  7. WebAssembly、WebRTC、WebGL以及很多带标签的实验性功能

PWA还是小容量iPhone用户的福音,随着谷歌地图、微软翻译等引擎网站和京东等电商网站都支持PWA之后,我们手机中有大量的应用可以转为PWA代替,不用再从App Store下载动辄几百M大小的应用,直接用几十M的Web App取代即可。大量内容商们也可以从原生App的开发和维护中解脱出来,做一个PWA就搞定,还不用通过App Store磨人的上架审核。这种形式同时也很适合商家、企业对内对外的一些移动服务管理。

iOS端PWA才刚刚起步,目前体验起来只能说相当原始,前面讲了,除了少数API调用以外,它就跟加了个收藏夹那么弱鸡,不能保持后台,每次退出都要重新打开,另外它还有很多暂时实现不了的功能(但是别的平台比如Android端大部分都实现了)。

iOS平台PWA暂时实现不了的功能有:

  1. Web App可以存储脱机数据,但是文件大小上限为50 Mb。

  2. 目前还未开放功能:蓝牙、序列号、Beacon信标、Touch ID、Face ID、ARKit、高度计、电池信息等等。

  3. 如果用户长时间内没有使用某个Web App,iOS自动对其进行清空。应用图标依然会显示在主屏上,但是需要重新下载数据。

  4. 无法访问私有信息(联系人、后台定位),也无法访问原生社交应用。

  5. 不能进行应用内付款。

  6. 在iPad上,无法与其他应用使用侧拉或分屏显示,始终占据整个屏幕。

  7. 无推送通知,无图标标记,无法与Siri集成。

苹果对PWA的态度也还很微妙,支持是支持了,给予的权限和接口都非常少,随着PWA本身越来越被看重,包括苹果也已经在致力着桌面端和移动端相统合,而PWA可以说是其中的一个关键,相信他们会展现更开放的态度。至少现在,我们已经可以在Android、Windows、iOS几大系统上认识和使用PWA了,这个“超级小程序”今后前景可能比我们现在想象的更加宽广。

Web体验突破之年

早在10年前,苹果就已经在寻找一种基于浏览器上开发应用的方法,那个时候,App Store都还没有被设计出来。苹果前CEO史蒂夫·乔布斯2007年WWDC上提出了为初代iPhone开发应用的概念,当时所公布的,就是Web App——可以从主屏直接启动的Web应用。

可惜当时这个理念没有引发太大关注,反而是后来原生SDK的App应用蓬勃发展起来,互联网公司更愿意投入人力在原生App的开发上,而忽略了Web。因此对原生App大量的需求出现,占据了移动时代的主流地位,Web似乎就要被App所取代。

然而Web一直没有放弃努力,早在2014年,W3C公布就公布过Service Worker的相关草案,其生产环境在2015年被Chrome支持,随后PWA得到了完善。

自2015年以来,PWA相关的技术不断升级优化,在用户体验和用户留存两方面都提供了非常好的解决方案。PWA可以将Web和App各自的优势融合在一起:渐进式、可响应、可离线、实现类似App的交互、即时更新、安全、可以被搜索引擎检索、可推送、可安装、可链接。

对于原生App来说最大的痛点是由于其天生封闭的基因,内容无法被索引,相对于原生App的封闭,PWA却是完全开放的——PWA现有的所有技术都是遵循W3C的标准,完全开放,因此能够快速被站点接受、被浏览器快速支持。

而随着移动互联网的发展,用户下载App的热情也逐渐减弱,积极探索新App已经成为过去式了,80%的用户的80%的时间被少量超级App占据,原生App的分发成本将越来越高。可以说原生App的发展肯定会遭遇瓶颈,并且这几年正在接近这个瓶颈,Web看到了自己的机遇,PWA以及支撑PWA的一系列关键技术应运而生。

除了苹果Safari是阵营新丁之外,各家浏览器厂商从2017年开始大力支持PWA,主流浏览器基本上PWA已经支持得很好了,不如说浏览器厂商们唯恐自己没跟上标准而被淘汰。全世界很多大站点也已经跟上步伐,纷纷支持PWA。

到眼下的2018年,全球顶级浏览器厂商,Google、Microsoft、Apple已经全数宣布支持PWA技术,这预示着,移动端App将会迎来全新的Web时代,以后对PWA的需求还会大量增加。

当然,PWA不会杀死原生App,这个问题我们之前和大家讨论微信小程序的时候就已经谈过,PWA会前所未有地扩展App的外延,也不可避免的改变现有的App理念,打破独立封闭原生的界限,让更多来自外围的“App们”(包括PWA,也包括小程序)同台竞技,让用户在桌面端和移动端上体验到更少割裂感,更强的关联性,更强大的搜索和牵引,更快速地获取到一切你所想要的,这才像真正的未来App。

有希望的土地才百花盛开

前面我们拿了“小程序”来作对比,又说了PWA的前景,其实微信小程序(还有支付宝小程序等)就是PWA技术应用的一个范例。只不过广义标准的PWA支持更大平台——Web,而小程序们更依托于它们各自的平台。

从微信小程序发展了一年多然而并没有凉,我们就可以看出小程序背后的需求能力,当然也可以说是对PWA的需求。根据腾讯提供的数据,小程序连接着10亿用户与200多个类目的商家,目前已经拥有1.7亿日活用户、上线58万个小程序、吸引了超过100万个开发者、2300个第三方开发平台加入。

2018年,微信小程序还将有一个野心勃勃的计划:将支持各个App直接打开小程序。

你没有听错,简单来说,在不久以后,所有的App里面都可以看到小程序的身影。这是一个大设计,将把微信打造成全面串联移动端应用的一个港口,同时又让各个App之间,有了一道便捷的传送门。这个门不再是诸如App Store和Google Play这样的应用商店,而是通过小程序,无限远和无限多地跳转。

比如,用户在使用旅行攻略App,会需要订机票、酒店、打车等服务,有时候一个App可能不能全包括,按照现在的技术就要重新下载一个App来查看其他项目。但如果以后App可以打开小程序,那么不需要退出也不需要去应用商店找,小程序就能帮你解决。

这无疑是一种生态上的破壁,也应该是App的历史演变结果,我们将见证这一过程。