渐进式 Web 应用程序(PWA)是一种旨在充当本机应用程序的 Web 应用程序。它们在浏览器中运行,因此无需安装,而且可在多个平台上使用。这种组合使 PWA 既能方便开发人员发布应用程序,又能方便用户使用。它们在移动应用程序中尤其受欢迎。
乍一看,WebRTC PWA 听起来不错,对吗?您可以利用 WebRTC 提供的功能,再加上 PWA 开发的便利性,从而构建完美的实时通信应用程序。
虽然情况确实如此,但您需要考虑一些问题。在本篇文章中,我们将探讨以 PWA 方式构建 WebRTC 移动应用与以原生应用方式构建 WebRTC 移动应用的利弊。
将 WebRTC 应用程序构建为 PWA 的优势
让我们先来看看将 WebRTC 应用程序构建为 PWA 的优势。
跨平台兼容性
PWA 是Web应用程序。换句话说,只要有兼容的浏览器,应用程序就可以在任何地方使用。这意味着它们几乎可以在任何地方运行。在技术方面,这也意味着您只需构建一次应用程序,而无需为每个平台创建多个版本。
易于安装和更新
PWA 在浏览器中运行,因此无需在设备中安装任何东西。唯一的要求就是导航到应用程序 URL。大多数操作系统供应商都提供创建快捷方式的功能,使用户更容易打开应用程序,这与原生应用程序的工作方式类似。
同样,PWA 也更容易更新。至少从用户的角度来看是这样,因为他们不需要不断下载更新。
从开发的角度来看,这意味着您不需要为多个平台构建二进制文件。您也不需要向每个设备的商店发布二进制文件及其更新。相反,您只需在应用服务器中安装应用程序,并向其发送更新即可。
成本效益高
PWA 还具有成本效益。如前所述,您只需使用一个堆栈构建和维护一个应用程序,而无需使用不同技术构建和维护多个应用程序。这可以由一个开发团队来完成,他们的专业知识只围绕网络技术。
将 WebRTC 应用程序构建为 PWA 的缺点
这些好处可能已经说服了您。但在做出这个重要决定之前,让我们先看一下缺点。
对设备硬件和功能的访问受限
在浏览器无法访问设备的特定硬件或功能之前,PWA 都是有趣的游戏。例如,考虑一下浏览器无法很好处理的 CPU 密集型任务(后台运行或来电推送通知)。
在这些应用场景中,您的应用程序将受益于每个平台的 SDK 所提供的特定 API。
性能问题
PWA 在浏览器中运行。是的,我知道我们之前提到过这是一个优点!但是,这也意味着它们的运行效率取决于所运行的浏览器。此外,您还需要考虑运行浏览器的开销,这可能会导致更高的电池消耗。
原生应用程序的优势在于它是专门针对目标设备而构建的。因此,它的性能会比 PWA 更好。此外,它还不依赖于同时运行的任何其他软件(这里指的是浏览器)。
浏览器不一致和与供应商相关的错误
PWA 可以在浏览器中运行,因此几乎可以在任何设备上运行。但是,浏览器是由不同的供应商构建的,其中一些供应商在不同的操作系统中采用不同的方式。这些差异在过去几年中有所减少,但仍然存在,并可能导致您的应用程序在不同平台上表现不一致。
此外,一些供应商还为 PWA 添加了限制。例如,在撰写本篇文章时,iOS 不支持 PWA 的 “添加到主屏幕 “横幅,这使得用户更难在其设备上发现和安装这些应用。这会导致 PWA 在 iOS 设备上的采用率降低。
此外,还要注意其他与供应商相关的问题,如 iPhone 设备报告的问题,即 iOS 16 在通话期间将浏览器置于后台时引入了错误。
何时选择 PWA,何时选择原生移动应用程序?
既然您已经知道了优缺点,那么您就应该更清楚自己的应用程序需要什么。在做出任何决定之前,让我们来回顾一下在哪些情况下您可以选择其中一种而不是另一种(或者更好的办法是雇佣一个可以同时完成这两种工作的团队 )。
如果您的 WebRTC 应用程序需要… | 那么应该是…… | |
PWA | Native | |
访问特定硬件和功能 | ✅︎ | |
高性能、高效率 | ✅︎ | |
每个平台的行为一致 | ✅︎ | |
不同平台的单一代码兼容性 | ✅︎ | |
轻松安装和更新 | ✅︎ | |
具有成本效益的开发和维护 | ✅︎ | |
支持缺乏 PWA 功能的平台 | ✅︎ |
您会选择哪种方式?
PWA 是构建 WebRTC 应用程序的绝佳方式,几乎可以在任何地方运行。但是,当您需要访问浏览器无法提供的特定功能或确保您的应用程序尽可能高效地运行时,您最好选择Native方法,因为它将为您提供最好的工具套件。
总而言之,这最终取决于您的应用程序要求和手头的资源。
作者:Alberto Gonzalez
编译自:https://webrtc.ventures/2023/10/should-you-build-your-mobile-webrtc-application-as-a-progressive-web-application-pwa/
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/webrtc/36206.html