SwiftUI 新推出的 Observation 框架

227 天前
 tsohgdivil

WWDC 2023 上推出的 Observation 框架

使用 @Observable @State 和 @Bindable 三个宏来定义 Swift 的数据模型

目的是简化代码及优化性能。

https://developer.apple.com/documentation/swiftui/migrating-from-the-observable-object-protocol-to-the-observable-macro

但是我一看,好家伙最低支持版本 iOS 17.0

所以这里就有两个问题:

  1. 为什么苹果不做向后兼容?这个技术上很难吗?
  2. 有着如此高的版本要求,你会使用 Observation 框架吗?还是说保持原本的 ObservableObject ?
1964 次点击
所在节点    Apple
16 条回复
owen666
227 天前
1. 技术上不难。但是苹果并不希望你使用旧版,因为你使用旧版,就不会有升级硬件的冲动。
2. 目前还没有使用。因为还需要支持旧版。大概明后年会支持。因为我一般只会支持最近的 2-3 个版本。
这个和 ObservableObject 相比,优势是具有更细的粒度。可以减少不必要的界面刷新。
iClass
227 天前
苹果的一切从 iOS 18.0 开始变得有意义。因为今年才真正有 Ai 。
mycang
227 天前
@iClass 现在的 ai 通用场景其实并不好用。
iClass
227 天前
今年是苹果公司拨乱反正的元年。期待明后年上线有益于人类的产品。Apple is exploring the development of personal home robots after ditching its electric vehicle project.
nieyujiang
227 天前
正常啊,苹果出的东西一直不怎么考虑向下兼容.一直是爱用用,不用滚的态度.
iOCZS
227 天前
得益于 Swift 支持了宏,才有了这个能力。
bucaibuer
227 天前
Android 发开发一枚,自己个人项目 CareServer 就是用 SwiftUI + Observation 写的,感觉还可以,已经上架到 AppStore
bucaibuer
227 天前
@bucaibuer 搞错了,是 SwiftUI + ObservableObject
musi
226 天前
@iClass #2 国内的百度有跟没有有什么区别
iClass
226 天前
@musi iOS 里面的 Siri 据说在国内是和百度绑定。目前很少用国区的软件和普通话 Siri 。因此并不在意。
alexcding
226 天前
本来打算换的,结果发现不能和 Combine 联动了。暂时放弃。
admin545
226 天前
终于统一了 state 和 stateobject ,environment 和 environmentobject
rainbowmolly
226 天前
@alexcding 在前面加 bindable 也不行吗
agagega
226 天前
连 Combine 这种几乎不依赖什么系统功能的库苹果都要搞成 iOS 13 可用,摆明了就是故意不兼容,除了 iOS 15 的 async/await 开发者民怨太大才往后兼容回了 13 。其实 SwiftUI 本身都能搞成开源的
pc10300
226 天前
今天尝试了一下,还有点搞不明白
@AppStorage 这玩意是没法用了吗
magic3584
225 天前
去看下 App Store 上 Apple Store 的评价就知道了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1030884

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX