开篇导语:
渐进式网络应用程序(Progressive Web Application,以下简称为 PWA)是一种由普通网页或网站架构起来的网络应用程序,但能以传统桌面应用程序或是原生移动应用程序的形式展示给用户。PWA相对于普通网页应用的主要改进在于对交互体验和性能的提升,以期尽量模拟原生应用质量[1]。PWA能够一定程度上达到无处不在、功能丰富,且尽可能接近原生应用的用户体验。它不严格依附于原生软件生态,可以通过Runtime或浏览器实现跨平台的交互体验;它静默安装,用户随用随走、按需而取、按用付费;它实时更新,在网络环境允许的情况下,会默认提供最新版本以保障用户获得更好体验[7]。在普适计算时代,PWA对于跨设备、跨平台为用户提供连续、一致的交互体验具有天然的优势,是下一代交互应用的重要支撑技术之一。
渐进式网络应用(Progressive Web Application)
作者:贾朝晖(联想集团),陆远(鼎道智联),张印帅(鼎道智联),易鑫(清华大学)
InfoBox:
中文名:渐进式网络应用
外文名:Progressive Web Application
学科:人机交互
关键词:浏览器技术,Web技术,普适计算
实质:网络应用技术接口
背景:
随着普适计算的发展,人们可以随时随地获得需要的信息和服务。在这样的场景下,超越单一设备屏幕范围的界面或应用,将能为人类和数字内容的交互提供新的方式。其中,得益于其跨设备和操作系统的普遍性、以用户为中心的安全模型、统一化的云服务体系等特征,Web成为了一个独特的软件开发平台。然而,由于Web应用在软件生态的大发展时期缺乏很多能力,因此绝大多数的用户选择了特定于平台的本地原生应用程序(APPs)。它们丰富而可靠,并可在网络连接缺失时保持工作。同时,用户可以通过本地应用,实现对当前设备所具有的输入输出接口(如USB、蓝牙、文件),甚至是在同一网络环境下连接的其他设备上的输入输出接口的控制和使用。但是,本地原生应用程序在面临跨设备、跨平台应用场景时往往需要开发者进行复杂而繁琐的开发和适配工作,同时也很难保证对于用户提供一致、连续的交互体验,因而无法满足普适计算时代的交互需求。
PWA结合了Web应用与本地原生应用两者的优势,一方面充分利用Web技术在跨平台、统一云服务等方面的体验优势,另一方面,又能保证它具备和原声应用相当的软件能力。形成功能强大、易用、安装简便的独特使用体验的应用生态。从而,让用户摆脱应用下载、安装、卸载、升级等庞杂的管理系统交互,实现按需而取,随用随走的软件服务模式。此外,由于PWA的云原生优势,用户的个人偏好、使用数据等信息,都会随着账号而非设备迁移,从而可以实现跨设备、跨系统体验的高度一致性。
研究概况:
2015年,Chrome 开发人员 Alex Russel 和设计师 Frances Berriman 在Progressive Web Apps: Escaping Tabs Without Losing Our Soul 中
,首次提出了PWA这个概念,并期望这项技术能够跨设备和上下文构建更好的体验。此后,谷歌陆续提出了多项工具来支持PWA的使用,例如,以用户为中心的性能模型(RAIL),用来帮助开发者审核PWA生命周期中的体验是否能够达到用户预期[2]。以及用来检测和定义网络质量信号对用户体验影响的Web Vitals计划。Web Vitals将PWA的用户体验质量定义成,首次输入延迟(FID)等指标,进行数据化管理[3],目前谷歌主要的开发者工具都支持了对Web Vitals中指标的测量[4]。
2017年,新浪微博在谷歌开发者大会上介绍了其正在打造的PWA版本微博应用,同年,UC浏览器发布了全新U4内核,完整支持PWA技术,拉开了国内PWA生态的序幕。
2018年,Giulia de Andrade Cardieri从用户体验的角度对比了移动应用,原生Web应用和PWA。研究发现,即使PWA可能存在交互问题,参与者从体验上依旧表现出了正向的结果,这极大增强了开发者对使用PWA技术去开发跨平台体验应用的信心[5]。同年,Abhi Gambhir从性能上将PWA与原生应用进行了比较,并发掘了其在缓存、存储空间等方面的优势。这说明,在体验和性能两方面,PWA已经接近且即将超越原生应用。Andreas Biørn-Hansen在文中表示,PWA也具有丰富的研究价值,他认为在不使用跨平台框架的情况下,PWA有很大潜力成为网络原生应用开发的统一解决方案[6]。PWA逐渐逼近原生应用的趋势,在业界已经得到了充分验证,目前主流操作系统厂商的浏览器(Chrome、Edge、Safari),均可以支持PWA的使用,安装、卸载。
在技术成熟度与体验质量得到了一定程度上的验证后,国外的研究领域开始把注意力放在PWA技术的行业应用研究,2018年,Mhaske讨论了PWA在教育领域的应用[8];2019年Nurwanto Nurwanto在电子商务网站上实现了PWA,使用户可以直接在手机屏幕上点击其图标来运行[9];2020年Dat Huynh开发了一个针对“建筑数字孪生”的PWA,将有价值的建筑性能数据集可视化、交互化,并在业主和建筑系统之间提供了一个及时的沟通渠道[10]。
近年来,国内的腾讯、阿里、字节等互联网服务厂商也都先后发布了PWA版本应用。国内设备厂商中,联想集团于2020年成立了子公司鼎道智联,将在其自主研发的操作系统中全面支持PWA,并构建自有生态。尝试在PWA的基础上,增强了硬件的协同能力的。并将其定名为即渐进式协同计算架构(Progressive Collaborative Computing Architecture),缩写为PCCA。2021年英特尔与鼎道智联共同举办了中国首个“PWA开发者日”,英特尔、联想、阿里巴巴、腾讯、谷歌等公司分别就各自在PWA领域的应用实例进行了分享。形成一个国内PWA开发者最新研究进展和成果展示的平台。
但是PWA生态在国内的产业化依旧存在诸多有待解决的问题,例如在软件服务的分发平台与支付方面,PWA生态尚且无法真正替代应用商店。而一些国内软硬件尝试,基于其在流量与商业化方面的经验,也提出了与PWA类似的网页应用技术标准,其中最著名的就是2016年微信发布的小程序,以及2018年由华为、小米、联想等9家手机厂商共同举办发布的“快应用”标准[11]。
PWA本质上是一种网络应用程序,但是依靠渐进式增强,为现代浏览器赋予了更广泛的能力。使用Service Worker和网络应用程序清单 (manifest),使网络应用程序变得可靠且可安装。在万物互联的今天,不同设备间的系统隔阂、不同应用间的数据隔阂等,极大阻碍了用户的跨设备交互体验。而PWA利用了一组最佳实践和现代web API,结合在“Android、iOS、桌面应用程序”中深受用户喜爱的所有友好功能,为基于云原生的Web应用,开创了丰富的想象空间,打下了坚实的技术基础。但PWA要从单纯的技术转变为生态,还要解决软件服务的分发、支付等问题。未来,PWA或小程序、快应用等基于网页的应用软件生态将通过服务定义软件的形式,为用户提供按需而取,按用付费,随用随走的智能服务使用体验,进一步支撑满足普适计算时代的用户交互需求。
参考文献
[1] Richard S, LePage P. What are progressive web apps[J]. Retrieved February, 2020, 2: 2021.
[2] Measure performance with the RAIL model[J]. Last modified Jun, 2020, 10.
[3] Walton P. Web Vitals[J]. Web. de. Last modified April, 2020, 30.
[4] Core Web Vitals workflows with Google tools[J]. Updated Jan 18, 2022.
[5] de Andrade Cardieri G, Zaina L M. Analyzing user experience in mobile web, native and progressive web applications: a user and HCI specialist perspectives[C]//Proceedings of the 17th Brazilian Symposium on Human Factors in Computing Systems. 2018: 1-11.
[6] Biørn-Hansen A, Majchrzak T A, Grønli T M. Progressive web apps: The possible web-native unifier for mobile development[C]//International Conference on Web Information Systems and Technologies. SciTePress, 2017, 2: 344-351.
[7] Analysis of Cache in Service Worker and Performance Scoring of Progressive Web Application Gambhir A, Raj G. Analysis of cache in service worker and performance scoring of progressive web application[C]//2018 International Conference on Advances in Computing and Communication Engineering (ICACCE). IEEE, 2018: 294-299.
[8] Mhaske A, Bhattad A, Khamkar P, et al. Progressive Web App for Educational System[J]. International Research Journal of Engineering and Technology (IRJET), 2018, 5(1).
[9] Nurwanto N. Penerapan progressive web application (PWA) pada e-commerce[J]. Techno. Com, 2019, 18(3): 227-235.
[10] Huynh D, Nguyen-Ky S. Engaging Building Automation Data Visualisation Using Building Information Modelling and Progressive Web Application[J]. Open Engineering, 2020, 10(1): 434-442.
[11] 手机厂商联手推出"快应用"对抗"小程序"有无胜算?[J]. 计算机应用文摘, 2018(7):1.
研究领域:桌面研发、消费电子产品、个人电脑产品
jiazh@lenovo.com
研究领域:Web 技术,浏览器技术,PWA,基于 web 的操作系统生态设计
luyuan@dingdao.com
研究领域:人机交互设计,HMI,智能终端操作系统交互设计
zhangys@dingdao.com
研究领域:应用安全、人机交互、普适计算
yixin@tsinghua.edu.cn
计算机术语审定委员会(Committee on Terminology)主要职能为收集、翻译、释义、审定和推荐计算机新词,并在CCF平台上宣传推广。这对厘清学科体系,开展科学研究,并将科学和知识在全社会广泛传播,都具有十分重要的意义。
术语众包平台CCFpedia的建设和持续优化,可以有效推进中国计算机术语的收集、审定、规范和传播工作,同时又能起到各领域规范化标准定制的推广作用。
新版的CCFpedia计算机术语平台(http://term.ccf.org.cn)将术语的编辑运营与浏览使用进行了整合,摒弃老版中跨平台操作的繁琐步骤,在界面可观性上进行了升级,让用户能够简单方便地查阅术语信息。同时,新版平台中引入知识图谱的方式对所有术语数据进行组织,通过图谱多层关联的形式升级了术语浏览的应用形态。
主任:
刘挺(哈尔滨工业大学)
副主任:
王昊奋(同济大学)
李国良(清华大学)
主任助理:
李一斌(上海海乂知信息科技有限公司)
执行委员:
丁军(上海海乂知信息科技有限公司)
林俊宇(中国科学院信息工程研究所)
兰艳艳(清华大学)
张伟男(哈尔滨工业大学)