渐进式网络应用:跨平台开发的明确方法外文翻译资料

 2022-03-16 11:03

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


渐进式网络应用:跨平台开发的明确方法

抽象

虽然应用程序的开发实践已经成熟,但跨平台开发仍然是一个突出的话题。通常,应用应始终支持Android和iOS设备。他们应该在各种硬件上顺利运行,并与大量平台版本兼容。此外,智能手机和平板电脑以外的设备类别已经出现,这使得多平台支持更加棘手。真正开发一个应用程序并为众多可能的目标服务仍然是一个问题,尽管跨平台框架得到了实践和研究的认可。技术统一体仍有待发现,但渐进式Web应用程序(PWA)可能是朝着它迈出的一步。在本文中,我们分析了跨平台开发中PWA的基础,并仔细研究了当前可能性的现状。根据我们的观察,我们调查统一开发,并讨论未解决的问题。我们试图激发兴趣并缩小自业界开始接受PWA以来产生的巨大差距。

1.介绍

自推出第一款iPhone [1]以来已经过去了10年。 在这个时候,开发方法已经成熟(参见[2],[3],[4],[5],[6])。 同时,开发移动应用程序的基本要求可以说是同时变得越来越简单和复杂。 一方面,具有相关市场份额的平台数量已经缩小[7],强大的跨平台开发框架已经出现[8],并且在许多其他方面取得了进展。 另一方面,设备碎片仍然是一个问题[8],[9],应用程序需要支持诸如可穿戴设备等新颖设备类别[8],并且技术进步仍然很快。 统一开发技术尚未确定[11]。跨平台应用程序开发框架的出现使得为多平台创建应用程序变得更加容易。尽管学习的努力减少了,通常成本降低了,而且加快了上市时间[12],[13]

原生应用程序,跨平台生成的应用程序和Web应用程序之间的选择可能仍然很棘手[16],[8]。尽管跨平台开发框架应该如何工作已经做了许多不同的尝试,但没有任何技术被认为是绝对优越的。不出所料,尽管PhoneGap [17](以前也称为Apache Cordova [18])在工业中普遍存在,但仍然出现了新的框架[3]。

渐进式Web应用程序(PWA)是一种新颖的开发方式,它们承诺将Web技术的开发简便性与本地应用程序的多功能性结合起来[11]。这可以在没有(深刻的)性能损失的情况下实现[19],但应用程序规模急剧下降[20],[21]。由于其新颖性,科​​学覆盖率低[11]。而且,到目前为止,PWA主要是在Android领域进行评估[21],[11]。有了这篇研究报告,我们着手缩小科学评估和行业采用之间的差距1。特别是,我们试图了解PWA是否可以成为跨平台应用开发的统一技术,或者实际上是一种克服跨平台开发特性的多平台方法。

本文做出了几点贡献。首先,我们全面评估开发多平台应用程序的竞争概念。其次,我们仔细研究PWA作为克服现有跨平台开发方法缺陷的可能技术。第三,我们提供经验教训并为研究议程提出未决问题。

其余的结构如下。在第2节中,我们通过阐述Web应用程序和本地应用程序,跨平台开发和PWA来介绍我们的工作背景。然后我们讨论一下统一发展的含义

第3节在第4节中,我们讨论我们的发现。第5部分给出了结论并命名我们的下一步。

2.背景

1.请注意,我们引用了几项非科学作品,甚至包括视频。这是为了保持最新的发展。我们当然仔细审视这些作品。事实上,文献情况是第4节中几个未解决问题的部分原因;具体请参阅第4页第4.2节。 7。线路方法。然后我们全面地描述跨平台应用程序开发和PWA,每个调查基础,特征和当前文献。

2.1基准:本地开发和Web应用程序

开发应用程序的自然选择是本地软件开发套件(SDK)。它通常由移动平台的供应商提供[22],[23,p。 225]。 SDK提供了针对平台定制的开发体验[24]:通常只有很少的编程语言可用。在iOS的情况下,可以利用Objective-C和Swift [23]。在Android上,最近增加的Javasuperset语言Kotlin受到了Java开发者社区的欢迎[25]。如果开发Windows平台,即所谓的通用Windows平台应用程序,则可以使用多种语言,包括C ,C#,Visual Basic和JavaScript [26]。设备功能可以通过平台自己的应用程序编程接口(API)[27]访问。图形用户界面(GUI)由本地界面元素组成[15]。原生的外观和感觉和短的反应时间是直接的后果。应用程序出现并可以分别与移动操作系统本身的特定于平台的应用程序进行交互;至少对于精心设计的应用程序来说性能很高[28]。很明显,当平台最近发布时,本地开发是应用程序开发的起点。虽然引入移动平台的功能很快会在所有当代平台中发现,如果它们被认为是有益的,平台仍然不兼容[15,29]。不相容性有深刻的根源。不仅GUI看起来不同(当它遵循设计准则[30],[31]),但整个开发经验是分歧的。通常,这些API的设计并不相似,编程语言强加了一定的风格,并且平台的生态系统包括工具和范例也不同[15]。由于所有这些都使得开发来自多个平台的本地应用程序的相同软件非常昂贵[32] [33],跨平台开发框架已经变得流行[34],[24]。人类面临的同样的困难也会造成这样一个框架综合体,这将在下一节中详细阐述。Webapp本身是一个相当不明确的术语。我们没有意识到一致的定义。通常,通过Web提供的许多应用程序都遵循客户端服务器模型,这些应用程序被视为Web应用程序;此类应用程序在智能手机出现之前就已存在。在移动计算文献中,Webapp通常表示一个移动Web应用程序。在本文中,我们仅从移动设备应用程序的意义上考虑Webapps使用诸如HTML,CSS和JavaScript之类的Web技术构建。第一个Web应用程序仅仅使用了平台的内置浏览器。他们缺乏功能,例如被放置在智能手机应用程序列表中,并使用应用程序商店分发[35]。而且,他们没有或很少访问设备特定的功能[36],[27]并依赖于通用的Web外观。虽然Webapps仍然是用相同的基本Web技术开发的,但实际的编程通过各种各样的框架来丰富[37,3]。此外,可能性和性能已得到改善。由于他们依赖于浏览器,Webapps在所有运行足够功能浏览器的平台上兼容[38]。但是,由于浏览器在W3C HTML和JavaScript规范的实施和合规性方面有所不同,因此Webapp在所有浏览器中并不像所期望的那样固有功能[39]。另外,在大多数现代浏览器中禁用JavaScript是可能的;因此,有效地禁用逻辑层以及现代Web应用程序的用户界面层通常导致应用程序呈现空白页面。在跨平台应用程序开发流行之前,开发人员面临在本地应用程序和Web应用程序之间进行选择的问题[15]。决策建议对于“极端”情况保持不变,但是转向“平均”应用(参见例如[8])。靠近硬件的高性能应用需要本地开发[40]。简单来说,基于表单的应用程序可以快速开发为Webapps [15],[29]。使用HTML5和现代JavaScript,已经实现了更好的性能,并且有更广泛的设备功能可用[39]。框架 - 特别是用于GUI和JavaScript--提供许多附加特征,例如,模拟原生外观和感觉的Web应用程序[3]。因此,Webapps很受欢迎[34],[29],[24]。一方的本地开发和另一方的Webapps仍然是任何参赛者的基准(参见[40])。 不仅在跨平台开发框架方面,而且在任何其他开发技术方面都是如此,即使它不是专门针对多平台开发的。 因此,可能性,衍生物,在讨论统一开发时,本地应用程序和通用Web应用程序的质量需要加权。

2.2跨平台应用程序开发

跨平台的应用程序开发方法并不是一个新的出现;然而,随着时间的推移,技术可能性已经改变在描述跨平台开发的特点之前,我们将首先介绍这个概念。最终,我们强调相关文献。

2.2.1 介绍

智能手机的迅速普及(以及一些抵消的平板电脑)已经是一个历史性事实。这也意味着,特别是在2010年以前的最初几年,许多不同的平台竞争。虽然现在只剩下两个主要平台[41],但一次为多个平台开发应用程序是经济必需。为了覆盖尽可能多的用户,需要支持所有平台在开发时具有足够高的用户群(分别为预期部署时间的预测用户群)。开发本地应用程序意味着开发这些应用程序的努力与支持平台的数量几乎呈线性关系[16]。除了一些组织活动和需求工程的平台独立部分之外,每个平台都需要所有其他软件开发活动。更糟糕的是,必须为每个目标平台雇用熟练的开发人员,否则可能会出现质量问题。尽管HTML5并不是新的,但在早期的智能手机时代,Webapps的表现并不像现在这样。特别是,网页的外观和感觉,而不是应用程序的外观和性能差,这是不能将Webapps作为多平台支持的简单选项的原因[42]。因此,寻求跨平台应用程序开发的可能性。尽管科学研究已经提出了令人信服的技术可能性,并且该行业已经广泛采用框架,但跨平台开发框架的发展至今仍然活跃。

2.2.2特点

所有跨平台应用程序开发框架都有一个共同的基本特征:代码只开发一次,而应用程序可以提供给多个平台。除此之外,框架在基本方法和范例以及范围上有很大不同。图1总结了基本范例的可能性。虽然这个描述的起源可追溯到2012年[43,p。 63],它仍然适用于其目的。事实上,只有PWA可能很快就需要延期;其原因将在本文后面讨论。显然,最初的选择是使用跨平台开发,或者不使用。从高层角度来看,这决定了跨平台应用程序开发时只留下原生开发。仔细观察时,

这些选项有点模糊。 PWA可能迄今尚未被视为跨平台开发方法,尽管它们的概念试图从一个代码库(固有地基于Web)支持多个平台。跨平台开发可以分为两种主要模式:运行时环境和生成方法。对于后者,最终目标是为每个支持的平台提供本机应用程序。如何从单一代码库生成本机应用程序可以进一步区分。模型驱动的方法(在图中称为MDSD:模型驱动的软件开发[45])依赖于生成应用程序的平台无关模型。通常情况下,他们会使用 - 通常是文本的,或者可能是图形领域特定的语言(DSL)来描述应用程序。传输器为一个平台编写代码(通常是本地代码),并将其转换为另一个平台的本地代码。不生成应用程序的方法依赖运行时环境。运行时环境不是直接在平台上运行代码,而是需要代码是本地平台的代码,而运行时环境则是桥接应用程序和平台之间的桥梁。有许多方法可以在技术上实现这种范式。 Webapps,我们已经将其命名为基准方法,只是在平台提供的Web浏览器中运行。混合应用程序通常依赖于Web技术,但提供本地打包。传统上,这是有益的,例如,关于访问设备特定的功能,但限制这些应用程序的外观和感觉,在大多数接近本机应用程序。最后,基于自包含运行时的应用程序类似于混合使用本地GUI元素。有关范例的方法和更多细节的例子,请参考[4],[44],[13]。

2.2.3文献覆盖率

有关跨平台应用程序开发的文献非常广泛。如果没有将跨平台考虑因素作为一个侧面话题的论文,有几个特别值得注意的论文类别。首先,论文提出了创建或改进特定框架的工作(例如[2],[46],[13])。通常,框架代表了跨平台开发的一种具体方法,或者试图将技术可能性推向一个特定的方向。其次,论文提出了一个特定的框架,通常以一种马赛克式的方式(例如[47],[48])。此类工作通常旨在探索框架的某些方面或评估其在预定义环境中的可行性。第三,论文将工作与几个框架结合起来,通常包括比较(例如[3],[14],[49]),侧重于提供建议(例如[50])或查看特殊性(例如[51])。这些作品可以帮助做出决策,并且还可以包含对理论的贡献,以便理解哪些方法擅长在哪些情况下。第四,有元研究,这是利用前两种论文。尤其值得注意的是提出分类和比较框架的研究。作为这样的一部分,已经进行了示例性比较。因此,第四类论文为大多数其他相关工作提供了途径。许多论文全面介绍了跨平台技术以及如何评估现有框架。 Heitkotteruml;等人最广泛引用的论文。已经从2013年[52]。作者提出了一个评估框架。他们还将其示例性地应用于几种开发方法,包括Webapps和本地应用程序作为基准。这个新想法的延伸已在2016年提出[8]。这项工作不仅提供了更广泛的评估标准目录,而且还尝试纳入加权评估,以满足诸如可穿戴设备等新型设备类别。一些作者已经开展了类似的工作[53,55,57,57,57]。所有这些文章都支持加深对跨平台应用程序开发的理解。

2.3渐进式Web应用程序

虽然PWA主要依赖现有的技术工件和概念,但PWA在概念上是新的。正如前面的小节,我们介绍这个想法,给出特征的细节,并总结相关文献。

2.3.1介绍

移动网络越来越能够访问和处理以前只能在本地和跨平台应用中使用的功能。随着渐进式Web应用程序(PWA)的推出,常规Web站点可以比之前的行为更大程度地感受和看起来像任何其他已安装的应用程序 - 到目前为止,特别是在基于Android的移动设备上[58]。这是通过一系列新的概念和要求实现的,谷歌提倡这些概念和要求是值得的实施努力[11]。简而言之,PWA是指执行某些特定技术功能的任何网站,本章将对此进行进一步调查。这样的网站可以在PWA支持的浏览器中添加到家庭网络中,用户设备的屏幕并离线使用。它看起来像一个普通的应用程序,尽管它是在一个精简的Chrome浏览器中运行的,该浏览器隐藏了它的所有接口文物。

2.3.2特点

有一些特征定义了PWA,并将它们与常规网站以及本地或跨平台的移动应用程序区分开来。常规Web站点和PWA之间的主要区别在于后者提供的附加功能和用户体验(UX)[58]。在常规网站要求用户打开浏览器的情况下,输入URL并等待每次访问时下载所有内容,从而有效防止脱机体验,PW

全文共13685字,剩余内容已隐藏,支付完成后下载完整资料


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

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

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