6月23日,ApplePark的观众席上空无一人,但此时一场特别的科技春晚正在上演。 在2020年的WWDC大会中,自iOS7以来变动最大的一次更新iOS14来了,AirPodsPro有了黑科技,ARMMac也来了。但对小程序开发者来说,他们最关心的应该还是此次WWDC发布的AppClips了。 一个无需下载应用,就能使用app的功能。这听上去是不是和小程序有点相似,但这是AppClips,也被一部分人称为苹果小程序。它是什么?它和小程序有什么不同?我们该怎么开发AppClips? 别急,一篇文章给你解答。 AppClips从哪里来? AppClips(应用片段)作为WWDC2020上最值得关注的特性之一,由于缺乏官方示例,是用户感知度最低的新功能。同时,因为和微信小程序过于相似的产品形态设定,也被部分开发者冠以苹果牌小程序的昵称。 官方对其的定义是 Appclipsareagreatwayforuserstoquicklyaccessandexperiencewhatyourapphastooffer。Anappclipisasmallpartofyourappthat’sdiscoverableatthemomentit’sneeded。Appclipsarefastandlightweightsoausercanopenthemquickly。 应用片段让用户可以快速体验应用。一个应用片段是应用的一小部分,可以在需要的时候被发现。应用片段快速而轻巧,因此用户可以快速打开它们。 信达雅的翻译就是:无需下载,用完即走。乍看之下确实像小程序。不过AppClips的起源,要从2016年6月说起。 iMessageApp 2016年6月,WWDC2016发布了iOS10,重磅介绍了升级后的iMessage,其中,最值得一提的就是iMessage内的应用。通过这个特性,用户可以在iMessage聊天窗口里玩游戏,效果和后来的微信群聊里的小游戏卡片一样(只是要下载)。 iMessage的这个新功能时间上比小游戏早了近一年,我现在仍记得2016年的中秋节和小伙伴们在iMessage里玩潜艇大战的时光。 iMessageapp通过社交关系解决了服务发现的问题,这也是AppClips的核心使命。 从技术发展角度来看,AppClips就是iMessageapp的升级版本。它在聊天窗口发送能力的基础之上,增加了NFC近场打开、扫码打开、网页关联打开、地图POI打开等服务发现路径,基本上涵盖了实际生活中所有需要服务的场景。 AppClips和微信小程序的存在,都是为了解决同一个问题,二者殊途同归。这对开发者和用户来说绝对是一件好事。 但就开发而言,AppClips和微信小程序亦存在着方向上的差异。 微信小程序是0到0。1再到1。0。开发者为提供一个服务,从头开始开发小程序,实现了0到0。1,用户用完即走了,体验很棒。但随着业务壮大,开发者在面对0。1到1。0的问题上遇到了麻烦,于是微信小程序近两年在这个问题上费了不少心思:代码包从1MB到2MB到4MB再到分包机制;小程序和app的互跳;放宽小程序和小程序的互跳;WebGL的支持 AppClips则是从1。0到0。1,是对现有app的一种改良,因此在开发上遇到的麻烦会少一些,下边我们通过一个Demo感受一下。 AppClips开发实战 从技术的角度,AppClip可以理解为一个App的Extension,在开发AppClip之前,要有一个普通的App的项目。在这个示例中,我们基于知晓云iOSDemoBookShelf,一个简单的书架应用来进行操作。在这个Demo中,我们让AppClip拥有和原BookShelf一样的功能。 第零步:开发环境要求 开发环境只需要Xcodebeta12即可,无需macOS11。在这个示例中,开发环境为macOS10。15。5Xcodebeta12。 第一步:创建一个AppClip 在XCodeBookShelf项目中,新建一个Target,选择AppClip,点击下一步,如上图所示,填入Target信息。 Xcode会自动配置以下内容: 在S;C新建OnDemandInstallCapable AppClip。属性列表文件,默认包含一个key:com。apple。developer。parentapplicationidentifiers,值为包含原始的identifier的数组,demo的为com。ifanr。BookShelf。 BooKShelfC的默认以原始作为前缀,后面加上。Clip。在BookShelfClipT中为com。ifanr。BookShelf。Clip。 第二步:(可以不)写代码 首先,在BookShelfClip目录下的SceneDelete。swift文件的方法funcscene(scene:UIScene,willConnectTosession:UISceneSession,optionsconnectionOptions:UIScene。ConnectionOptions)中将HomeV作为初始启动界面,代码如下: scene(scene:UIScene,willConnectTsession:UISceneSession,connectionOptions:UIScene。ConnectionOptions){contentVHomeView()windowSas?UIWindowS{UIWindow(windowScene:windowScene)window。rootViewCUIHostingController(rootView:contentView)self。windowwindow。makeKeyAndVisible()}} HomeV从哪里来的呢?这就是AppClip开发上的便利:可以不写代码。通过和原始Target:BookShelf共享文件,BookShelfClip可以直接使用BookShelf中已经写好的HomeView,如下图: 第三步:运行 在Xcode中,选中PSBookShelfClip,点击Run,我们的AppClip就跑起来了。 AppClips往哪里去 由于目前的Xcodebeta版本,在导入一些第三方库时会报编译错误。在这个Demo中,我们简单演示了如何使用SwiftUI(几乎没有写代码)开发简单的AppClip,可以在GitHubRepo(https:github。comifanrxhydrogendemotreemasterswiftuidemoBookShelfClip)获取。 下一章节,我们将为大家演示: 1。集成知晓云后端云服务SDK的全功能AppC 2。通过URL、扫码等方式打开AppClip的配置、实际效果。 下一章,我们还会聊一聊更多的细节,比如AppClips只能维持8小时的通知机制。恰好微信小程序在灰度发布几大特性,和AppClips的特性结合着看,这还有不少值得思考和展望的地方。 下期见。 访问苹果官方销售渠道:苹果天猫官方旗舰店苹果京东官方旗舰店