我们生活在以应用程序为中心的世界中。即使是那些首先宣传您的文档的产品和体验也大多停留在应用程序的边界。设计此类应用程序并不容易,尤其是当您想支持当今使用的所有不兼容平台时。已经并且继续有许多尝试跨越这些平台的尝试,但是一种解决方案似乎一次又一次地出现,一种解决方案利用了Web的力量,一种在所有平台上都可用的平台。渐进式Web应用程序(目前的名称)与最早的Java applet相比已经走了很长一段路,但仍远未成为其支持者尝试做广告的一站式解决方案。
Web应用程序自出现以来就已经存在,因为它不仅可以在网页上提供静态文本和多媒体,还可以提供更多功能。有些人可能会立即想到并屈服于古老的Java applet,但即使是电子邮件客户端和在线商店也可以用作Web应用程序,尤其是在如今。由于HTML,CSS尤其是Javascript的结合,已经可以提供一种交互式应用程序体验,该体验甚至不需要用户安装他们可能已经安装的浏览器以外的任何东西。
渐进式Web应用程序或PWA是此概念的最新发展,其区别因素是它们如何模仿各自操作系统上的本机应用程序。常规的Web应用程序通常甚至不会试图掩盖它们是高级网页和美化网页,但是良好的PWA应该会让您在Windows,Android甚至Linux上感觉像在家一样。这具有很多优点,但是现在考虑将其完成可能为时过早。
渐进优势
无论您使用的是哪种设备或操作系统,Web应用程序都试图提供一种单一的服务和体验,无论屏幕大小和网页设计如何,都会受到限制。渐进式Web应用程序实际上是通过将Web应用程序与Web浏览器解耦而又仍依赖于相同的基于Web的技术和概念,从而将其提升到一个新的水平。使用正确的工具和框架,可以使这些PWA看起来像在每个支持的平台上的本机应用程序。
PWA的主要优点之一(或至少是理想选择)是支持应用程序的离线使用。考虑到许多此类应用程序的依赖于Internet的特性,这听起来几乎是矛盾的,但是服务工作者和缓存使即使与网格断开连接也可以向用户提供某些功能。
由于Google和Microsoft标签小组的支持,PWA最近也增长了很多。鉴于这两家公司要成功并蓬勃发展需要PWA多少,这并不令人感到意外。他们一直在添加一些功能,这些功能赋予了PWA与其本机对应功能相同的功能,例如最近使用的应用程序图标快捷方式。这将使开发人员不必决定选择哪个平台,而只需编写涵盖所有内容的PWA,就可以按照两家公司的意愿在Microsoft Store和Google Play Store上发布它们。
严重限制
PWA使用Web技术并仅针对单个平台的几乎不可思议的能力掩盖了该平台也不是完全跨平台的事实。实际上,您是在将自己与Web浏览器(或浏览器引擎)以及它可能具有的功能和限制联系在一起。例如,在具有其他浏览器框架的平台(例如iOS)上,可能不支持在Chrome中可以运行的功能。
然后,事实是这些浏览器和Web技术无法访问本机应用程序享受的所有硬件和平台功能。不久之前,浏览器无法使用指纹扫描仪或AR。PWA可以使用的功能列表肯定会增加,但这确实意味着当本机应用程序可以轻松访问它们时,必须等待这种情况发生。
离线支持并不像听起来那样可靠。诚然,对于本质上依赖Internet连接的本机应用程序来说,它是相同的。某些PWA可能允许用户继续使用设备上缓存的内容,然后在Internet连接再次可用时将更改同步到服务器。对于必须确保应用正确缓存和同步数据而不会破坏数据或引起冲突的开发人员来说,这可能会带来更多工作。