SwiftUI 新推出的 Observation 框架

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