渐进式web应用: 或是web与原生移动开发的统一者外文翻译资料

 2022-12-19 06:12

英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料


渐进式web应用: 或是web与原生移动开发的统一者

Andreas Bioslash;rn-Hansen1, Tim A. Majchrzak2 and Tor-Morten Groslash;nli1

1Faculty of Technology, Westerdals Oslo ACT, Christian Krohgs gate 32, 0186, Oslo, Norway

关键词:

渐进式web应用,Service Workers,跨平台,跨平台开发,移动web。

摘要:

随着近来移动web技术的发展,它可以使用一些曾经只属于原生应用的特性。因此,面对多个平台,我们可以分别进行艰巨的开发,或者使用跨平台的开发手段。对于任何符合特定条件的网站,可以使用新奇的渐进式web应用,来应用一系列的概念与技术。这篇论文主张,渐进式web应用有可能成为统一web应用与原生应用的技术。我们首先介绍其特性,再细看它的性能。为了起到对照的作用,我们开发了两个跨平台应用和一个渐进式web应用。你可以在一个开源的仓库获取它们,来验证结果的有效性。我们的目标是激发学术界的兴趣,因为缺乏学术参与的讨论与单纯的文献检索无异。

2ERCIS, University of Agder, Gimlemoen 25, 4630, Kristiansand, Norway

介绍

在传统的移动应用开发中,原生应用、web应用与移动平台的代码复用性天生就是不存在的。因为原生应用的代码库不可互通,也就导致在需要支持多移动平台或操作系统时,要有多个项目,建立多个开发环境(Heitko ̈tter et al., 2013; Perchat et al., 2013; Majchrzak and Heitko ̈tter, 2014)。

对于没有资源或精力雇佣各移动平台开发者的公司,跨平台开发已经成为了一种受欢迎的选择(Malavolta et al., 2015b)。它不仅能减少开发成本,还能让应用更快面向市场(Rahul and Tolety, 2012)。尽管在学术与工程领域,它的应用与声誉各不相同(Puvvala et al., 2016; Mercado et al., 2016),将一份代码库应用在多平台上的想法,因为各种理由,看起来非常有吸引力。包括但不局限于:预算、人力资源与现有的知识领域(Corral et al., 2012)。

跨平台开发的手段有许多种(Heitkuml;otter et al., 2012; Rieger and Majchrzak, 2016)。此外,大量支持这种开发的技术框架要么在开源许可下免费提供,要么作为付费专有产品提供。以一些流行的框架为例:Ionic框架,PhoneGap,React Native,Xamarin(cf. Majchrzak et al. (2017))。巧合的是,这几种框架也正好代表了三种独特的方法(Majchrzak et al., 2017)。

Ionic框架和PhoneGap都属于将web与Cordova混合使用的技术,其用户交互界面的结构与样式都使用了HTML与CSS在内的web技术。React Native则属于利用解释器的技术,它并不依赖于web视窗,而是使用设备提供的Javascript解释器与原生桥梁,最终得到原生交互组件,而不是基于web的HTML组件。基于Xamarin的技术一般指利用cross-compilation,它会将C#编译为其对应支持平台的原生二进制文件,最终得到不依赖解释器或webview的原生应用(Latif et al., 2016)。这种手段也可被称为真正的原生(cf. also Heitkuml;otter et al. (2013))。

直到最近,就与本地或跨平台应用竞争的能力方面,web平台的创新仍落后于移动平台(Puderet al., 2014)。为此,Google Web Fundamentals组织倡导一套新标准,试图通过向web引入离线支持、后台同步和主屏幕安装等功能来弥补这一差距。这种方法目前被称作渐进式web应用(Progressive Web Apps,PWA),这个术语于2015年由Russel与Berriman在一篇介绍其最初设计理念的博客中被提出。PWA由一系列的观念和关键词定义,包括渐进式、响应式、独立连通性、类app、全新的、安全的、可发现的、可返还的、可安装的、可链接的(Osmani, 2015)。这些都是PWA为统一移动体验所做的贡献,即在没有应用程序市场的情况下安装和分发Web应用程序,在离线的情况下工作,接收推送通知并看起来像常规应用程序。之所以能做到这点,要归功于Service Worker API,它让开发者可以使用后台执行脚本作为网络与设备代理。

虽然行业对渐进式应用展现出了投入的意愿与兴趣,但我们认为该领域学术研究的缺乏是需要理论研究的一部分。因此,在本文6.2节会进一步讨论其充足的研究潜力。本文旨在介绍渐进式Web应用背后的概念和技术。此外本文还试图展现其特性并提供与其他技术的比较。通过这些步骤,应该可以帮助各位解答并细细体会上文提到的一堆关于PWA的词汇。Hybried、解释与PWA这几种技术途径打造了目前三种形式的移动应用程序,而本文也会提供它们在启动速度,应用程序大小,渲染速度上的对比。

这篇论文的结构如下:第2节介绍我们的调研方法,第3节整理PWA的相关研究,第4节整理我们使用PWA的结果,第5节讨论我们的发现,最后在第6节做出总结并指出未来的工作方向。

调研方法

文献检索

在2017年1月,对渐进式web应用的学术参与进行初步搜索,返回的结果有限。谷歌学术上搜索Progressive Web Apps只返回了两个结果:一份为名为Mobile!的会议准备的演讲稿和一份关于web应用启动时间的IEEE论文。

使用相同的搜索关键词,Taylor amp; Francis在线文献数据库返回了零个结果,在ScienceDirect搜索也是如此。ACM数字图书馆返回了上文提到的演讲稿,IEEE Xplore返回了上文提到的与PWA关系不大的论文(Gudla et al., 2016)。

ResearchGate是一个搜索结果包含发布与提问的站点,但是也没有返回相关结果。因此,截至2017年1月,关于PWA的学术贡献几乎是不存在,不可见,通过搜索引擎无法发现的。

同样未知的研究基础还有Service Workers。在上述提到的数据库中搜索Service Workers,返回的结果不局限于计算机科学,也包含儿童护理与公共部门的词条。使用其他的组合词汇搜索,比如{Service Workers, web, API},可以一定程度上筛选结果,但还是被无关结果污染。

设计与实施

为了对PWA的可能性有更好地理解,我们分别使用了三种技术开发了应用程序用于比较。hybrid应用使用了Ionic框架开发。解释型应用使用了React Native开发。最后,渐进式web应用使用了React.js开发。考虑到我们的主要目的是介绍PWA的概念与技术,并进行高阶的比较,这次的研究排除了跨平台的技术方案。

该应用程序采用主视图-详情导航模式,主视图显示从API获取的可点击项目列表。单击列表项后,将导航到详细视图,显示该列表项的图像、作者和标题。数据源从www.reddit.con/r/Art/.json获取。

为了方便验证结果,三个应用程序都已开源。图1图2图3(见第3节)展示了三个应用程序。

图 1 基于Ionic框架的hybrid应用

图 2 基于React Native的混合应用

图 3 PWA应用

性能测试

性能测试包含了三个指标。测试是在一台运行安卓7.0的Nexus 5x手机上进行的。目的是收集初始数据,以反映第2.2小节讨论的各程序实现方式之间性能差异。

应用程序安装体积,在安卓设备按照如下路径可以获得程序的体积:设置-应用程序-[程序名称]。

启动时间,可以通过Android Debug Bridge的am_activity_launch_time命令衡量。它将记录应用第一个活动启动所花的时间。考虑到每次渲染所花时间不同,每个应用将进行十次测试,结果将是其平均值。

从点击应用图标到工具栏渲染所花时间,由于没有合适的方法测量这个时间,我们使用了在线秒表。这个标题为“Art by Reddit”的工具栏,如图1-3,在我们的应用中是第一个渲染的元素,因此我们将其作为渲染时间的标准。由于衡量依赖于人的反应速度,不可避免的容易出错,每个应用都会进行十次测试,结果将取其平均值。

相关的研究

从文献检索中可以明显看出,对于PWA的研究学术参与不足,但是一个以行业为导向的知识体系已经确立。而Google Web Fundamentals小组正在努力推动创建、发布教程与博客文章。在坚实的学术知识库建立起来之前,专注于web基础领域的站点应当为接来下的研究垒实地基。除了谷歌创建的内容,两本早期的书(Ater, 2017; Hume, 2017)和一大堆行业领域的文章被挖了出来。所涵盖的主题包括基本概念(Edwards,2016)、挑战和关注(Mahemoff,2016)以及对网络创新影响的思考(Rinaldi等人,2016)。在其他应用开发途径的讨论中,更大的学术基础开始显现。我们已经找到了许多讨论跨平台应用开发与底层方法的论文。有些论文在相关研究中经常出现,包括Heitkuml;otter等人(2012),Xanthopoulos和Xinogalos(2013),Dalmasso等人(2013)与Palmieri等人(2012)的论文。它们填补了理论基础与早期研究的空缺,新的论文将以其为参考。它们主题广泛,从技术框架的比较到实现途径,从技术分类到性能表现。

最近确定的研究包括但不限于跨平台工具需求(Gaouar等人,2016)、开发方法评估框架(Rieger和Majchrzak,2016)、性能占用比较(Ciman和Gaggi,2016)和跨平台应用的终端用户体验(Mercado等人,2016;Malavolta等人, 2015)。他们的贡献应当被认可为将来PWA研究的重要基础。

由于学术贡献较为缺乏,敏锐的行业兴趣应当作为未来进一步研究与学术参与的催化剂。在第6节我们提出了研究建议,旨在激发相关研究团体的兴趣。

结果

特性比较

本节旨在通过比较一系列的特性与概念,来深入了解解释型应用、渐进式web应用、hybrid应用与原生应用之间的区别,并为终端用户提供技术框架、体验一致性等方面的见解。

表1提供了截至2017年1月,在PWA中可用的功能及其兼容性的非详尽列表。随后是相关备注。

表格1: 各技术途径的特性比较

特性

解释型

PWA

混合型

原生

可安装

支持

支持a

支持

支持

离线可用

支持

支持

支持

支持

安装前可测试

不支持

支持

不支持

不支持

可从应用市场获取

支持

支持b

支持

支持

消息推送

支持

支持c

支持

支持

跨平台可用

支持

支持部分d

支持

不支持

可调用硬件与平台的API

支持

支持部分e

支持f

支持者

后台同步

支持

支持

支持

支持

  1. Chrome Canary浏览器可以为安卓启用Enable improved add to Homescreen开发者选项,使得PWA应用可以像普通应用一样

    剩余内容已隐藏,支付完成后下载完整资料


    资料编号:[19704],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。