混沌周刊 #3 | WWDC@2021

大家晚上好!相信即使没有看直播,你也知道苹果的新系统发布了。如果有朋友昨天熬夜跟了发布会,现在觉得值不值得呢?如果没有看的话,简单介绍:昨天凌晨是苹果WWDC 2021的Keynote,发布了iOS/iPadOS 15watchOS 8macOS 12 Monterey和其他软件内容,全程没有新硬件公布。

虽然很多人看完后认为乏善可陈,但品味一番后,还是有不少可总结的。把iPhone、iPad和MacBook都升级之后,总的感觉比之前的Developer Beta好很多,希望这是一个专注于修复问题的大版本。

BTW,在2013年OS X Mavericks发布上,Craig Federighi说以加州地名命名是 for the next decade,如果信守承诺,明年就是最后一次用加州旅游地名的macOS版本了。那么2023年会叫什么呢?

👶 用户可见的(有意思的)更新

  • iOS/iPadOS改变了通知显示的风格。包括macOS在内,现在软件通知具备不同等级,低等级的会被收集到一起。
  • iPadOS/macOS现在可以启用低电量模式了。在具备ProMotion功能的iPad上,开启低电量模式会限制最高刷新率至60Hz。
  • iOS/iPadOS加入了从相机实时捕捉选择文字并翻译的功能(A12以上机型),可以根据关键字在照片库中搜索带有特定文字的内容。
  • iOS/iPadOS照片库里能够显示图片的EXIF信息,包括拍摄设备、镜头、地点、拍摄时间、分辨率等。
  • iPadOS终于支持将Widget放到桌面了,也有了App资源库。
  • Siri现在将在本地处理用户语音。
  • iOS/iPadOS开始支持Google主导的HTTP/3标准。
  • FaceTime开始支持空间音频、人像模式和麦克风降噪。
  • 可以用FaceTime和朋友一起听一首歌或者看一个视频了。
  • 在听播客、浏览网页、看书时,可以快速查看朋友曾经用iMessage分享给你过的相关内容。
  • 在勿扰模式之外,加入了多种可自定义的模式,某个模式下只有特定App可以使用,也只有特定App的通知能收到。
  • 照片回忆功能可以加入Apple Music的歌了。
  • 在特定地区,Wallet支持数字钥匙、电子门票和电子身份证。
  • 可以查看应用对隐私权限的请求记录。
  • 天气应用重新设计,使用SwiftUI构建。
  • 一些地区地图引入3D模型,部分地区还会有基于AR的导航。
  • macOS也拥有「捷径」App了,Automator也并没有被抛弃。
  • Universal Control,用户可以用单个设备的键盘鼠标在不同设备之间拖动文件,并在这些设备上开展操作。
  • AirPods Pro/Max支持「查找」网络了,并且在连接Apple TV时,也支持空间音频功能。
  • 可以设置从朋友找回iCloud密码了。并且可以设置特定联系人,在你身后可以解锁你的iCloud内容。(真·阴间功能)
  • Safari在几个平台上界面大改:现在可以给标签页分组了,iPhone上把地址栏放到了下面,还可以像全面屏底部条一样左右滑动切换标签。
  • iCloud Keychain支持填充OTP二次验证码。
  • iOS/iPadOS的Safari也同样支持WebExtension扩展了!
  • iPadOS的多任务功能多了一些便于操作的改进,但没有根本改变。
  • 可以在iPad的Swift Playground写正经的iOS App了,当然仅限SwiftUI。
  • watchOS上的「呼吸」改名为「正念」了,还加入了「太极」训练。
  • 可以在不修改地区的前提下申请其他国家/地区的交通卡了。
  • 所有付费iCloud用户都可以得到iCloud+服务,包括HomeKit Secure Video、Hide my Email等功能。还有iCloud Private Relay,其本质类似VPN,所以在国内当然不可用。
  • iOS依旧支持到iPhone 6S,iPadOS依旧支持到iPad Air 2,macOS已经不再支持2014年及以前的MacBook系列(含Air和Pro)了。

🧑‍💻 如果你是开发者

  • SwiftUI如期迎来大量改进
    • 支持Search和Search Completion
    • 支持自定义列表左滑/右滑时显示的内容
    • 原生支持从URL显示图片的组件 AsyncImage,可惜还不支持缓存
    • Text支持展示Markdown内容
    • 列表和表单功能也得到了增强
  • 苹果承诺会持续为iOS 14提供安全性更新,可能会改变既有的更新策略。(下一代正式版推出后,上一版基本停止更新)对开发者而言,如果的确如此,这是噩耗。
  • TextKit迎来第二版,大量新类被引入。NSAttributedString 也有对应Swift中String的版本 AttributedString 了,并且它还支持从Markdown创建!
  • SF Symbols 3出来了,现在可以自定义图标中不同部分的颜色!
  • StoreKit 2也来了。
  • Xcode Cloud,苹果官方运营的持续集成服务。
  • Swift终于加入了Actor和Async特性,苹果在Keynote上对其重点介绍。这是个过了很久才落地的功能。(应该是考虑到ABI稳定性的关系)系统更新这么多吵架的,难道没有人指责Swift抄袭C#吗?(笑)
  • Shazam的语音识别能力被做成框架了,ShazamKit
  • Group Activities,前面介绍的系统FaceTime新功能实际上是基于这个框架实现的,它提供了「在端到端的多人群组通道里同步信息」的能力。也许在协同画板之外,还能做更多有趣的事情。
  • MusicKit,如果你想把Apple Music集成到App中。
  • 新的Screen Time API,让你将包括家长管控在内的多种能力集成至App中。大胆猜测开放这个API和当时苹果参与的反垄断听证会有关。
  • DocC,新的……文档组织形式?
  • 尽管本就支持App Store之外的应用安装形式,macOS还是引入了Test Flight.
  • MailKit,macOS的邮件应用支持扩展。我只在Thunderbird用过一些扩展。这个需求很强烈吗?

看下来今年又有不少新的API是只对Swift开放的。Swift在国外的开发者中已经非常流行,但国内的情况有时候的确像是……一潭死水。从SwiftUI和Playground等更新可以明显看出,苹果在努力降低开发App的门槛,把年轻一代果粉们都变成开发者的后备力量,然后盘活整个生态。这样做很好,但效果会如何呢?对那些不喜欢苹果生态的开发者而言,这些改进似乎没什么意义;但如果你是一个苹果爱好者,且一直对开发这个平台的App有强烈好奇心,现在可能是最好(比以前都更好)的时机。

今年的WWDC还有大量Session没有被这篇总结涵盖到。如果后续看到值得深入讨论或者有意思的,我会在Blog更新详细内容。

📜 其他有趣的文章

  • Why Rust strings seem hard》,类似Rust或Swift这类现代语言中字符串的操作异常复杂,是因为字符串本来就很复杂!如果你认为一个String是一组连续Character的集合,那么你就得意识到Character不是定长的这个事实。所以也不能用简单的方式随机访问某个字符,也不能轻松地移动下标。传统C中有关字符串的思维方式简单,是因为它处理的实际上是定长的Bytes而不是涉及编码的Characters. 而Rust的内存管理机制本就不简单。二者叠加,自然显得很复杂。(论String的六种写法)
  • The return of fancy tools》,追求漂亮的工具的确没什么问题。但如果强行设计一套系统,用工具处理日常小事,这仪式感是否也太重了些?
  • The end of retirement》,未来的人类可能越来越没法真正「退休」。现在大家想的却是趁早退休,觉得工作越来越没有意义。这种矛盾会激化吗?
  • 如何估算工时
  • HTML Sanitizer API (draft),没有被XSS注入过的人生是不完整的。
  • 有很多的语言/系统/工具都有「一切都是xx」的抽象,如UNIX的一切皆文件,或是一些语言的一切皆对象。这篇文章从「抽象的抽象」层次,讨论了这种设计的优缺点。

好吧,本周的内容就到这里。我们下周再见!Happy hacking.


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注