App Clips 概览

2020/6/29 23:27:07

本文主要是介绍App Clips 概览,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

苹果在 WWDC 2020 发布了 App Clips,让没有安装应用的用户也能够体验到你的应用的部分功能,这与现有的微信、支付宝小程序在设计理念上非常类似,不过在设计上也是稍微有其独特之处。另外从技术层面上看,App Clips 依托的是原生平台,因此使用的技术也是完全不同的,本文主要针对 App Clips 的特点和设计进行介绍。

Overview

App Clips 是一个轻量级版本的应用,主要目的是让用户无论在何时何地都可以根据不同场景使用到其中对应部分的功能。但和小程序不同的是,他不是一个独立应用程序,App Clips 的使用需要依托特定的场景,而且一次打开只能体验到其中一部分的功能。比如说一个咖啡店的应用,可能会包含点单、收藏饮品、获取优惠券等不同功能,然而一个咖啡店的 App Clip 只应该包含点单的功能。对这个场景苹果提出一种设想:用户想买咖啡,当他走到咖啡店附近时,系统根据定位信息弹出一个关于这家店 Siri 建议,那么用户点击建议就可以打开这家咖啡店的 App Clip,然后可以直接在上面下单买咖啡,这样用户不用下载咖啡店的 App 也可以快速便捷地买到咖啡。

App Clip Experience

可以看到,App Clips 的使用需要依托特定的场景,由用户去触发这些场景的条件(Invocation),从而打开 App Clips 提供特定服务。打开 App Clips 借助的是一个 URL,苹果将其定义为 App Clip Experience,这类 URL 会由系统通过如 App Clip Card这样的形式呈现给用户,用户点击 Open 时系统就会打开 App 或者下载对应 App Clips 进行处理。可以理解成 App 的新的入口,和之前推出的 Universal Link 的处理过程比较类似,关键区别是不需要使用 Apple app site assionciations 文件,而可以直接在 App Store Connect 上注册。这些 URL 本身也是字符串,因此可以编码成物理标签,如:

  • NFC 标签

  • 二维码

  • 地图店铺标签

  • 附近建议(如上面的咖啡店案例,可以在 App Store Connect 上注册)

  • Safari(网页顶部 banner)

  • 短信链接

另外,为了更方便的使用 App Clips,苹果结合了 NFC 和二维码的优点设计了 App Clip Code ,让用户一看就知道这是一个 App Clip。与微信小程序码不同,他可以支持触碰和扫描。关于 App Clip Code 的生成工具,苹果会在今年内推出。

App Clips

用户打开 App Clip Experience时,如果已经安装了 App,那么就会打开 App 来处理,如果没有安装,系统会下载对应的 App Clips 来执行本次处理需要的功能。App Clips 与普通 App 很相似,但App Clips 只需要包含应用的核心功能,用于处理 App Clip Experiences 即可。

从开发层面看,App Clips 依托的是原生的环境,可以使用的和 App 一样的 UI 框架,也就是说可以直接使用 UIKit 或者 SwiftUI,另外 iOS SDK 中多数框架也是可以共用的,因此绝大多数代码可以直接与 App 共用一份,在审核时,App Clips 只需要单独编译打包,然后和 App 一起提交即可,这比重头开发一个小程序的成本低很多。

在用户设备上,App Clips 是由系统单独下载,与 App 相互独立,用户通过 App Clip Experiences启动应用的时候,App 或者 App Clip 会收到一个 NSUserActivity,用于处理不同的功能请求,类似 Universal links,因此针对不同功能可以设置不同的 App Clip Experiences 来作为入口。

虽然 App Clips可以共用 iOS 的系统库,但是相比原生 App 还是有一些限制:

  • 不支持的 framework 包括:CallKit, CareKit, CloudKit, HealthKit, HomeKit, ResearchKit, SensorKit, Speech;
  • 瘦身之后,包大小不能超过 10 MB,苹果建议多数资源可以直接下载,Assets 里只保留必须的资源文件即可;
  • 不允许使用敏感用户数据,App Clip 中获取敏感数据会一直返回未授权,包括以下数据:
    • 运动和健身数据
    • Apple Music 和多媒体文件
    • 通讯录、信息、照片、文件等数据
  • 为了保护用户隐私,App Clip不允许要求授权定位追踪,不过可以请求 When In Use authorization 权限,第二天 04:00 会自动重置权限;
  • 为了简化操作,苹果也提供了免申请的通知和定位功能,8 小时内有效,且定位只能用于判断是否在某个区域,只能请求一次;

Design

一般来说设计一个 App 时,我们会在顶层的控制器放置所有功能的入口,比如设置 tab bar 来切换不同页面。 App Clips 可以包含很多功能,但是不需要像 App 一样放置所有功能的入口,不同功能是通过 App Clip Experience 的 URL 作为入口,一次只需要使用其中之一,因此 App Clips 整个交互的流程是一个流线型、线性的过程。

App Clips 用户交互的一个大致的流程:

  1. 用户通过扫描二维码等方式打开一个 App Clip Experience
  2. 因为设备中没有对应的 App,系统会下载并启动对应的 App Clip,用户可以使用指定功能;
  3. 然后会有三种场景:
    1. 一段时间后,用户一直没有启动过 App Clip,那么系统会删除 App Clip 和数据;
    2. 用户一直在频繁的使用 App Clip,系统会延长其存活的时间,甚至不会删除;
    3. 用户直接下载了你的 App;

当用户使用过 App Clips后下载了你的 App,系统会直接将相机、蓝牙和麦克风权限迁移到你的 App。如果 App Clips 中需要迁移的数据,可以将数据放到一个共享的 App Group Container 进行数据迁移。然后系统会删掉 App Clip 本身。

另外关于 App Clips 中使用到的用户数据还需要注意:

  1. 当用户一段时间没有使用 App Clips,其内容本身、用户数据、keychain 数据都会被删除;
  2. App Clips 不包含在 iOS 备份中;
  3. 不允许访问用户敏感数据,比如健康和健身数据,如果要访问,提示用户安装应用;
  4. Universal Links、支持打开的文档类型、URL scheme 等在 App Clips 中都是不可用的,因此作为登录回调是不支持的,登录功能需要使用 ASWebAuthenticationSession
  5. 不能包括 bundled extensions,比如 content blockers;

Summary

App Clips 的作用是在用户未安装应用时,根据用户需求快速呈现应用中的功能,借用苹果的原话:

App Clips are designed for speed.

App Clips 的应用体验是一个流线型、快捷、目标明确、即时体验的过程,从其特性上看,App Clips也适用于实体店、线下活动等线下应用场景,可以提供不错的用户体验。另外对于现有的 App 来说,开发者可以很轻松的将功能迁移到 App Clips上,相信正式推出后会得到广泛的应用。



这篇关于App Clips 概览的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程