SwiftUI 新推出的 Observation 框架 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tsohgdivil
V2EX    Apple

SwiftUI 新推出的 Observation 框架

  •  
  •   tsohgdivil 2024-04-09 10:49:55 +08:00 2502 次点击
    这是一个创建于 550 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 ?
    16 条回复    2024-04-10 17:46:05 +08:00
    owen666
        1
    owen666  
       2024-04-09 10:58:01 +08:00   1
    1. 技术上不难。但是苹果并不希望你使用旧版,因为你使用旧版,就不会有升级硬件的冲动。
    2. 目前还没有使用。因为还需要支持旧版。大概明后年会支持。因为我一般只会支持最近的 2-3 个版本。
    这个和 ObservableObject 相比,优势是具有更细的粒度。可以减少不必要的界面刷新。
    iClass
        2
    iClass  
       2024-04-09 11:02:59 +08:00 via Android
    苹果的一切从 iOS 18.0 开始变得有意义。因为今年才真正有 Ai 。
    mycang
        3
    mycang  
       2024-04-09 11:40:19 +08:00
    @iClass 现在的 ai 通用场景其实并不好用。
    iClass
        4
    iClass  
       2024-04-09 11:48:03 +08:00 via Android
    今年是苹果公司拨乱反正的元年。期待明后年上线有益于人类的产品。Apple is exploring the development of personal home robots after ditching its electric vehicle project.
    ZeoKarl
        5
    ZeoKarl  
       2024-04-09 12:00:09 +08:00
    正常啊,苹果出的东西一直不怎么考虑向下兼容.一直是爱用用,不用滚的态度.
    iOCZS
        6
    iOCZS  
       2024-04-09 12:45:27 +08:00
    得益于 Swift 支持了宏,才有了这个能力。
    bucaibuer
        7
    bucaibuer  
       2024-04-09 12:46:29 +08:00
    Android 发开发一枚,自己个人项目 CareServer 就是用 SwiftUI + Observation 写的,感觉还可以,已经上架到 AppStore
    bucaibuer
        8
    bucaibuer  
       2024-04-09 12:47:38 +08:00
    @bucaibuer 搞错了,是 SwiftUI + ObservableObject
    musi
        9
    musi  
       2024-04-09 13:36:52 +08:00
    @iClass #2 国内的百度有跟没有有什么区别
    iClass
        10
    iClass  
       2024-04-09 13:46:49 +08:00 via Android
    @musi iOS 里面的 Siri 据说在国内是和百度绑定。目前很少用国区的软件和普通话 Siri 。因此并不在意。
    alexcding
        11
    alexcding  
       2024-04-09 19:41:45 +08:00 via iPad
    本来打算换的,结果发现不能和 Combine 联动了。暂时放弃。
    admin545
        12
    admin545  
       2024-04-09 21:24:11 +08:00
    终于统一了 state 和 stateobject ,environment 和 environmentobject
    rainbowmolly
        13
    rainbowmolly  
       2024-04-09 21:26:32 +08:00
    @alexcding 在前面加 bindable 也不行吗
    agagega
        14
    agagega  
       2024-04-10 00:11:50 +08:00
    连 Combine 这种几乎不依赖什么系统功能的库苹果都要搞成 iOS 13 可用,摆明了就是故意不兼容,除了 iOS 15 的 async/await 开发者民怨太大才往后兼容回了 13 。其实 SwiftUI 本身都能搞成开源的
    pc10300
        15
    pc10300  
       2024-04-10 11:25:27 +08:00
    今天尝试了一下,还有点搞不明白
    @AppStorage 这玩意是没法用了吗
    rrubick
        16
    rrubick  
       2024-04-10 17:46:05 +08:00
    去看下 App Store 上 Apple Store 的评价就知道了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2588 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 14:48 PVG 22:48 LAX 07:48 JFK 10:48
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86