Apple 于北京时间 2022 年 6 月 7 日举办了 WWDC2022,作为一名 Apple 开发者,不仅仅是为了保持技术敏感度,同时也希望在第一时间将新的内容呈现在大家眼前。本文对发布会内容做了整理归纳,并着重对 iOS 的新内容进行分析。希望这篇文章对大家有所帮助的同时也给我们的产品带来更多的可能性。
相对于 iOS15 来说,iOS16 的整体变化比较大,尤其是在我们看得见的地方,比如一些 UI 样式,交互行为和一些新增的功能。下面会按照 WWDC 的出厂顺序来介绍,其中包含了每个改动点的细节以及个人的理解和后面的展望。
新版的 Xcode 同样也跟新了相关的内容,帮助开发者提高开发效率。
在之前的版本中,如果方法函数过多超了一屏展示,随着滚动函数名不可见,而新版的 Xcode 提供了类似 TableViewHeader 的效果,让方法名和实现名字固定在顶部,方便随时查看和复制。对小屏还是比较友好的。
同样在使用初始化方法的时候如果是支持传入参数的初始化方法也会通过斜体来进行参数提示 (Swift 专属)
新版的 Xcode 优化了包体积,同时在进行安装的时候可以自定义需要哪些平台,需要哪些模拟器,笔者亲测相比之前的无脑把 AppleTV、Apple Watch、ipad 等都安装下来的情况来看,整个包体积减少了十几个 G 左右。对于小存储的 MacBook 是一个福音。
根据苹果的描述新版 Xcode 优化项目的编译速度, 得益于更强大的并行编译能力,项目构建速度提升至高可达 25%
。
同时单元测试的效率也提高了 30%
Xcode14 还支持输出编译期间每个阶段的耗时和详细信息,相比之前的只能通过控制台的名字描述要直观不少。
对于 LLDB,现在还可以看到执行的过程和信息,对于一些需要长时间跑的命令较为友好,类似于 --verbose
参数的含义
在新版的 Xcode 中除了 App 和系统的日志,同样支持 LLDB 的日志输出,当时在用 LLDB 调试的时候发生 Crash,便可以到相关路径中找到对应日志。
新版的 iOS 和 Watch OS 引入了新的开发者模式,原理和安卓的开发者模式类似,用苹果的话说是为了 开发者模式可防止人们无意中在其设备上安装可能有害的软件,并减少开发者专用功能所暴露的攻击媒介。
,对于普通人来说确实可以提高安全性,之前只要是加入了开发者账号的手机都可以从 Xcode 编译运行第三方的 App,或者按照企业证书的签名包,而不这些手机主人都是无感的,现在需要手机主人通过多重确认来打开此功能后才可以进行安装非 App Store
和 Testfilght
渠道的包。
但是这个对于开发者来说并不友好,首先是调试过程有会多增加一些步骤,而且在自动化测试方面,所有的手机都要先通过命令来打开开发者模式,并且根据苹果的说法,使用命令行进行开关要确保手机没有密码,否则会被拒绝运行。这里笔者也尝试在未打开 开发者模式
的情况下进行 Xcode 编译,确实会失败。
笔者预测该功能可能是为后续的第三方 App 市场做准备,因为现在虽然苹果不支持三方市场,但是普通用户还是可以通过一些三方网站安装重签包,同时他们并不知道这些包会带来潜在的危险,再加上欧盟一些反垄断政策的施压,所以苹果决定逐步开放三方应用市场,这应该就是第一步吧,先让用户意识到这样做可能会有一些危害。
无论是美国的《美国选择与创新法案》、还是欧盟的《数字市场法案》,都要求苹果在App Store之外为用户提供额外的应用下载渠道。现在看来,苹果方面可能已经认为改变欧盟与美国的态度已经不太可能了,那么既然支持侧载或许无法避免,那么让用户更难发现侧载功能的入口就成为了备选项。
重新修改了锁屏的样式,在优化了时间显示的字体的同时也在锁屏上提供了更多能力,展示更多的信息,并加入了一些新的交互样式,通过在锁屏界面长按来进入锁屏界面的编辑状态,这个动画效果有点类似安卓的编辑桌面的效果。
iOS16 的锁屏样式可以大致分为两类
再长远预测的话也可能后续会把该能力开放给第三方 App 来定制动态锁屏的图片,类型于现在的天气 App。比如 QQ 音乐的专辑封面,歌手的演唱动图等。目前动态背景只支持锁屏界面,解锁后进入桌面便会停止,估计是处于性能考虑,动态桌面的可能性不大,应该仅限于锁屏。
每次点亮
、 每次点击
、 每小时
、 每天
。<img src="https://tva1.sinaimg.cn/large/e6c9d24egy1h34311bz9nj20i212yaci.jpg" alt="image#268px #578px" style="zoom:50%;" /> <img src="https://tva1.sinaimg.cn/large/e6c9d24egy1h343248pg9j20mu18udmh.jpg" alt="image#292px #574px" style="zoom:43%;" />
<img src="https://tva1.sinaimg.cn/large/e6c9d24egy1h342tqqveuj20hw10wq5b.jpg" alt="image#189px #390px" style="zoom:50%;" />
iOS16 在锁屏界面可以展示更多的信息,其中就包括了锁屏小组件的加入。可以看到锁屏顶部分三个区域。
<img src="https://tva1.sinaimg.cn/large/e6c9d24egy1h3432d16hsj20ie13adie.jpg" alt="image#270px #577px" style="zoom:50%;" />
目前小组件的支持非常有限,目前只能将系统级的 App 的组件放上去,并不支持第三方 App,笔者尝试写了一个小组件,在主屏幕上可以正常添加,但是在锁定屏幕无法使用,猜测两个原因,一是目前是 Beta1 版可能还没有开放三方 App 的小组件,后续会陆续优化上来;第二个原因可能是处于性能或者其他因素考虑锁频组件和主屏组件不是一套逻辑,并不互通,但是通过查看 Xcode Beta 版本的代码,没有看到相关线索,不过 WWDC 也提到了,一些功能在后续会以 API 的形式像开发者提供。
<img src="https://tva1.sinaimg.cn/large/e6c9d24egy1h342tym8gtj20i613077h.jpg" alt="image#266px #571px" style="zoom:50%;" />
iOS16 调整了锁屏的样式,增加了锁屏界面所展示的信息和交互,所以希望锁屏界面不要被大量的通知遮挡,因此从新调整了通知推送的位置和出现动画。iOS16 之前:通知铺满锁屏,同时新的通知会插到到最上面。从上往下依次排列。iOS16 之后:锁屏区域被限定在底部一小块区域,新来的通知会插到第一层,但是默认只展示 3 个(叠放的形式),想看更多的话跟之前一样,上拉即可。任何新增的通知,包括常驻的音乐播放调都是从下往上增长,通知增长到一定高度就会开始折叠,这样的好处就是可以给锁屏留出空间,不至于被占满。
这样的修改确实可以让锁屏界面看的更整洁,且能让用户看到自己喜欢的锁屏画面,但是带来一个问题是用户想要查看通知内容时候需要多做一步上拉的操作,可能会稍微影响到 Push 的效果,比如点击率之类的指标。
上面说的苹果弱化了通知展示的样式,默认采用了折叠策略给锁屏留出了更大的空间,但是为了让用户实时的追踪想要的信息便推出了 Live Activities
。该控件可以常驻在锁屏界面,且能够实时刷更新的一个 UI 控件,
WWDC 上举了一个恰当的例子,比如我在追踪一场比赛,我需要知道实时的比分信息,但是又不方便拿着手机 app 观看直播,所以支持了 Live Activities
能力的 App 可以再锁屏界面来实时展示比赛信息,同时不需要解锁屏幕,还有优步的信息。
<img src="https://tva1.sinaimg.cn/large/e6c9d24egy1h34331lcr3j20wc0mwn1g.jpg" alt="image#321px #227px" style="zoom: 33%;" /><img src="https://tva1.sinaimg.cn/large/e6c9d24egy1h343375hvej20w60m0jva.jpg" alt="image#334px #228px" style="zoom: 35%;" />
这有点类似于锁屏的音乐播放条。同时 IOS16 针对音乐播放调界面也做 UI 优化,可以通过点击来实现封面图展开,同时背景设置为封面的魔法色,实现全屏沉浸式播放。但是笔者实测时候并未在 beta 版上成功使用该功能,SDK 中也没有看到相关代码。应该是在后续的版本开放更新。
<img src="https://tva1.sinaimg.cn/large/e6c9d24egy1h3435low8gj20hk0xe41j.jpg" alt="image#305px #580px" style="zoom:50%;" />
苹果去年推出了 专注模式
,但是专注模式的切换需要到控制中心,或者设置菜单中进行切换,隐藏较深,在这次的 iOS16 中,苹果将专注模式和锁定屏幕绑定起来,也就是实现专注模式和锁定屏幕 一一对应
的关系,一个锁屏对应一套锁屏组件和一个专注模式。
比如我下图中两个锁定屏幕分别对应两种模式,工作模式可以设置只接受某些 App 的推送(比如企业微信。WeSing 等),忽略某些不重要的通知。右边的游戏模式可以吧比较关注的电量信息放到锁屏,同时屏蔽通知避免游戏误操作。关键是在 iOS16 上两种模式的切换只要在锁屏上长按就可以进行更改,方便很多。
<img src="https://tva1.sinaimg.cn/large/e6c9d24egy1h3435tkt1ej20g20zgad1.jpg" alt="image#337px #744px" style="zoom:50%;" />
根据 WWDC 的描述,信息 App 带来的三个呼声最高的功能(应该是国外用户)
iOS15 中提到了 SharePlay
的能力,但是当时该能力必须基于 FaceTime。在 iOS16 中,该能力已经扩展的信息 App 中。笔者认为, SharePlay
的能力后续会形成套单独的 SDK(类似于 AirPlay 的 SDK),供第三方 App 接入,且不依赖 Facetim 和信息等系统 App。这对于音视频的 App 是有比较大的帮助,可以一起听歌、看视频。但是对于版权的管理要更为严格。
<img src="https://tva1.sinaimg.cn/large/e6c9d24egy1h37rhbuw6cj20i20lwabw.jpg" alt="image#389px #472px" style="zoom:50%;" />
苹果在很早的版本就支持语音输入,但是有一个弊端就是语音输入和键盘输入是两个独立的过程。而在 iOS16 中输入文本时,可在语音和触控这两种方式间无缝切换。无需中断听写,照样可用键盘打字、轻点文本栏、移动光标,或插入快速输入建议。
CoreML 是苹果早期发布的机型学习 API,通过他可训练一些人工智能相关的东西,其中 iOS15 推出的 LiveText
便是其中之一,他可以让我们对图片里面的一些文字做提取操作,在 iOS16 中,apple 增强了 LiveText
的能力,除了静态图片,还加入了视频帧的支持。 Live Text in Video
, 根据 WWDC 的描述,在播放视频的时候进行暂停,便可以提取当前帧上的文字内容。
选中后除了对文字进行复制操作外,iOS16 还提供了一些其他的快捷功能,其中包括汇率转换、翻译。更重要的是,实况文本的 API 已经开发给开发者使用,很快我们就能从 app 的照片和视频中提取相关的文字信息。
也是苹果之前基于机器学习提供的一个能力,可以检测照片中的物体,来识别是什么东西,在 iOS16 中,该能力被大幅加强,同时集成到了照片 App 中。用户可以打开一个照片,通过长按,把照片主体拖动出来到相应的 App 中。(拖出的图片为 png 图片)
该能力已经提供独立的 API,目前的 Apple 的 可立拍
App 里面将 Core ML 的能力运用到视频处理中,大家可以下载体验。
类似于国内的京东白条、蚂蚁花呗,不同的是 Apple pay later
只提供 4 周或者 6 周的分期还款,且无息。
通过常用的通讯类 app,安全地共享钱包 app 中的钥匙(智能家居钥匙,汽车钥匙等)。你可以决定钥匙的使用地点和时间,并能随时撤销。
可以查看票据,还能直接在钱包 app 中追踪你的 Apple Pay 订单。商户可以将订单的相续信息推送到消费者的钱包里
<img src="https://tva1.sinaimg.cn/large/e6c9d24egy1h3438erqufj20eg0skgn7.jpg" alt="image#304px #601px" style="zoom:50%;" />
国内高德百度已经玩了很久的功能,在导航的时候可以在起点和终点之间增加途经点。快车顺风车经常要用的功能。
<img src="https://tva1.sinaimg.cn/large/e6c9d24egy1h3438sf2egj20dy0t0n08.jpg" alt="image#297px #618px" style="zoom:50%;" />
可以查看公交出行的公交信息,包括公交时间,公交线路,公交价格等,同样也是国内使用了很久的能力。
可以在地图上看到附近的共享汽车、共享滑板车、共享单车等。同样也是国能很多共享单车厂商实现了的能力。
<img src="https://tva1.sinaimg.cn/large/e6c9d24egy1h3439b3meoj20hq0w076q.jpg" alt="image#307px #554px" style="zoom:50%;" />
Apple TV 和 Apple News 是两个不同的东西,之所以放到一起说是因为他们在 iOS16 中提供了相同的能力,都新增了体育板块,可以每周免费观看两场比赛,同时可以和 iPhone 联动,在锁屏上展示 Live Activities
家长控制的粒度更细,除了是否可以启动某个 App,还可以详细控制某个 App 的权限,比如禁止某个 App 访问摄像头权限,来避免儿童色情的问题。之后的开发者可能要在权限控制这里做额外的判断。除了允许、拒绝、未决定外,新增了家长控制的枚举条件。
接入了更多智能家居品牌。同时和其他主流品牌一起在 HomeKit 的基础上创立了新的智能家居协议标准 matter
。可以让智能家居跨平台协同操作。目前已经有一部分厂商支持了 matter
苹果也看出了现在汽车发展的趋势就是大屏幕,而且一辆车往往不止一块屏幕,所以在 iOS16 上,苹果针对这个现象重新优化了 CraePlay,新的 CarPlay 不仅仅可以通过车机来控制 iPhone,还可以通过 iPhone 来设置车机的主题。 支持新 CarPlay 的车型将于 2023 年下半年生产,前期支持的车型为
新一代 CarPlay 车载将出类拔萃的 iPhone 体验带入车内。它可为车内所有的驾驶员屏幕提供内容,包括仪表盘在内,让你的爱车和 iPhone 在体验上融为一体。车载的收音机、空调等功能可直接通过 CarPlay 车载来控制。而多种个性化选项,包括小组件以及精选的仪表盘设计,更带来独特的驾驶体验。
以上就是 WWDC 中关于 iOS 的相关内容,笔者第一时间更新了 iOS16 的 Beta 版本,但也遇到一些问题
文中提到得到一些功能更新虽然和国内开发者关系不大,但是毕竟都是业务层面的东西,底层都是通用的,毕竟技术无国界,也希望能将更新的技术用到自己的项目中,提高用户的产品体验,向用户展示出我们的专业能力和创新能力。希望这篇文章能对 iOS 开发者和产品同学在后续的技术、产品规划上有一定的帮助。