SwiftUI 问世七年了,为什么开发者还在骂它? 文章

开源中国2026-08-03NEWSzh作者:

详细信息

来源站点
开源中国
作者
文章类型
NEWS
语言
zh
发布日期
2026-08-03

摘要

Yakov Manshin 发了一期长达 40 分钟的 YouTube 视频,标题是"SwiftUI 七年后:一个平庸的故事"。视频核心观点很简单:SwiftUI 发布七年了,仍然像一个永久公测版。 Manshin 从数据流、布局系统、API 稳定性、性能、跨平台五个维度逐一批判了 SwiftUI。最让人印象深刻的一个论据是:苹果官方的 SwiftUI 教程项目 Landmarks,用最新 Xcode 在最新 macOS 上构建运行,出来的效果是坏的——侧边栏按钮大小不一,界面错位。他说这个问题"两年前就发现了,至今没变"。 数据流方面,Manshin 指出 SwiftUI 的属性包装器演进史就是一个不断修补的历史:从 @State、@Binding、ObservedObject,到 Observation 框架和 @Observable 宏,每次迭代都在试图解决上一个方案带来的性能灾难。他的原话是:"SwiftUI 的响应式是一个黑盒,你永远没法确定一个视图会更新多少次,以及它为什么会更新。" 布局系统则被形容为"建筑在尺寸协商理念上,听起来在 keynote 里很合理,但当你试图做一个浮动视图或自定义侧边栏时,就像噩梦"。最终你不得不把所有东西包进 GeometryReader——"这是终极的认输,一旦用了它,声明式的优势就全部消失了,你得手动计算坐标,比 Auto Layout 还要啰嗦"。 性能对比更是直接。他用自己的 playground app 做了 UIKit vs SwiftUI 的图片网格滚动对比测试,在旧款 iPhone 上运行,SwiftUI 版本"明显不够流畅"。他的结论也很尖锐:"如果你需要一个 M5 Pro Max 超级芯片才能在 SwiftUI 里流畅显示几张 JPEG,那整个架构就有严重问题。" Hacker News 上的讨论分为几派。支持 Manshin 的人补充了更多例证:有人指出 Apple Music 的队列编辑 bug 存在多年,Settings 应用在 iPad 上显示崩溃报告半年未修复,Logic Pro 甚至出现本地化缺失。一位开发者评论说:"SwiftUI 让简单的事情更简单,让难的事情更难。它是个新手陷阱。" 争议最激烈的是对苹果整体软件质量的判断。