混沌周刊 #37 | Just another WWDC

周日晚上好,欢迎来到《混沌周刊》第37期。《混沌周刊》是一个试图从开发者角度为你带来这个世界上发生着什么,发生过什么,以及未来可能会发生什么的栏目,随缘更新。您可以通过首页的RSSTwitterTelegram频道和电子邮件等方式订阅。如果您觉得本周刊对自己有所帮助,请不吝推荐给其他人,多谢。


👨🏻‍💻 WWDC@2022

北京时间2022年6月7日,苹果的全球开发者大会如期开幕。你也许已经看过了无数媒体不同风格的文案,不过还是让我们来快速了解这场大会里你知道或不知道的。

  • 搭载M2芯片的新电脑最大内存支持24G,但依然只能外接一台显示器
  • iMessage可以修改和撤回,但撤回对旧系统用户依然无效,这很苹果
  • iOS 16的新锁屏界面,很难想象有人认为这不是来自于Apple Watch;iPadOS 16没有这个功能,从App资源库的经验看,应该会留在iPadOS 17上
  • 有人说iOS 16的锁屏组件是为iPhone 14的息屏显示准备的。这个猜测很合理——还记得iOS 11对信号条和通知中心的改变吗?
  • iPadOS和macOS终于拥有了「天气」App,这个逻辑和上一条其实是一样的:虽然iOS很早就有了这个App,但iOS 15的天气实际上是用SwiftUI重写的
  • 除了有诸多限制的iCloud共享相册外,现在我们还有了iCloud共享图库功能。这个功能非常有想象力的一点:当你在家庭成员附近时,拍摄的照片可以自动进入共享图库
  • 发布会视频中,Johny Srouji在实验室中讲M2芯片时,布景中没有出现任何Mac Pro;在以前的发布会中,实验室有一大批
  • iOS 16可以禁止应用读取剪贴板了,但这不是一个权限设置,而是每次都需要拒绝的通知。也许这只是测试版的临时设计
  • 在「部分iPhone型号」上,iOS 16可以支持横着解锁了
  • iOS 16可以显示已保存的Wi-Fi网络的密码
  • macOS的「台前调度」功能并不新,实际上2006年Mac OS X已经有类似功能,但最终未在正式版中出现;相似的还有初代Mac OS X发布时演示的单窗口模式,最后也没有进入到正式版。所以现在能用上通用控制……大概需要感恩
  • macOS新的「设置」App用Toggle控件取代了传统的Checkbox,自己违背了自己的人机交互设计准则。这个全新设计的设置界面遭到了不少批评,也有人自己尝试了更好的设计
  • 虽然我们也都知道iPad仅在M1机型(还要除开64G的iPad Air)上开放台前调度,有可耻的计划报废的意图,但iPad终究拥有了内存交换功能。从2015年iPad Pro发布算起,已经7年了
  • 所谓的Passkey其实就是Webauthn规范,你可以在这里测试你的浏览器是否支持Webauthn登录。之所以说它比传统的密码机制安全,是因为用的是非对称加密,不发送密钥自然就不怕泄露
  • 现在可以用DriverKit给iPad编写设备驱动
  • 除了之前的Xcode Cloud外,WeatherKit这个获取天气信息的API也是收费的,苹果的服务转型计划看来是全方位的
  • SwiftUI引入了一个新的Charts库,可以在不同设备上显示各种形式的图表。在写App之外,SwiftUI除了画图标、做动画,还有了新用途
  • Xcode默认不自带tvOS和watchOS SDK了,可以后续选择安装,安装包体积小了不少
  • SwiftUI此前的NavigationView被标记为deprecated,在新系统里由新的导航组件取代,Stack和SplitView混乱的关系终于成为历史。所以Navigation API目前处于一种奇怪的状态:只有Beta和Deprecated,没有中间状态
  • API文档网页全面更新了样式
  • Swift有了新的正则表达式API. 比其他语言正则表达式更强的是,正则表达式常量会被Swift编译器解析,语法是否合法以及有多少个捕获组,编译器有能力静态检查。你甚至可以用SwiftUI风格的Function Builder写正则表达式
  • iOS/iPadOS上终于有了正经的Table组件。此前有个笑话:iOS工程师的世界比普通人少一维,因为他们管ListView叫TableView1

每年WWDC往往也会有那么一两场和C++相关,今年也有一场Session讲解如何使用C++ 20中的Concept.

🌍 来自互联网

微软真的停止了对Internet Explorer的支持。曾经有网站记录它还有多久死,内容终于改为IE已死了多久了。

GitHub宣布,在2023年末前,所有在GitHub上贡献代码的人都必须启用两步验证。Ruby社区的软件包托管网站RubyGems.org也宣布,会强制要求下载量前100的Gem维护者启用两步验证,并且这个要求范围将会越来越大。我大概是第一个在RubyGems.org启用两步验证的账号,因为这个功能是我实现的。

除此之外,GitHub还宣布,Atom项目的开发将正式终止

Telegram宣布新的订阅服务,每月4.99美元,包括去掉广告和更大的上传容量等,不过还没有防骚扰功能。

Mozilla发布了一个Firefox的本地翻译扩展。可惜的是目前还不支持中日韩文,主要是一些欧洲语言。考虑到这个项目是欧盟资助的,所以也合理。

MDN也推出了付费订阅项目MDN Plus,功能用处不大,性质更接近于付费支持。

ECMAScript也有静态类型标注的提案了。目前的设计还是让引擎将类型标注视为某种注释,类型信息并不会参与到实际的优化执行中。

Uber工程师讲述,为什么他们会使用Zig这项远未发布正式版的技术。实际上,他们完全没有使用Zig语言本身,而只是用到了Zig中很有用的一部分——C/C++交叉编译工具链。

Asahi Linux的开发者此前指出,macOS上fsync函数的默认行为和Linux不一样,它并不会等到缓存真正写入磁盘再返回,这使得macOS在SSD速度上有作弊嫌疑。作为一种回应,这篇文章解释了这个函数的行为,以及为什么该文作者认为这个行为并不算作弊。

我一直在使用的写作软件iA Writer发布6.0版本,最大的更新之一在于加入了流行的「双向链接」。旧版本用户可以免费升级。


本期的《混沌周刊》就到这里。如果对本刊感兴趣或有任何建议,欢迎在评论区里留言,以及分享给更多的朋友,谢谢!

1 在UIKit API里,大众理解的ListView实际上叫UITableView


发表回复

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