F1b780efbe0e65ea40b0fac0c606d4be
WWDC20 10120 - 精简你的App Clip

本篇基于Streamline your app clip

前言

当用户购买最喜爱的清凉饮料或者支付停车费用的时候,App Clip可以为用户提供最佳的即刻(in the moment)体验。对于如何创建一个持续且专注的App Clip,本篇主题分享了相关的参考和最佳实践,并且展示了如何通过相关技术如App Clip通知,地理位置确认来简化交易的流程。同时探索了如何引导用户从App Clip 到完整的App,要想更好的了解本篇内容,推荐先观看另外两篇session Explore App ClipsConfigure and link your App Clips

App Clip是开发者们App的精简版,有几个较为重要的特点:

  1. 轻量的(lightweight)
  2. 在用户需要的时候按需触达(delivered on-demand)
  3. 用户通过URL唤醒开发者注册的App Clip
  4. 用户通过App Clip体验可以轻松的被引导到完整的App

最佳实践

设计

  • 专注必要任务。App Clip支持的功能应该仅仅是用户当下所需的功能,而对于相对庞大或者复杂的任务,应该保留在开发者的完整App里。
  • 立即可用。当App Clip启动后应该可以立即使用,只加载必要的资源,才能保证获得快速的启动体验。不要包含闪屏页或者需要用户等待下载完成后才能进行后续操作的功能
  • 用户完成任务后再询问是否需要注册。创建账户是相对复杂的流程,需要花费用户一定的时间和精力,所以应该在用户完成手头的任务后再询问是否需要注册
  • 请求必要的权限。请求用户权限时,应当只询问当前任务所必须的权限,并且清楚的向用户阐明用途
  • 为完整App提供一致的简化体验。用户升级后完整App会取代App Clip,开发者需要为完整App提供和App Clip相同的流畅体验,确保使用一样的名字和图标,使得用户可以在体验上保持一致

更多关于设计App Clip的内容,请参考session "Design Great App Clips"

构建

关于构建App Clip,开发者需要为自己的Xcode工程新增一个target。一般来说App已经包含了资源和类文件,其中一些会与App Clip共享,开发者需要明确哪些资源是App Clip需要用到的,并且将它们包含在App Clip的bundle中。可以想象App Clip越小,用户就可以越快速的使用到,所以开发者尽量为App Clip添加必要的资源。如上图所示,对于那些可以公用的资源,将它们放入共享的asset catalog中,同时开发者需要整理相关的类和国际化文件使它们也可以在完整的App和App Clip中共享。

认证

  • 支持Sign in with Apple登陆,这是用户最好的登陆账户的方式
  • 使用ASWebAuthenticationSession进行联登,如果开发者提供了Sign in with Apple以外的登录,那么ASWebAuthenticationSession是合适且轻量的进行第三方登录的方式,可以确保用户不需要在App Clip和其他应用间进行切换
  • 为已有账号的用户提供账户名和密码登录,使用App Clip支持的密码自动填充,用户可以更加快捷的登陆。
  • 为升级到的完整App提供Sign in with Apple支持

想知道关于用户登陆的最佳方式,请参考session "What's New in Authentication" ,关于如何充分利用Sign in with Apple,请参考session Get the most out of Sign in with Apple

隐私

App Clip的生命周期是短暂的,在被保护隐私的前提下,用户应当可以放心的使用。App Clip不应该包含一些敏感的用户数据,这些数据对于App Clip所提供的轻量级的体验是不必要的,开发者可以鼓励用户在完整App中使用相关的功能。

App Clip支持相机,麦克风和蓝牙的权限申请,为了给予用户快速高效的体验,苹果会把这些权限数据转移到完整App中,用户无需在完整App内再次申请。关于更多App Clip和隐私相关的内容,请参考session "Build Trust Through Better Privacy"。

简化交易

在日常生活中我们会遇到许多通过iOS App来进行交易的场景,典型的交易流程包含许多步骤,现在举例来说明:

如上图所示,这是一个购买沙冰的流程

  1. 用户走进一家沙冰店,点击NFC标签,这时名为Fruta的App Clip启动了。
  2. App Clip会请求用户的地理位置权限,并通过地理位置信息找到用户所在的沙冰店。
  3. App Clip展示沙冰的菜单
  4. 用户选择喜爱的沙冰并且进行付款
  5. 为了让用户知道沙冰已经制作完成,App Clip会请求通知权限
  6. 最后App Clip会提供登陆和注册功能使得用户可以积分

可以看的出来,通过Fruta的App Clip购买沙冰的过程还是需要较多的步骤的,让我们看看如何简化购买流程吧!

位置确认

首先App Clip可以通过接近NFC标签或者扫描二维码等物理方式来触发,在上面沙冰的例子里,NFC标签中所包含的URL可以提供当前沙冰店的信息,有了这些信息可以知道沙冰店的地理位置以及菜单,用户在其中可以选择沙冰并进行购买。

尽管如此,如果NFC标签与沙冰店不匹配怎么办,或者说如果有人故意在该沙冰店中放置其他的NFC标签怎么办,这样会导致用户的困惑,甚至一些欺诈行为会导致用户的损失。

为了防止这一现象,开发者需要知道用户确实在当前的沙冰店并扫描了tag,可以通过获取用户的地理位置信息来匹配当前的沙冰店。

位置确认仅显示足以完成此操作的信息,不需要完整的地理位置权限,用户可以在App Clip卡片中控制是否允许, 当App Clip从物理码中接收到信息时,开发者可以通过系统得知是否在正确的位置获取了有效的信息,并得到一个“是”或“否”的答案,无需额外提示。

要启用位置确认,可以将NSAppClipRequestLocationConfirmation 做为Key添加到info.plist中的NSAppClip里。

当App Clip启动时可以通过NSUserActivity获取payload,然后通过坐标和半径获取相应的区域,半径最多可以设置到500米。最后调用 confirmAcquired(in:region)方法,通过闭包获取最终结果。

以上就是如何简化位置确认。

付款

正如大多数App一样,可以在App Clip中可以使用任意的付款方式。使用Apple Pay 用户可以更加安全和快速的进行交易,无需输入信用卡号,可以很好的简化整个付款流程。

在使用App Clip后,开发者可已通过通知来再次唤起用户。

若要当天发送通知,开发者需要先请求权限。 通过App Clip通知,每次启动后最多可以获得八小时的权限, 如上图用户可以在App Clip卡片中授予权限。同时开发者可以在App Clip启动后随时请求常规权限。

top Created with Sketch.