阅读视图

发现新文章,点击刷新页面。

Core Data 迁移事故复盘:那些被忽视的隐藏陷阱

相比一些开源框架,Core Data 和 SwiftData 虽然有苹果的官方背书,但它们的“黑盒”特性在出现异常时常令开发者束手无策,难以及时定位问题并找到有效解决方案。本文记录了一次因 Core Data 数据模型迁移导致的应用启动超时事件,分享解决方案,并深入剖析背后的成因。

F1:电影很好看,赛事很挣钱 - 肘子的 Swift 周报 #94

上周我去影院看了苹果出品的电影《F1》,体验真的超乎预期。虽然剧情略显简单,但影片营造出的赛车沉浸感和观赛体验已经远超票价。当布拉德·皮特驾驶着 APXGP 赛车在银石赛道上疾驰时,那引擎的咆哮通过 IMAX 音响系统传来的震撼感,让我仿佛回到了 20 多年前,在电视机前为舒马赫和阿隆索激烈对决而热血沸腾的日子。

Icon Composer 见招拆招

新的 Liquid Glass 风格发布之后,苹果随即提供了用于制作符合 Liquid Glass 标准图标的 Icon Composer。从苹果的介绍来看,Icon Composer 使用非常简单明了,基本上分层把图片放进去即可,但实际使用上还是有一些细节需要小心。Megabits 以他的应用图标为例,简要的介绍一下使用过程中遇到的问题。

变暗的 Liquid Glass 和消失的 Apple Intelligence - 肘子的 Swift 周报 #93

安装 iOS 26 beta 3 后,用户会很快发现 Liquid Glass 的效果不再像前两个测试版那样通透。这种在短时间内对 UI 的显著调整再次证明了开发者测试版的价值——让耐受力更高的专业用户率先体验并反馈,对于服务数十亿用户的苹果来说,是至关重要且不可或缺的环节。

在 SwiftUI 中,如何判断 Text 是否被截断?

Text 在 SwiftUI 中大量被使用,与 UIKit/AppKit 中对应的组件相比,Text 无需配置,开箱即用,但这也意味着开发者丧失了更多对其的控制能力。在本文中,我们将通过一个实际案例来展示,如何用 SwiftUI 的方式来完成一些看似"不可能"的任务:在一堆给定的视图中,找出第一个文本未被截断的,并以此作为需求尺寸。

与 AI 共舞:我的 Claude Code 一月谈

转眼间,我使用 Claude Code 已经整整一个月了。这段时间里,它迅速成为了开发者们的新宠,关于 Claude Code 的讨论充斥着我的社交媒体时间线。恰好有网友在 Discord 上让我聊聊 Claude Code,借此机会,我想梳理一下这段时间的使用感受,以及过去两年中 AI 为我的开发工作带来的便利与思考。

Swift 的多平台策略,需要我们大家一起来建设 - 肘子的 Swift 周报 #91

继 2025 年 2 月 Swift 社区论坛发布关于启动 Android Community Workgroup 的消息数月后,Swift.org 于上周正式宣布成立官方 Android 工作组。这标志着由官方主导的 Swift 安卓平台支持正式启动,未来 Swift 开发者有望获得更完善的安卓适配工具链与开发体验。

NotificationCenter.Message:Swift 6.2 并发安全通知的全新体验

NotificationCenter 作为 iOS 开发中的经典组件,为开发者提供了灵活的广播——订阅机制。然而,随着 Swift 并发模型的不断演进,传统基于字符串标识和 userInfo 字典的通知方式暴露出了诸多问题。为了彻底解决这些痛点,Swift 6.2 在 Foundation 中引入了全新的并发安全通知协议。它充分利用 Swift 的类型系统和并发隔离特性,让消息的发布与订阅在编译期就能得到验证,从根本上杜绝了“线程冲突”和“数据类型错误”等常见问题。

失去时才会觉得可贵 - 肘子的 Swift 周报 #90

在 WWDC25 的 Bring your SceneKit project to RealityKit Session 中,Apple 正式宣布 SceneKit 将“只修复关键 bug,不再增加新特性”,官方文档也将其标注为弃用状态,建议开发者迁移至 RealityKit。尽管这一天的到来早在许多开发者的预料之中,但当官方正式宣布时,仍免不了让人唏嘘感慨。

探索 SwiftUI ZStack 中的 layoutPriority 奥秘

在 SwiftUI 的布局体系中,layoutPriority() 这一修饰器看似并不起眼,却在关键时刻能左右视图的尺寸分配。大多数开发者都了解它在 VStack 和 HStack 中为子视图争取更多空间的“魔法”能力——优先级越高,越能从拥挤的布局中脱颖而出。但你是否注意过,layoutPriority 在 ZStack 中也能大显身手?但它的运作机制与 VStack/HStack 完全不同。本篇文章将带你深入剖析这一鲜为人知的特性,演示如何在 ZStack 中应用布局优先级。

WWDC 2025:回归务实的一年 - 肘子的 Swift 周报 #89

WWDC 2025 已经落下帷幕。在过去一周中,苹果推出了众多全新框架和 API,并展示了在未来几年将产生深远影响的 Liquid Glass 视觉风格。相信不少开发者在看到一些期盼已久的功能或 API 只能在最新系统版本中使用时,难免萌生出将项目最低支持版本直接提升至 26 的冲动。但冷静下来后,大多数开发者仍将不得不接受“数年内无法使用这些新特性”的现实。

相机类 App Swift 6 重构实战 - SLIT_STUDIO 开发日志

尽管 Swift 6 已发布一段时间,不少苹果第一方框架仍未完成适配,导致部分依赖这些框架的开发者在迁移过程中遇到阻碍。Megabits 在开发 SLIT_STUDIO 相机 App 时也面临类似挑战,但他选择迎难而上。本文将介绍他如何通过引入 actor、GlobalActor 以及职责清晰的组件(如 Recorder 和 CaptureManageObject),应对 Swift 6 的线程安全变更,解决 AVFoundation 与 Swift Concurrency 的兼容性问题,同时提升代码结构与安全性,避免依赖 @preconcurrency 和 nonisolated 等临时方案。

❌