「苹果小程序」App Clips 和微信小程序区别在哪?咱们作了一次上手实操

做者|何世友、彭权华
阅读原文ios

App Clips 1.jpg

6 月 23 日,Apple Park 的观众席上空无一人,但此时一场特别的「科技春晚」正在上演。git

在 2020 年的 WWDC 大会中,自 iOS 7 以来变更最大的一次更新——iOS 14 来了,AirPods Pro 有了黑科技,ARM Mac 也来了。但对小程序开发者来讲,他们最关心的应该仍是这次 WWDC 发布的 App Clips 了。github

「一个无需下载应用,就能使用 app 的功能。」这听上去是否是和小程序有点类似,但这是 App Clips,也被一部分人称为「苹果小程序」。它是什么?它和小程序有什么不一样?咱们该怎么开发 App Clips?小程序

别急,一篇文章给你解答。swift

App Clips 从哪里来?

App Clips(应用片断) 做为 WWDC2020 上最值得关注的特性之一,因为缺少官方示例,是用户感知度最低的新功能。同时,由于和微信小程序过于类似的产品形态设定,也被部分开发者冠以「苹果牌小程序」的昵称。后端

官方对其的定义是——微信小程序

App clips are a great way for users to quickly access and experience what your app has to offer. An app clip is a small part of your app that’s discoverable at the moment it’s needed. App clips are fast and lightweight so a user can open them quickly.

应用片断让用户能够快速体验应用。一个应用片断是应用的一小部分,能够在须要的时候被发现。应用片断快速而轻巧,所以用户能够快速打开它们。数组

信达雅的翻译就是:「无需下载,用完即走」。乍看之下确实像小程序。不过 App Clips 的起源,要从 2016 年 6 月提及。微信

App Clips 2.jpg

iMessage Appsession

2016 年 6 月,WWDC2016 发布了 iOS10,重磅介绍了升级后的 iMessage,其中,最值得一提的就是 iMessage 内的应用。经过这个特性,用户能够在 iMessage 聊天窗口里玩游戏,效果和后来的微信群聊里的小游戏卡片同样(只是要下载)。

iMessage 的这个新功能时间上比小游戏早了近一年,我如今仍记得 2016 年的中秋节和小伙伴们在 iMessage 里玩潜艇大战的时光。

App Clips 3.jpg

iMessage app 经过社交关系解决了服务发现的问题,这也是 App Clips 的核心使命。

从技术发展角度来看,App Clips 就是 iMessage app 的升级版本。它在聊天窗口发送能力的基础之上,增长了 NFC 近场打开、扫码打开、网页关联打开、地图 POI 打开等服务发现路径,基本上涵盖了实际生活中全部须要服务的场景。

App Clips 和微信小程序的存在,都是为了解决同一个问题,两者异曲同工。这对开发者和用户来讲绝对是一件好事。

但就开发而言,App Clips 和微信小程序亦存在着方向上的差别。

微信小程序是 0 到 0.1 再到 1.0。开发者为提供一个服务,从头开始开发小程序,实现了 0 到 0.1,用户用完即走了,体验很棒。但随着业务壮大,开发者在面对 0.1 到 1.0 的问题上遇到了麻烦,因而微信小程序近两年在这个问题上费了很多心思:代码包从 1MB 到 2MB 到 4MB 再到分包机制;小程序和 app 的互跳;放宽小程序和小程序的互跳;WebGL 的支持……

App Clips 则是从 1.0 到 0.1,是对现有 app 的一种改良,所以在开发上遇到的麻烦会少一些,下边咱们经过一个 Demo 感觉一下。

App Clips 开发实战

从技术的角度,App Clip 能够理解为一个 App 的 Extension,在开发 App Clip 以前,要有一个普通的 App 的项目。在这个示例中,咱们基于知晓云 iOS Demo BookShelf,一个简单的书架应用来进行操做。在这个 Demo 中,咱们让 App Clip 拥有和原 BookShelf 同样的功能。

第零步:开发环境要求

开发环境只须要 Xcode-beta 12 便可,无需 macOS 11。在这个示例中,开发环境为 macOS 10.15.5 + Xcode-beta 12。

第一步:建立一个 App Clip

App Clips 4.jpg

在 XCode BookShelf 项目中,新建一个 Target,选择 App Clip,点击下一步,如上图所示,填入 Target 信息。

Xcode 会自动配置如下内容:

  • Signing &; Capabilities 新建 On Demand Install Capable
  • AppClip.entitlements 属性列表文件,默认包含一个 keycom.apple.developer.parent-application-identifiers,值为包含原始 targetidentifier的数组,demo 的 identifiercom.ifanr.BookShelf
  • BooKShelfClip 的默认 identifier 以原始 target identifier 做为前缀,后面加上 .Clip。在 BookShelfClip Targetidentifiercom.ifanr.BookShelf.Clip

第二步:(能够不)写代码

首先,在 BookShelfClip 目录下的 SceneDelete.swift 文件的方法 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) 中将 HomeView 做为初始启动界面,代码以下:

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
 
    let contentView = HomeView()
 
    if let windowScene = scene as? UIWindowScene {
        let window = UIWindow(windowScene: windowScene)
        window.rootViewController = UIHostingController(rootView: contentView)
        self.window = window
        window.makeKeyAndVisible()
    }
}

HomeView 从哪里来的呢?这就是 App Clip 开发上的便利:能够不写代码。经过和原始 Target: BookShelf 共享文件,BookShelfClip 能够直接使用 BookShelf 中已经写好的 HomeView,以下图:

App Clips 5.jpg

第三步:运行

在 Xcode 中,选中 Product > Scheme > BookShelfClip,点击 Run,咱们的 App Clip 就跑起来了。

App Clips 6.jpg

App Clips 往哪里去

因为目前的 Xcode-beta 版本,在导入一些第三方库时会报编译错误。在这个 Demo 中,咱们简单演示了如何使用 SwiftUI (几乎没有写代码)开发简单的 App Clip,能够在 GitHub Repo 获取。下一章节,咱们将为你们演示:

  1. 集成知晓云后端云服务 SDK 的全功能 App Clip;
  2. 经过 URL、扫码等方式打开 App Clip 的配置、实际效果。

下一章,咱们还会聊一聊更多的细节,好比 App Clips 只能维持 8 小时的通知机制。刚好微信小程序在灰度发布几大特性,和 App Clips 的特性结合着看,这还有很多值得思考和展望的地方。

下期见。

mincloud2019.png

相关文章
相关标签/搜索