精华内容
下载资源
问答
  • 2021-01-22 08:45:00

    code小生 一个专注大前端领域的技术平台

    公众号回复Android加入安卓技术群

    作者 | Leoolin 
    来源 | Leoolin 的个人博客,点击阅读原文查看作者更多文章

    一:前言

    之前也陆陆续续看过一些介绍App Clip的技术文章,发现这些文章几乎千篇一律,差不多都是「苹果技术文档」和「WWDC视频截图」的拼装,以及「WWDC视频讲解」和「网上同类文章」的复述,却很少谈及App Clip真正落地的业务场景和涉及的技术问题。

    App Clip发布后,我开始负责App Clip的技术调研工作,也是沾团队的光,约到了一个App Clip lab,感受了一把白天看WWDC,晚上和WWDC讲解人一对一交流的体验,虽然我们团队最后决定先暂停App Clip的开发,但是在调研App Clip的过程中,也确实发现了很多值得思考之处。

    先说一个结论:不要因为看了WWDC和一些技术文章,就对App Clip有过分美好的幻想,至少从目前来看,App Clip的坑还很多。

    二:业务原因

    2.1 业务场景少

    线下支付

    看过WWDC视频的小伙伴们可能已经察觉到了,视频中介绍的场景90%以上都是线下支付的场景,不知道苹果的本意是不是希望通过App Clip去抢占o2o市场,虽然说的是「不用安装商家App」即可通过App Clip享受便捷服务,快速完成下单。可在中国,用户绝大部分的时候本来就不需要下载商家App,难道小程序不香嘛?况且就算真的有这种需求,目前能够满足的也仅仅是iOS 14系统以上的iOS用户。所以这种线下支付的场景,至少在目前看来,App Clip甚至称不上现有方案的一个有效替代方案。

    线上拉新

    既然线下支付推进困难重重,那肯定很多人会把目光重新看向线上场景。因为App Clip具备「及时可用」的特点,让用户不用下载完整的App即可享受到App的部分功能,那不妨就把App Clip做为一个拉新的入口,把Clip当做「试用装」吸引用户,等用户习惯了,再引导用户下载App。理想虽然很美好,可现实中怎么把「试用装」交到用户手中呢?我们知道,App Clip的调用场景目前主要就5种,二维码、Safari Smart Banner、NFC、Map和Message。

    其中NFC需要物理介质,Map需要实体店,它们对于纯线上的App来说很难找到应用的场景。

    Message更不用说了,首先国人对Message聊天的需求本来就不大,也总不能群发带Clip的短信给用户吧?

    对二维码,我们是抱有美好的期待的,希望用户通过第三方SDK将二维码分享给好友,然后好友通过二维码调起App Clip,逻辑满分。但尴尬的是,App Clip的二维码,只能通过「系统相机」才能调起。我相信绝大部分的人看到二维码,第一反应都是拿微信去扫一扫,想要培养用户使用「系统相机」扫码的习惯恐怕很难。

    那最后剩下的就是Safari这种方式了,这就需要我们想方设法的让用户在Safari里打开这个链接,注意,必须是Safari里打开,在第三方App里的WebView是没有办法显示Smart Banner的,自然也就没办法调起App Clip。

    2.2 操作路径长

    即便Safari貌似是纯线上App最适用的场景了,但是这种方式还存在一个问题,那就是用户的操作路径过长。以第三方分享为例,用户在第三方App接受到好友分享的链接后,打开Clip最短的操作路径可能如下:

    • 打开好友分享的链接,进入到内容页;

    • 点击更多按钮,选择在Safari中打开;

    • 点击Safari中Smart Banner上的Open按钮,调起Clip Card;

    • 点击Clip Card上的Open按钮,调起App Clip;

    • 在引导用户通过Safari打开这步估计就足够劝退大部分的用户了…

    三:技术原因

    即便我们不考虑业务场景,单纯从技术角度看,实现一个App Clip本身恐怕也不会是一个轻松的过程。

    代码拆分

    苹果希望App Clip和App提供一致的体验,刚看完WWDC的视频,一开始真的会给人一种实现一个App Clip 「So Easy」的感觉,只要复用原有的工程,随便勾勾选选,把文件加到Clip的Target下,一个精美小巧的App Clip就呈现在眼前了。关注公众号 逆锋起笔,回复 pdf,下载你需要的各种学习资料。

    可事实上呢?通常我们需要尽可能复用现有的业务来开发Clip,可除非你所在的项目业务足够简单,或者组件化做的足够彻底,否则你会发现摘Clip的代码是一件几乎无法实现的事情,很可能需要先做大量的技术重构。当然你也可以将原有代码复制出来,重写一份,可是这样下来,为了保持与完整App的功能一致性,就需要付出维护两套代码的时间成本。

    包大小限制

    10M是App Clip包大小的上限,对于现在动辄一二百M的应用来说,如何用10M来完成目标功能,也是一个不小的挑战。一方面还是上面提到的代码拆分的问题,如果组件化时,基础层划分的颗粒度不够细致,很可能导致上层业务依赖的基础组件过多,从而影响包大小。另一方面,如果App Clip的功能一直是增量的,那必然会导致未来的某一天会超过10M的限制,为避免这一问题,还需要根据新增功能对包大小的影响,配合产品完成现有业务功能的调整。

    后台活动

    App Clip不支持后台处理活动,这里的后台活动不单指beginBackgroundTaskWithExpirationHandler:这种后台任务,经过实际测试,甚至连「正常的网络请求」以及「NSData转 NSString」等操作,在后台执行都是不是完全可靠的,再结合视频里说的:

    In addition, app Clip can’t perform background activity, such as doing background networking with URLSession or maintaining Bluetooth connections when the app clip isn’t in use.

    对于不能执行的background activity目前包括什么,咱无从得知,但从安全的角度看,尽量不在后台搞事情,肯定是第一原则,只是不知道把后台的监听都去掉,你的项目是否还能work~

    唯一标识

    如果想把App Clip当做拉新的手段,那可能就会涉及到一个问题:如果识别出当前App用户曾是App Clip用户?

    我们知道如果用户手机上存在App Clip的情况下,又下载了对应的App,是可以进行数据迁移的。那如果用户的Clip因为一段时间未使用被系统自动删除了,此后用户又下载了App,该怎么设置用户的唯一标识呢?

    要知道Clip在被系统删除时,也会清空其存储在Keychain中的数据,至于IDFA,Shared Keychain那就更别想了,Clip压根不开放这个能力。当然肯定还是有一些其他方式能够对用户进行唯一标识,比如有些防作弊的SDK,就可以标识唯一的设备ID,这就看大家各显神通了。当然,如果不关心这种case的话就另说了。

    第三方App调起

    App Clip可以通过Url Scheme或者Universal Link调起第三方App,但是第三方App却不能通过Url Scheme和Universal Link调起App Clip,说白了就是能调出去但是回不来。第三方登录、第三方分享、第三方支付可能都会受到影响。

    不支持企业包

    企业证书是没法配置App Clip的,如果项目是使用同一个工程,通过不同的configuration切换企业版和正式版,可能还需要注意一个额外的问题,App Clip是通过Build Phases中的Embed App Clip集成到主Target中的,而Build Phases又没办法区分configuration,如果想区分版本去添加Embed App Clip,就只能打企业包时,单独去修改Project文件了。

    Pods

    可能目前CocoaPods对App Clip的支持还不够完善,写Demo时发现如果App Clip需要依赖Pods的话,pod install后,在Build Phases中是不会自动生成Embed Pods Frameworks的,这就会导致编译时报image not found的错误,目前解决的办法就是手动添加一下Embed Pods Frameworks。

    四:结语

    当然,对于App Clip的最终落地来说,技术原因终归是次要的,最关键还要看如何找到适合自己产品的业务场景。在苹果线上培训的时候,认识了一个团队的开发,说他们想用App Clip做AR,当时我就觉得这个想法还挺好的。可能对于很多产品来说没有这么新颖的玩法,其实倒也不必太在意,对于苹果来说他们也很清楚目前的现状,据他们自己说也在和美国总部沟通,当然结果如何,咱不得而知,但毕竟留个念想嘛,万一未来App Clip的入口放开了呢~

    iOS 14 的实际体验如何?

    8 个超赞的机器学习项目

    程序员因接外包被判坐牢 456 天!两万字长文揭露心酸真实经历...

    点????+在看,小编感恩大家❤️

    更多相关内容
  • App Clip Code Generator macOS应用程序,使用SwiftUI构建App Clip Code Generator macOS应用程序描述使用SwiftUI构建,支持macOS 11 Big Sur及以上导出到SVG和PNG使用自定义颜色或从Apple中选择模板自定义前景色和...
  • App Clip 的交互应该快速而集中,将功能限制为完成手头任务所需的功能,为应用程序保留高级或复杂功能。 请勿仅仅将 App Clip 用于营销目的。App Clip 应提供真正的价值并帮助人们完成任务,请勿将它们用作广告...

    image

    设计角度

    • 专注于基本功能。与 App Clip 的交互应该快速而集中,将功能限制为完成手头任务所需的功能,为应用程序保留高级或复杂功能。

    • 请勿仅仅将 App Clip 用于营销目的。App Clip 应提供真正的价值并帮助人们完成任务,请勿将它们用作广告服务或产品的手段。

    • 设计一个线性,易于使用且集中的用户界面。App Clip 不应包含标签栏,复杂的导航或设置。尽量减少屏幕和输入表格的数量。尽可能删除多余的信息并降低用户界面的复杂性。

    • 在启动时,显示 App Clip 中最相关的部分。跳过不必要的步骤,使人们立即进入最适合的界面。

    • 确保人们可以立即使用您的 App Clip。省略启动闪屏,永远不会让人等待启动。

    • 确保您的 App Clip 很小。您的 App Clip 越小,在个人设备上启动的速度就越快。在带宽有限的情况下,保持 App Clip 的小巧特别重要。尽可能减少不必要的代码并删除未使用的资源。避免下载其他数据,这样可以消除即时性。

    • 使 App Clip 可共享。当用户在 iMessage 应用程序中共享 App Clip 的链接时,收件人可以从 iMessage 应用程序中打开该 App Clip。

    • 轻松为服务或产品付款。输入付款信息可能是一个漫长且容易出错的任务。考虑支持 Apple Pay 以提供快速结帐,并使人们无需输入即可输入送货信息。

    image

    • 在人们可以从您的 App Clip 中受益之前,请避免要求人们创建帐户。创建帐户是一项复杂的任务,需要时间和精力。考虑不需要帐户,或考虑要求人们在完成任务后创建帐户。如果您的 App Clip 需要一个帐户来提供数据,请通过 Sign in with Apple。

    • 在您的应用程序中提供熟悉,专注的体验。当人们安装完整的应用程序时,它将替换设备上的 App Clip。从这一刻起,本应启动 App Clip 的调用将启动整个应用程序。确保您的应用程序为之前使用该 App Clip 的人提供了集中,熟悉的体验,例如,当人们从 App Clip 到完整应用时,他们不需要再次登录。

    保护隐私

    系统对 App Clip 施加了限制,以确保人们的隐私。例如,App Clip 无法执行后台操作。

    • 限制您存储和处理的数据量。如果您需要存储用户数据(例如,登录信息),请安全地存储。此外,不要依赖之前存储在设备上的数据,这不是安全的操作。系统可能会在设备启动的时候删除 App Clip ,并删除了它所有数据。如果您存储登录信息,请安全地将其存储在设备之外。

    • 考虑使用Apple登录。使用Apple登录可以安全地保留用户设备上的登录信息,并保护他们的隐私。

    • 提供一种安全的支付方式,尊重用户隐私。例如,考虑使用 Apple Pay。

    展示您的应用

    用户不可以管理 App Clip ,并且 App Clip 不会显示在主屏幕上。相反,系统会在一段时间后删除 App Clip。

    由于应用程序仍然是用户长期使用的最佳方式,因此系统可帮助用户发现并安装完整的应用程序:

    • 用户可以在 App Clip Card 上启动 app clip 或访问 App Store 上完整的应用程序。

    • 当用户首次启动 App Clip 时,系统会在屏幕顶部显示 app 的标记。与 App Clip Card 一样,该标记使用户可以访问 App Store 上的应用程序页面。

    此外,您可以在 App Clip 中显示一个叠加层,允许用户从 App Clip 中下载完整的应用程序。

    image

    请注意向他人推荐您的应用时该考虑到以下几点:

    • 要求人们安装完整的应用程序,请不要破坏用户体验。
    • 选择合适的时间来推荐您的应用。
    • 以非侵入性,礼貌的方式推荐您的应用。

    限制 Notifications

    App Clip 提供了在启动后最多8小时内安排和接收通知的选项,并有足够的时间跟进并完成大多数常见任务。使用时请注意以下几点:

    • 仅在确实需要时才请求允许长时间使用通知。

    • 确保通知的内容为用户所关心的。

    • 利用通知来帮助用户完成任务。

    为应用剪辑卡创建插图和文本

    系统提供的 App Clip Card 是人们与您的 app clip 的首次互动,因此请仔细考虑其插图和文本。以下为注意点:

    • 图像应清楚地传达应用的功能,支持的功能或内容.

    • 使用可帮助人们了解应用价值的图像,或相关业务或兴趣点的照片.

    • 插画上避免插入文字.

    • 遵守图像要求。使用不透明的3000px×2000px PNG或JPEG图像。

    • 使用简明的标题和副标题

    • 为您的 app clip 的操作按钮选择一个合适的动词。

    image


    感兴趣的朋友可以关注我的技术公众号,每周都有优质技术文章推送,微信扫一扫下方二维码即可关注:

    image

    展开全文
  • App Clip 模板 .sketch素材下载
  • 本文以实战经验图文超详细讲解如何用Xcode开发苹果轻应用(App Clip)包括生成轻App码以及注意事项和相关问题。 国内各大平台相继推出小程序、快应用,苹果在2020年的WWDC 开发者大会上发布了iOS14其中有一个新功能...

    本文以实战经验图文超详细讲解如何用Xcode开发苹果轻应用(App Clip)包括生成轻App码以及注意事项和相关问题。

    国内各大平台相继推出小程序、快应用,苹果在2020年的WWDC 开发者大会上发布了iOS14其中有一个新功能App Clips(轻 App),用户无需下载APP就可以体验APP的部分功能。

    先给大家看下我已上线苹果App Store的效果吧,需要注意的是这个轻App码必须用iOS 14.3或更高版本的苹果扫码器才能扫描出来,其他扫描工具都无法读取。另外,下载App前扫描轻App码打开的是轻App,下载App后打开的是App。

    首先需要说明的是轻App跟iMessage App、Apple Watch应用一样是嵌套在APP中的,也就是说它不是独立开发、部署的,它依赖并共享着APP,并且轻App是由指定URL触发启动的,实际上轻App码就是生成了指定的URL。

    官网给的教程App ClipsCreating App Clip CodesCreating an App Clip with Xcode等都很简单,网上很多资料也基本都是直接从官网翻译的,而且还存在各种翻译不到位!

    按照上面官网的Article,轻App解压后必须小于10m,可以在新建项目中创建轻App也可以在已有项目中添加轻App,下面就以在已有项目中添加轻App的方式来讲解创建轻App。

    接下来用Xcode创建轻App,通过“File”->“new”->“Target...”或者“Editor”->“Add Target...”,然后选“iOS”->“Application”->“App Clip”,需要注意的是Xcode版本太旧可能找不到这个“App Clip”:

    接下来还是那句话根据实际情况填写,要灵活运用、触类旁通不要只会照搬!不想产生太多没用的目录文件就别勾选“Use Core Data”和“Include Tests”:

    然后简单配置一下轻App,添加关联域名,logo,启动界面图文等:

    然后到开发者中心的“Certificates, Identifiers & Profiles”看一下“Associated Domains”有没有勾上,需要注意的是“App ID”和“Bundle ID”,App ID是之前主项目创建的,Bundle ID是刚刚创建轻App时Xcode自动生成的跟项目里的“Bundle Identifier”一致,后面配apple-app-site-association会用到这两个ID。

    这里简单改下ViewController,做个最简单的轻App,即直接用WKWebView嵌套我的网站。

    接下来可以到手机上测试了,没发布到App Store要想看到效果得在手机上先配个“Local Experiences”,手机连到Mac上后在“设置”下面有个“开发者”,也就是在“轻App”上面,然后拉到下面找到“Local Experiences”,然后点“Register Local Experiences...”,然后填写“URL PREFIX”、“BUNDLE ID”、“APP CLIP CARD”:

    把轻App运行到手机上,然后将上面手机上配的“URL PREFIX”生成二维码,用iOS 14.3或更高版本的苹果自带的扫码器扫描,即可弹出轻App卡:

    按照苹果官网的说法有5种方式打开轻App(Launch an App Clip):

    其中有两种我们是可以比较容易实现的,那就是扫码和Safari浏览器打开,扫描上面已经介绍没发布到App Store如何在手机上体验了,实际上等上架后可以通过扫描轻App码直接打开,而Safari浏览器打开则需要在服务器根目录配“.well-known/apple-app-site-association”,需要注意的是apple-app-site-association没有后缀内容如下,其中“App ID”、“Bundle ID”在上面有提到过:

    {
        "appclips": {
            "apps": ["App ID.Bundle ID"]
        }
    }

    另外还要在网页头部加上

    <meta name="apple-itunes-app" content="app-id=myAppStoreID, app-clip-bundle-id=appClipBundleID, affiliate-data=myAffiliateData, app-argument=myAppArgument">

    我这边加的是:

    <meta name="apple-itunes-app" content="app-id=Apple ID, app-clip-bundle-id=Bundle ID">

    但是,我不知道是不是因为我之前没有在主项目加入“Associated Domains”的原因,在Safari浏览器访问我的网站,在顶部Smart App Banner显示的是APP的横幅而不是轻App的(轻App图标外面有一圈虚线):

    这个得等下次更新版本到App Store才能验结果,这个也是苹果应用开发比较麻烦的地方,出问题不好找人调试,这个轻App还没有测试环境!

    下面讲一下怎么生成轻App码,首先要把项目上传到App Store Connect,不知道怎么上传的可以看我的另一篇文章《实战用Xcode打包iOS端APP并通过App Store Connect分发提交审核》。

    上传完二进制文件等构建完选了版本后就可以填轻App信息了,其中标题图像跟上面的App预览和截图一样必须固定尺寸,这里是1800x1200像素!

    在高级轻App体验下面有个“编辑高级体验”,点进来以后按照如下图5步添加轻App信息,其中第3步的“轻App体验网址(URL)”必须与上面“Associated Domains”配的一致:

    填写完轻App信息后就可以获取轻App码了,可设置不同背景色和前景色,还是那句话根据实际需求操作:

    在选择轻App码类型时有NFC和仅扫描两种供选择,其中NFC是要有NFC标签介质才能使用的,所以我这里直接选择仅扫描,比较有意思的是这两个选择不同,中间的logo也会显示不同,扫描显示相机,NFC显示手机。

    最后等审批下来发布到App Store后就可以扫码打开轻App了。

    当然你也可能遇到各种问题,比如,Xcode中的“Associated Domains”域名配置不对或者开发者后台的“Associated Domains”被你去掉勾选了,上面的apple-app-site-association配置不对,开发者后台的Identifiers跟你的“Bundle Identifier”不一致,iOS系统版本太低或没有用苹果自带扫码器扫描而无法读取轻App码,等等。

    好了,这一篇就先到这里了,记得关注公众号每天为你们发布各类有用信息,有问题可以通过APP、小程序评论留言或者在线客服找我帮忙。

    个人网站有更多原创文章,原文链接:https://www.xubingtao.cn?p=2932

    关注我的公众号每天为你们发布各类有用信息。

    展开全文
  • iOS - App Clip「苹果小程序」

    千次阅读 2020-09-23 13:41:13
    App Clips是什么? 官方对其的定义是—— App clips are a great way... 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

    App Clips是什么?

    在这里插入图片描述

    官方对其的定义是——

    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 的功能。」和微信小程序有点相似,也被一部分人称为「苹果小程序」。


    App Clips从哪里来?

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

    iMessage 的这个新功能时间上比小游戏早了近一年。
    iMessage app 通过社交关系解决了服务发现的问题,这也是 App Clips 的核心使命。
    从技术发展角度来看,App Clips 就是 iMessage app 的升级版本。它在聊天窗口发送能力的基础之上,增加了 NFC 近场打开、扫码打开、网页关联打开、地图 POI 打开等服务发现路径,基本上涵盖了实际生活中所有需要服务的场景。
    在这里插入图片描述


    产品定位:

    1. 用完即走

    在这里插入图片描述

    苹果对 Clip 的使用场景非常明确:在一个特定的情境里,用户可以快速的使用 app 的核心服务。
    坦率的说,很难说 Clip 的理念是苹果原创的,在产品的定位上和微信小程序如出一辙。尤其是微信小程序在国内已经完全普及了,微信小程序初始发布的时候也被苹果加了多条限制。其中一条就是小程序不能有虚拟商品支付功能。现在回头看苹果自己的 Clip 可以完美支持 apple pay,很难说苹果没有私心。

    2. 触手可及

    在这里插入图片描述

    Clip 使用一段 URL 标识自己,格式遵从 universal link。因为苹果对 Clip 的使用场景非常明确,所以在 Clip 的调起方式做了严格限制。Clip 的调用只能是用户主动要发起才能访问,所以不存在用户在某个 app 里不小心点了一个按钮,就跳转下载了 Clip。

    Clip 的发起入口有以下几种:
    • NFC
    • 二维码
    • Safari 中关联了 Clip 的网页
    • 苹果消息应用
    • Siri 附近建议和苹果地图

    NFC 和二维码的入口很容易理解,必须用户主动拿出手机靠近 NFC、打开相机扫描。苹果专属的 Clip 码生成工具在年底才会开放。
    在这里插入图片描述

    Safari 中发起和之前的 universal link 类似,在网站配置了关联的 Clip 信息后,会有一个 banner 提示打开应用。
    在这里插入图片描述
    因为 Clip 提交 app store 审核的信息里也会配置好相关的 url,因此如果在 message 里发了 clip 的链接,操作系统也会在应用里生成一个 Clip 的卡片,用户如果需要可以主动点击。
    在这里插入图片描述
    Siri 附近建议和苹果地图(在 connect 中可以配置 clip 的地理位置)。场景和前面的二维码类似,如果我在地图上看到一个商家,商家有提供服务的 Clip,我可以在地图或者 Siri 建议里直接打开 Clip。
    在这里插入图片描述
    再次总结一下 Clip 的入口限制:只能是用户主动发起才能访问。虽然 Clip 的入口是一段 universal link,在代码里的处理方式也和 universal link 一致,但是为了 Clip 不被滥用,Clip 的调起只能是操作系统调起。App 没有能力主动调起一个 Clip 程序。

    3. 无需安装、卸载

    因为 Clip 的大小被限制在了 10MB 以下,在当下的网络状态下,可以实现快速的打开。为了给用户使用非常轻松的感觉,在 UI 上不会体现“安装”这样的字眼,而是直接“打开”。预期的场景下用户打开 Clip 和打开一个网页类似。因此在用户的视角里就不存在软件的安装、卸载。

    Clip 的生命周期由操作系统全权接管。如果 Clip 用户一段时间后没有使用,操作系统就会自动清除掉 Clip,Clip 里存储的数据也会被一并清除。因此虽然 Clip 提供了存储的能力,但是程序不应该依赖存储的数据,只能把存储当做 cache 来使用,操作系统可能自动清除缓存的数据。


    横向比较:PWA、Instant Apps、微信小程序

    Instant Apps「谷歌小程序」

    18 年正式发布的 Android Instant apps 和 Clip 在技术上是最接近的。Instant apps 中文被翻成“免安装应用”,在体验上也是希望用户能够最低成本的使用上 app,让用户感受不到安装这个步骤。Instant apps 也可以通过 url 标识(deep link),如果在 chrome 里搜索到应用的网站,chrome 如果识别到域名下有关联应用,可以直接“打开”。消息中的链接也可以被识别。只是 Instant apps 发布的早,国外用户也没有使用二维码的习惯,所以入口上不支持二维码、NFC。

    两者的根本区别还是在定位上,Instant apps 提出的场景是提供一个 app 的试用版。因此场景是你已经到了 app 的下载页面,这个时候如果一个 app 几百兆你可能就放弃下载了,但是有一个极简的试用版,就会提高你使用 app 的可能。这个场景在游戏 app 里尤其明显,一方面高质量的游戏 app 体积比较大。另一方面,如果是一个付费下载的应用,有一个免费的试用版,也可以增加用户的下载可能。在苹果生态里很多应用会提供一个受限的免费 lite 版本也是一样的需求。

    但是 Instant apps 在国内没有产生任何影响。因为政策的原因,Google Play 不支持在国内市场使用。国内的安卓应用市场也是鱼龙混杂,对于 Instant apps 也估计也没有统一支持。另外国内的安卓生态也和欧美地区区别比较大,早期安卓市场上收费的应用很少,对于用户而言需要试用免费 app 的场景很少。另外大厂也可能会推出专门的急速版应用,安装后利用动态化技术下发代码,应用体积也可以控制在 10 MB 以内。

    Clip 则是非常明确的面向线下提供服务的场景,在应用能力上可以接入 sign in with apple,apple pay。这样一个全新的用户,可以很快速的使用线下服务并且进行注册、支付。用户体验会好的多。安卓因为国内生态的原因,各个安卓厂商没有统一的新用户可以快速注册的接口,也没有统一的支付接口,很难提供相匹敌的体验。如果开发者针对各个厂商单独开发,那成本上就不是“小程序”了。

    Progressive Web App(PWA)

    在这里插入图片描述

    Progressive Web App 是基于 web 的技术。在移动互联网兴起之后,大家的流量都转移到了移动设备上。然而在移动上的 web 体验并不好。于是 W3C 和谷歌就基于浏览器的能力,制定了一套协议,让 web app 可以拥有更多的 native 能力。

    PWA 不是特指某一项技术,而是应用了多项技术的 Web App。其核心技术包括 App Manifest、Service
    Worker、Web Push。

    PWA 相当于把小程序里的代码直接下载到了本地,有了独立的 app 入口。运行的时候基于浏览器的能力。但是对于用户感受和原生 app 一样。

    我个人对 PWA 技术很有好感,它的初衷有着初代互联网般的美好。希望底层有一套协议后,用户体验还是没有边界的互联网。然而时代已经变了。PWA 在中国基本上是凉了。

    PWA 从出生就带了硬伤,虽然谷歌希望有一套 web 标准可以运行在移动设备上,但是对于苹果的商业策略而言,这并不重要。因此 PWA 的一个协议,从制定出来,再到移动设备(iOS)上支持这个特性,几年就过去了。而且对于移动用户而言,可以拥有一个美好的 web app 并不是他们的痛点。

    总结起来 PWA 看着美好,但在落实中遇到了很多现实的问题,技术支持的不好,开发者就更没有动力在这个技术上做软件生态了。

    微信小程序

    前面提过在产品理念上小程序和 Clip 很相似,甚至说不定 Clip 是受了小程序的启发。在市场上,小程序是 Clip 的真正对手。

    小程序基于微信的 app,Clip 基于操作系统,因此在能力上 Clip 有优势。小程序的入口需要先打开微信,而 Clip 可以通过 NFC 靠近直接激活应用。对于开发者而言,Clip 可以直接获得很多原生的能力(比如 push),如果用户喜欢可以关联下载自己的原生应用。在小程序中,微信出于商业原因开发者不能直接跳转到自有 app,小程序的能力也依赖于微信提供的接口。

    对于从 Clip 关联主 app 苹果还挺重视的,提供了几个入口展示关联 app。

    首先在 Clip 的展示页就会显示:
    在这里插入图片描述

    每次使用 Clip 时也会有一个短暂的浮层展示:
    在这里插入图片描述

    开发者也可以自己通过 SKOverlay 来展示:
    在这里插入图片描述

    不过如果开发者没有自己的独立 app,那么也就只能选择小程序了。小程序发展到现在,场景也比最早提出的线下服务更加多了,反而类似 Instant apps,更像一个轻量级的 app。

    考虑到国内很多小程序的厂商都没有自己的独立 app,因此 Clip 对于这部分群体也并没有什么吸引力。不过对于线下服务类,尤其有支付场景的,Clip 在用户体验上会比小程序好一些。

    总结,Clip 的业务场景和小程序有一小部分是重叠的,小程序覆盖的场景还是更多一些。两者在大部分时候并不是互斥式的竞争关系,即便在一些场景下 Clip 有技术优势,商家也不会放弃小程序,因为还有很多安卓用户。还是看商家在某些场景里,是否愿意为用户多提供一种更好的交互方式。


    实现方式:native 代码、native 框架、native app 一样的分发

    在实现上,Clip 和原生的 app 使用一样的方式。在 UI 框架上同时支持 UIKit 和 SwiftUI。Clip 的定位和 watch app、app extension 类似,和 app 在同一个 project 里,是一个单独的 target。只是 Clip 并没有自己的专属 framework(其实有一个,但是主要包含的是一些特色 api),使用的框架和 app 一致,可以认为是一个精简版的原生 App。

    Clip 不能单独发布,必须关联一个 app。因此发布的流程和 app 和一样的,在 apple connect 上创建一个版本,和 app 一起提交审核。和 app 在技术上的最大区别只是大小限制在 10MB 以内,因为 Clip 的基础就是希望用户可以最迅速的被用户使用,如果体积大了就失去了产品的根本。


    对比原生 app 的技术限制

    虽然 Clip 可以直接使用 iOS framework,但是因为 Clip 的使用场景是新用户的初次、简短、当下(in-the-moment experience)的使用,相比原生 app 苹果还是进行了一些限制。

    App 不能访问用户的隐私信息:
    • 运动和健身数据
    • Apple Music 和多媒体文件
    • 通讯录、信息、照片、文件等数据

    不过为了能够提供给用户更加轻便的体验,通过专门为 Clip 设计了免申请的通知、定位权限。不过也有限制:免申请的通知只在 8 个小时内有效。位置只能获取一次。如果 app 需要重度使用这两类权限就还是和原来一样,可以弹窗申请。

    某些高级应用能力也会受限,需要在完整的应用中才能使用:
    • 不能请求追踪授权
    • 不能进行后台请求任务
    • 没在激活状态蓝牙连接会断开

    总体而言虽然有一些限制,但是这些限制的出发点是希望开发者关注 Clip 的正确使用场景。对于 Clip 所提倡的使用场景里,苹果提供的能力是完全够用的。


    App Clips 开发实战

    开发环境要求

    Xcode 12

    新建一个Target

    在这里插入图片描述
    在这里插入图片描述

    编写代码直接运行

    在这里插入图片描述
    在这里插入图片描述

    一些技术细节

    1. 服务器上:更新apple-app-site-association文件(增加app clip的apps key)
    {
      "appclips": {
        "apps": ["appskey.test.Clip"]
      }
    }
    
    1. app clip 的 target 添加 Associated Domain
      在这里插入图片描述

    2. 在开发时,可以通过设置 _XCAppClipURL 这个环境变量,并运行 app clip target 来“模拟”通过特定 URL 点击后的情况。
      在这里插入图片描述

    3. 可以建立一个共享 targets 的 Asset catalog 来共用图片资源。
      在这里插入图片描述

    4. 使用主工程里面的代码,Target MemberShip需要钩上 Clips这个Target。
      在这里插入图片描述

    5. 在主工程中做AppClips的特化逻辑
      在这里插入图片描述

    接着使用一下方式就可以区分代码是否是在AppClips生效

    #if APPCLIP
      // do somethings
    #endif
    
    1. 在 Clip 中申请的授权,在下载完整应用后会被同步到应用中。 通过 App Group Container 来共享 clip 和 app 的数据。
      在这里插入图片描述

    2. App Clip card
      Apple store connect中需要配置的有:
      主图片(png/jpg)、标题、副标题、定位相关、行为(open、view、play)
      在这里插入图片描述
      在这里插入图片描述在这里插入图片描述
      在这里插入图片描述在这里插入图片描述

    3. Clip 的 url 可以配置参数,在 App Store connect 中,可以针对指定的参数配置不一样的标题和图片。比如一家连锁咖啡店,可能不同的店你希望弹出的标题图片是不一样的,可以进行单独的配置。
      在这里插入图片描述
      在这里插入图片描述

    总结

    苹果给定义的 Clip 的关键词是:lightweight、native、fast、focused、in-the-moment experience。
    Clip 在特定的线下场景里有着相当好的用户体验。对于已经拥有独立 app 的公司来说,开发一个 clip 应用的成本并不高。对于小程序,Clips 的场景窄的多,两者并不是直接竞争关系。我更愿意看做是特定场景下,对于小程序原生能力不足的一种补充

    展开全文
  • App clipApp 应用程序的轻量级版本,可在用户需要的位置和时间提供某些功能。在 Xcode 中, App clip 是和你主应用程序共享代码和资源的附加 Target。App clip 还可以访问和 App 相同的 frameworks。例如,您的 ...
  • 苹果 App Clip 技术详解

    2020-07-23 10:24:00
    进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨没故事的卓同学 来源丨知识小集(zsxjtip) https://www.yuque.com/zhuofugui/rich/apple-clip-ji-shu-xiang-jie 苹果在 WWDC2020 上发布了 App Clip,有媒体...
  • App Clip是苹果公司在WWDC20开发者大会上发布的新功能,用户可以只访问应用程序的一小部分,而无需下载整个应用,被称为苹果小程序。本文主要介绍如何通过APICloud开发App Clip。 一 创建应用 在APICloud上创建App ...
  • App Clip介绍 App Clip应用程序剪辑是用户快速访问和体验您的应用程序所提供内容的一种好方法。App Clip只是您应用中的一小部分,可在需要时立即发现。 App Clip应用程序剪辑既快速又轻巧,因此用户可以快速打开它们...
  • 如果你在上班路上经过一家咖啡店想购买一杯咖啡,但发现排队下单付款的人很多,此刻你只需要使用 iPhone 自带的扫码工具扫描咖啡商店的 App Clip 二维码或 NFC 标签,就可以购买一杯咖啡,无需下载安装咖啡商店的 ...
  • 在 Xcode 工程中,你可以为你的 App 添加一个 app clip target, 利用 Xcode ,app clip 可以与你的 app 共享代码与资源,并可以编译,调试,运行在真机或者模拟器环境。但是,在实际使用过程中,开发者必须在自己的...
  • App Clips简介以及demo演示

    千次阅读 2020-07-20 20:29:31
    1、必须要有对应的appclip应该只是app的一个附属产品);//这与微信小程序不同 2、必须是iOS14系统; 3、可以用 Swift 或 Objective-C 语言; 2、开发过程中需要注意的点 1、这是一个独立的程序,并不依赖于...
  • iOS14 App Clip(轻App)

    千次阅读 2020-09-03 16:22:38
    App Clip 初探 iOS 14推出超轻量的App Clip,它为应用程序带来了新的工作方式
  • iOS App Clips学习笔记

    千次阅读 2020-07-12 20:57:51
    一、什么是App ClipApp Clip是一个App的轻量版,用来提供一些用户所需功能,我们可以把它看成苹果的小程序。它不需要下载就直接能打开。这样即可达到不下载完整版APP便可体验APP的部分功能,即用即走。 二、App ...
  • App Clips

    2020-08-18 13:14:31
    App Clips 是今年 WWDC20 大会的亮点之一,罗列几个开发者感兴趣的问题: -什么是 App Clips; -实际应用场景中是如何交互的; - 构建 App Clips 的有哪些前置条件; - 如何在已有项目中添加对 App Clips 的支持等一...
  • iOS14利用WebClip更换图标,做到无缝启动App Stargazers over time 目前已有功能如图: TODO List: ① 生成自定义桌面图标配置 (App Store搜索 + 图片 ) ② 根据iOS系统SF Symbols自定义Logo可调背景色和前景色以及...
  • 微信、百度、阿里这些大厂的小程序容器技术要么不公开,要么太重会接管底层都不是很合适,市面上能实现app跑小程序的也就FinClip 和 uniapp比较成熟。 FinClip 与 uni-app 二者有什么区别?又什么优劣势呢? 因此在...
  • Native App与 Web App 区别

    2018-03-29 14:58:11
    Native app 和Web App的区别:1. 偏交互的Native,偏浏览的Web: 交互指复杂操作,输入、选择什么的2. 已稳定的Native,试错中的Web: H5页面用来做低成本验证很好3. 访问硬件的Native,信息展示Web:指手机里的...
  • 项目采用的uni-app开发的,其中有一个自己写的滑块拼图验证组件,采用的是CSS3的clip-path属性,根据一段svg路径剪切出来的图形进行拼图。都上线正常运行一段时间了,突然有用户反馈出现了bug。剪切的图片失效了,...
  • 一篇真的很棒关于html5的Web App与Native App的技术分析 ! 自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联网界从此就多了一个新的名词-WebApp(意为基于...
  • 快速生成iOS APP全套icon简易实用工具,详细使用方法见压缩包里的readme文档
  • 在下载中打开Clip-App,一切准备就绪! 用法 这是使用Clip的方法。 主屏幕 在这里,您具有剪辑的主菜单。 让我们遍历每个部分。 剪辑历史限制 本部分使您最多可以编辑捕获的副本数。 清除剪贴板历史记录 本部分允许...
  • iOS APP 添加桌面快捷方式(webClip)

    千次阅读 2019-05-15 19:13:30
    因为产品稍微走灰色路线,需要防止苹果粑粑封锁账号,产品需要安装一个快速入口(一个桌面图标+url),防止APP不能使用之后,用户走丢。实现主要分为以下几步 步骤一、下载Apple Configurator 2 在appStore搜索下载...
  • App Store Connect 上设置 App Clip 卡片 在将包含你的应用程序和你的 App Clip 的构建交付给 App Store Connect 之后,App Clip 会在 App Store Connect 上进行显示,会看到一个新的“App Clip配置”模块。...
  • Uniapp整合ColorUI进行项目开发 构建工具: ...1.使用Hbuilder新建uni-app 项目 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wv3Ll65J-1618683034675)(file:///C:/Users/ADMI

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,377
精华内容 5,350
关键字:

app clip