完成 Liquid Glass 的适配了吗? - 肘子的 Swift 周报 #102
明天 iOS 26 就要正式发布了,必然会有大批用户第一时间升级,体验全新的 Liquid Glass 设计语言。相比往年,今年的适配工作量明显更大——尤其对于交互复杂的应用,可能会遇到许多意想不到的问题。
明天 iOS 26 就要正式发布了,必然会有大批用户第一时间升级,体验全新的 Liquid Glass 设计语言。相比往年,今年的适配工作量明显更大——尤其对于交互复杂的应用,可能会遇到许多意想不到的问题。
谷歌宣布从 2026 年 9 月起,将 Play 商店的开发者验证要求扩展到所有 Android 应用安装方式,这从根本上改变了该平台的开放分发模式。这项政策要求所有在 Google Play 之外分发应用的开发者必须向谷歌注册、提供政府身份证明并支付费用。该政策将首先在巴西、印度尼西亚、新加坡和泰国实施,2027 年扩展至全球。这代表着 Android 自诞生以来对其开放生态系统原则的最重大背离。
尽管 Swift 提供严格并发检查已有一段时间,但许多苹果官方 API 仍未对此进行充分适配,这种情况可能还会持续相当长的时间。随着 Swift 6 的逐步普及,这个问题变得愈发突出:开发者一方面希望享受 Swift 编译器带来的并发安全保障,另一方面又对如何让代码满足编译要求感到困惑。本文将通过一个 NSTextAttachmentViewProvider 的实现案例,介绍 MainActor.assumeIsolated 在特定场景下的妙用。
一转眼,周报已经来到了第 100 期。回想 2023 年 10 月第一期时,我并没有把握自己能坚持这么久。但过去两年,通过持续创作,我收获了许多。
不久前在北京举办的世界人形机器人运动会上,出现了许多令人忍俊不禁的场景:机器人对着空气挥拳、跑步时左摇右摆、踢球时相互碰撞后集体倒地。尽管这些画面看起来颇为滑稽,但回顾过去几年人形机器人的发展历程就会发现,即便当前的产品仍存在诸多不足,其进步却是惊人的。按照这样的发展速度,也许在十年甚至更短的时间内,人形机器人就将走进我们的日常生活,满足各种实际需求。
巴顿已经 13 岁了。尽管大多数时候他都表现出远超同龄狗狗的活力和状态,但随着年龄增长,各种健康问题也随之而来。不久前,巴顿被检查出肺动脉高压,医生给出了针对性的治疗方案。就在我为治疗似乎初见成效而欣慰时,上周一下午,巴顿突然无法站立,大量流口水,表现出明显的心脏不适。
上周六,苹果正式永久性关闭了位于中国大连的一家 Apple Store 零售店,这是苹果首次在中国关闭直营店。该店于 2015 年开业,距今正好十年。消息传出后,网络上出现了不少相关报道,其中一些将此事解读为苹果在中国经营状况的某种信号。由于该店正好位于我所在的城市,我对这个事件有一些实地了解,想分享一些不同的观察角度。
Swift 的并发模型引入了众多关键字,其中一些在命名和用途上颇为相似,容易让开发者感到困惑。本文将对 Swift 并发中与跨隔离域传递相关的几个关键字:Sendable、@unchecked Sendable、@Sendable、sending 和 nonsending 进行梳理,帮助大家理解它们各自的作用和使用场景。
尽管仍有一些小问题,但我对 Xcode 26 之前几个测试版本的印象还是挺不错的。无论是焕然一新的视觉体验,还是为 AI 生成代码提供的更清晰标注,都让人眼前一亮。然而,在最近更新到 beta 4 后,这些好感却因为 Preview 的频繁崩溃而迅速消散。
尽管 Swift 严格并发检查的初衷是好的,但对于很多单线程场景来说,却明显增加了开发者的负担。开发者不得不在代码中添加一些并不必要的 Sendable、@MainActor 等声明,只为了满足编译器的要求。Swift 6.2 新增的 Default Actor Isolation 功能将极大地改善这种状况,减少不必要的样板代码。本文将对 Default Actor Isolation 功能进行介绍,并指出在使用该功能后需要注意的一些情况。
几天前,Blender 基金会宣布正在开发用于 iPad Pro 运行的原生版本,并针对 Apple Pencil 进行了专门优化。初版将专注于基础对象操作和雕刻功能,后续版本会加入 Grease Pencil 和故事板功能。特别值得注意的是,这并非某些专业软件那样的 iPadOS 功能阉割版,而是一个具备完整功能的 Blender iPadOS 原生应用。
相比一些开源框架,Core Data 和 SwiftData 虽然有苹果的官方背书,但它们的“黑盒”特性在出现异常时常令开发者束手无策,难以及时定位问题并找到有效解决方案。本文记录了一次因 Core Data 数据模型迁移导致的应用启动超时事件,分享解决方案,并深入剖析背后的成因。
上周我去影院看了苹果出品的电影《F1》,体验真的超乎预期。虽然剧情略显简单,但影片营造出的赛车沉浸感和观赛体验已经远超票价。当布拉德·皮特驾驶着 APXGP 赛车在银石赛道上疾驰时,那引擎的咆哮通过 IMAX 音响系统传来的震撼感,让我仿佛回到了 20 多年前,在电视机前为舒马赫和阿隆索激烈对决而热血沸腾的日子。
新的 Liquid Glass 风格发布之后,苹果随即提供了用于制作符合 Liquid Glass 标准图标的 Icon Composer。从苹果的介绍来看,Icon Composer 使用非常简单明了,基本上分层把图片放进去即可,但实际使用上还是有一些细节需要小心。Megabits 以他的应用图标为例,简要的介绍一下使用过程中遇到的问题。
安装 iOS 26 beta 3 后,用户会很快发现 Liquid Glass 的效果不再像前两个测试版那样通透。这种在短时间内对 UI 的显著调整再次证明了开发者测试版的价值——让耐受力更高的专业用户率先体验并反馈,对于服务数十亿用户的苹果来说,是至关重要且不可或缺的环节。
Text 在 SwiftUI 中大量被使用,与 UIKit/AppKit 中对应的组件相比,Text 无需配置,开箱即用,但这也意味着开发者丧失了更多对其的控制能力。在本文中,我们将通过一个实际案例来展示,如何用 SwiftUI 的方式来完成一些看似"不可能"的任务:在一堆给定的视图中,找出第一个文本未被截断的,并以此作为需求尺寸。
从 6 月中开始,我所在的城市也迎来了罕见的高温天气。尽管相较于动辄 35-40 多摄氏度的其他地区,30-31 摄氏度在数字上看起来并不夸张,但对于习惯了 20 几度的我来说,这种温度已经很难熬了。
转眼间,我使用 Claude Code 已经整整一个月了。这段时间里,它迅速成为了开发者们的新宠,关于 Claude Code 的讨论充斥着我的社交媒体时间线。恰好有网友在 Discord 上让我聊聊 Claude Code,借此机会,我想梳理一下这段时间的使用感受,以及过去两年中 AI 为我的开发工作带来的便利与思考。
继 2025 年 2 月 Swift 社区论坛发布关于启动 Android Community Workgroup 的消息数月后,Swift.org 于上周正式宣布成立官方 Android 工作组。这标志着由官方主导的 Swift 安卓平台支持正式启动,未来 Swift 开发者有望获得更完善的安卓适配工具链与开发体验。