按需分发应用的 UX 最佳实践

作为按需模块效果不错的功能是那些在安装时大多数用户不需要的功能。以下是一些适合按需模块的应用功能示例:

  • 在大多数用户只观看视频的应用中编辑和上传视频
  • 在大多数用户只浏览和关注他人食谱的应用中添加食谱
  • 大多数用户不寻求帮助,或者不在应用内寻求帮助时的帮助和支持功能
  • 用于不常用功能的大型库,例如提供详细的错误捕获和报告
  • 特定的支付或结账功能
  • 超高分辨率媒体体验或 VR/AR 功能

在典型情况下,这些模块相对较小(小于 10MB),并且没有网络或其他故障,用户可以非常快速地下载和使用按需模块。也就是说,体验通常与模块在应用安装时就存在没有区别。

本页介绍了帮助您执行以下操作的最佳实践:

  • 确保您的用户了解并掌控相对较大的非即时加载模块下载,或模块安装错误。
  • 进一步优化模块分发体验,特别是在您可以预见到用户需要特定模块的情况下。

阅读完本指南后,请尝试Play Core API 示例应用,了解这些最佳实践的实际应用。

告知用户

当某个功能无法立即使用时,您应该通知用户。如果用户决定从 Google Play 下载该功能,请显示下载进度。

您可以监控请求状态以显示下载进度和安装状态。但是,您想要显示的 UI 类型可能取决于下载大小。

  • 对于可以非常快速安装的小模块(约 10 MB 或更小),请考虑使用指示器,例如旋转器或简短的“正在下载内容”消息。
  • 对于下载和安装可能需要几秒钟或更长时间的大模块,请考虑显示下载和安装进度条,如图 1 所示。

图 1. 下载和安装按需功能时显示消息和进度条

优雅地沟通安装延迟和失败

如果下载失败或进度慢于预期,请清晰透明地向用户沟通正在发生什么以及他们可以做什么(如果有的话),如图 2 和图 3 所示。例如,如果您监控下载请求的状态,并且您的应用收到 API_NOT_AVAILABLE 错误,请通知用户他们的设备不支持按需下载。

图 2. 告知用户此功能为何暂时无法安装

图 3. 向用户解释为什么功能下载可能比预期时间长

在大文件下载请求权限前展示价值

如果按需模块较大(大于 150MB),Google Play 要求用户在下载前先同意。

在您请求模块之前,向您的用户解释模块的价值。帮助他们理解您提出此请求的原因,就像您请求应用权限时那样。与用户公开沟通会增加他们接受下载的可能性。

例如,假设您正在构建一个电子商务应用,其中一个功能允许用户使用增强现实 (AR) 将家具直接放置在他们的公寓中。您可能会包含一条消息,例如“您想在客厅里看到您的新沙发吗?立即安装增强现实查看器。”

在后台执行下载和安装

模块下载和安装应始终在后台进行。也就是说,当用户等待某个功能可用时,您应该允许他们继续使用您应用的其他部分。当功能可用时,您应该提供通知,允许用户自行决定切换到使用该功能。

如图 5 所示,用户继续使用应用,并在按需功能安装完成后收到通知。

图 5. 模块安装完成后,不要突然改变用户的上下文,而是通知用户请求的功能已准备就绪。

当模块准备就绪时,通知用户并让他们选择是否启动该功能。这种模式为用户提供了情境和对其体验的控制。

在某些情况下,您可以在功能准备就绪后立即启动。但是,因为它可能会中断用户体验,所以请仔细考虑这种行为是否符合预期和适当。

模块不再需要时释放设备存储空间

所有功能模块的一项有用功能是能够单独卸载它们。如果某个功能模块不再使用,您可以通过请求 Google Play 卸载该模块来减小应用在用户设备上的大小。

例如,您的应用可能有一个健壮的 onboarding 流程,其中可能包含富媒体。在用户完成 onboarding 流程后,或在他们成为活跃用户一段时间后,您可以使用 Play Feature Delivery API 请求 Google Play 仅卸载您应用的该组件。

请记住,您还可以稍后卸载在初始应用安装时包含的模块。例如,一个训练新用户如何使用您的应用的模块在用户首次使用您的应用时很有价值。但是,为了减小应用大小,您可以在他们完成训练后卸载它。

高级提示

通常,您需要处理用户明确表示意图使用按需功能模块功能的情况。

但是,您可能希望在用户向您发出信号之前预测用户何时可能与某个功能互动。以一个允许您下载和创建烹饪食谱的应用为例,以下指南描述了如何通过预测用户需求来优化模块分发体验。

预测用户在当前会话中对功能的需求。考虑用户是否仅在想要创建并与社区分享自己的食谱时才需要为食谱应用创建帐户。您可以将帐户创建作为信号,表明用户很可能想要添加自己的食谱,从而在用户点击“添加食谱”之前就开始下载功能模块。您可以将这种方法应用于应用中的其他用户旅程,以使功能下载过程更加无缝。

预测用户在即将到来的会话中对功能的需求。如果您不需要应用立即下载并安装按需模块,您可以将安装推迟到应用在后台时,Google Play 将为您处理下载和安装。例如,假设您想为烹饪应用发布新的季节性食谱,这些食谱在用户的当前会话中优先级不高。您可以请求 Play 在应用在后台时下载并安装这些食谱。这对于不需要立即但将来很可能需要的大型功能(>10MB)特别有用。

预测用户在应用安装前对功能的需求。您可能希望添加对条件分发的支持,以便根据用户所在国家/地区、设备硬件能力和 API 级别在安装时包含您的功能。例如,您可能希望在条件模块中包含使用猪肉的食谱,并在主要避免猪肉菜肴的地区从应用安装中省略该模块。