什么是渐进式增强 WEB 应用(PWA)
文章分类:APP开发问答 发布时间:2019-09-16 原文作者:sky 阅读( )
由于苹果最初并没有发布原生软件开发工具包,当时开发者唯一的选择就是开发Web应用程序,然后将其保存到主屏幕上——看起来像是原生应用程序。
一旦本地的SDK发布,应用商店登陆,几乎所有的开发都转移了,网络应用在iOS上几乎都死掉了。随着时间的推移,渐进式Web应用程序正成为某些应用程序开发的可行替代方案。
在深入了解PWA(Web应用程序)的本质之前,花点时间讨论一下背后的动机是值得的。
随着应用程序开发领域中的几个摩擦点的出现,PWA也开始出现。
应用程序开发很困难,应用程序开发人员很昂贵
除非你有一个拥有相关技能的内部开发团队,否则你要么需要建立一个团队,要么与第三方合作。这通常是一个痛点,特别是对于拥有现有Web或服务器开发团队的组织而言。
虽然跨平台技术(如Xamarin和ReactNative)的出现在某种程度上使非移动开发团队能够在移动设备上开发应用,但有较高的学习成本。
将跨平台技术视为本地开发的替代方案也是一种误称——通常,在某些阶段仍然需要本地开发人员来创建和支持需要访问本地平台元素的项目区域。
因此,在不深入研究的情况下,一个渐进式的Web应用程序是一种专门的网站,可以由Web开发人员开发。
虽然不同平台有不同的API,但是PWA的开发可以在一个范例中进行。虽然这不像创建一个移动优化网站那么简单,但它是一个逻辑扩展,不需要进行大规模的重新思考,也不需要开发全新的技能集。
作为门卫的应用商店
对于本机应用程序(以及打包为本机格式的跨平台应用程序),安装到用户手机上的主要(可能也是唯一)方法是通过应用程序商店。
虽然应用商店为用户提供一致的体验——安装你的应用和安装其他人的应用一样——但它将你的应用放在虚拟货架上,仅次于所有竞争对手。完美执行的营销和推广将使客户蜂拥到您的网站,在那里您的产品和服务将展示,无论您喜欢什么。但是,在安装你的应用程序时,用户必须去一个通用的应用程序商店,在那里你的应用程序与其他应用程序的展示是相同的,甚至有可能在同一个屏幕上链接到你的竞争对手。
假设你的客户要安装你的应用程序,还有一个完整的附加操作序列——登录他们的应用程序商店,设置付款,最后下载应用程序。
这个过程中的每一个“下一步”都是下载的障碍,为用户提供了更多放弃的机会。但更糟糕的是,应用商店是一个看门人。他们是处理这些互动的人。
这是一个你无能为力的过程,你对有多少用户退出以及在哪个阶段退出的可见性非常有限。
PWA的好处是:您将应用程序托管在服务器上,可以在一定程度上控制安装流程,例如,您可以定义用户登录时出现的安装横幅,但不能控制“添加到主屏幕”本地对话框。
PWA的主要优点是:
它是可下载的,就像其他任何应用一样在主屏幕上运行,并且不需要用户在浏览器中访问网站。
它离线工作,因此无论连接可用性或速度如何,它都会打开并显示一些合理的内容。
它响应迅速,适应屏幕大小和配置,就像普通的应用程序一样。
它在操作过程中有一种本土化的外观和感觉。
但有一两个陷阱
应用商店。不管你喜欢还是讨厌应用商店,用户都信任它们——它们是下载应用程序的一致和熟悉的机制。一个渐进式的Web应用程序在这个框架之外工作,安装一个应用程序(至少在编写这个框架时)的过程并不明显。要使PWA工作,您需要向用户介绍他们必须经历的过程,以便将应用程序安装到他们的设备上-虽然这很简单,但如果您知道如何操作,这是一种体验,根据用户使用的是安卓还是iOS设备,会有很大的不同。例如,谷歌在PWA上投入了大量的支持(见下文),以确保安装过程对用户来说尽可能的流畅——通常只需要几次点击。然而,对于苹果来说,对PWA的支持有点有限,仅限于Safari。
PWA不是应用程序。PWA运行在Web浏览器的上下文中,通常是Safari或Chrome,这意味着从系统的角度来看,它不是一个应用程序。它不直接访问系统资源或管理它们,从高层来看,这有几个主要的影响。首先,在后台运行是不可能的,因此开发诸如音乐播放器之类的功能是不可能的。其次,平台上许多本地服务的访问非常有限,比如支付、硬件访问、蓝牙等。在Android和iOS平台上的一个PWA中,你能做的事情也有相当大的差异。例如,在Android上,PWA可以利用通知和后台同步——这在iOS上是不可能的。从PWA的角度来看,Android是功能更强的平台。
那么,什么时候应该考虑使用渐进式Web应用程序呢?
这个问题的答案取决于:
你想让你的应用程序做什么
你的目标受众是谁你的预算是多少
如果你希望你的用户能够在不太融入本地体验的情况下离线查看内容,那么一个PWA可能是完全足够的。然而,如果你想要一个沉浸式的体验,利用设备本身的功能,那么一个PWA可能不是正确的方向。
考虑到iOS和Android在体验上的差异,您还应该考虑您的目标受众。如果你已经建立或已经有一个单页应用程序(网站),这可能是一个非常简单的过程,把这变成一个完全成熟的PWA,这可能允许你给你的Android用户一个'应用程序'的成本更低。
如果你主要针对iOS用户,那么pwa可能不是最好的选择。