渐进式Web应用程序还有很长的路要走
我们生活在一个以应用为中心的世界。即使是那些首先宣传专注于您的文档的产品和体验,也大多停留在应用程序的边界上。制作此类应用程序并不容易,尤其是当您想要支持当今使用的所有不兼容平台时。在跨越这些平台方面已经并且将继续进行无数次尝试,但一种解决方案似乎一次又一次地出现,一种解决方案利用网络的力量,即所有平台上都可用的一个平台。Progressive Web Apps,正如当前的化身所称,与最早的 Java 小程序相比已经走了很长一段路,但离成为其支持者试图宣传的一体化解决方案还有很长的路要走。
WA 或 PWA
Web 应用程序已经存在,因为它可以做的不仅仅是在网页上提供静态文本和多媒体。有些人可能会立即想到并畏惧旧的 Java 小程序,但即使是电子邮件客户端和在线商店也有资格成为 Web 应用程序,尤其是现在。由于 HTML、CSS,尤其是 Javascript 的结合,提供交互式应用程序体验成为可能,这种体验甚至不需要用户安装除他们可能已经安装的浏览器之外的任何东西。
渐进式 Web 应用程序或 PWA 是这一概念的当前演变,其差异化因素在于它们如何在各自的操作系统上模仿本机应用程序。常规的 Web 应用程序通常甚至不会试图隐藏它们是高级和美化的网页,但是一个好的 PWA 应该让您在 Windows、Android 甚至 Linux 上感到宾至如归。这有很多优点,但现在考虑完成它们可能为时过早。
渐进优势
无论您使用何种设备或操作系统,Web 应用程序都试图提供单一的服务和体验,在屏幕尺寸和网页设计方面有一些限制。渐进式 Web 应用程序通过将 Web 应用程序与 Web 浏览器实际分离,同时仍然依赖相同的基于 Web 的技术和概念,将其提升到一个新的水平。使用正确的工具和框架,这些 PWA 可以在每个支持的平台上看起来像本机应用程序。
PWA 的主要好处之一,或者至少是理想的,是支持应用程序的离线使用。考虑到许多这些应用程序依赖 Internet 的性质,这听起来几乎是矛盾的,但是即使与电网断开连接,服务工作者和缓存也可以为用户提供一些功能。
得益于谷歌和微软的标签团队,PWA 最近也得到了长足的发展。考虑到这两家公司需要 PWA 来取得成功和蓬勃发展,这并不奇怪。他们一直在添加一些功能,这些功能赋予 PWA 其原生同行也拥有的能力,例如应用程序图标快捷方式作为最近的例子。这将使开发人员不必决定选择哪个平台,只需编写一个涵盖所有平台的 PWA,希望能像两家公司所希望的那样在 Microsoft Store 和 Google Play Store 上发布。
严重的限制
PWA 使用 Web 技术并仅针对单个平台的近乎神奇的能力掩盖了该平台也不是完全跨平台的事实。事实上,您将自己与 Web 浏览器(或浏览器引擎)及其可能具有的功能和限制联系在一起。例如,在具有不同浏览器框架的平台(例如 iOS)上可能不支持在 Chrome 中可以使用的内容。
还有一个事实是,这些浏览器和 Web 技术无法访问本机应用程序喜欢的所有硬件和平台功能。不久前,浏览器还不能使用指纹扫描仪或做 AR。PWA 可以使用的功能列表肯定会增加,但这确实意味着必须等待原生应用程序可以轻松访问它们时发生这种情况。
离线支持并不像听起来那么可靠。诚然,对于本质上依赖于 Internet 连接的本机应用程序来说也是如此。某些 PWA 可能允许用户继续使用设备上缓存的任何内容,然后在 Internet 连接再次可用时将更改同步到服务器。对于必须确保应用程序正确缓存和同步数据而不破坏数据或引起冲突的开发人员来说,这可能会带来更多工作。
然后是一些棘手的数据所有权和隐私主题。Web 应用程序,尤其是 PWA 始终可以选择将其数据存储在设备本身上,但大多数可能只存储离线场景的缓存,将大量用户数据放在远程服务器上。这可能是由于 Web 应用程序可以访问的本地存储量的技术限制,或者可能是为了简化仅在服务器上保存数据的工作。您可能拥有使用该应用程序创建的数据,但远程存储这些数据的公司也拥有这些数据,这些数据也可能在传输过程中被拦截。
包起来
PWA 显然比他们早期的 Web 应用程序表兄弟更进一步,并且在他们所居住的平台上变得更加自在。它们提供比简单的 Web 应用程序和页面更多的功能,并减轻了开发人员在接触更多用户方面的负担。它们还远非微软和谷歌等公司宣传的“一次编写,随处部署”的乌托邦。他们最终可能会到达那里,这取决于网络技术和标准跟上平台集成的速度。然而,就目前而言,他们还有很长的路要走。