SwiftData 开发中 App Architecture 最佳实践
了解使用 SwiftData 和 SwiftUI 开发 iOS 应用的应用架构最佳实践。

在苹果在 2023 年推出 SwiftData 之前,MVVM 架构一直是 Swift 开发中最常用的框架——这很符合 Swift 语言的特性,并经过了大量的实践验证。
但 SwiftData 的推出,让使用 MVVM 框架变得困难,
- MVVM 推荐将视图逻辑与业务逻辑分离,通过专门的 ViewModel 层来管理状态和处理数据。
- SwiftData 推荐在 View 组件中直接操作数据,使用
@Query
查询数据并在 View 中显示,使用modelContext
来增加或更新数据 —— 这和 MVVM 架构提倡的理念完全相反。
如果你强行使用 ViewModel 层操作 SwiftData,会发现这很痛苦。我在这上面纠结了超过 200 个小时,最后学到的经验是:不要和框架对抗,使用 Apple 推荐的方式做事。
因此,既然传统的 MVVM 框架不再完全适用,我们就需要做一些适当的改变。Apple 没有告诉我们应当怎么做,但通过研究 Apple 示例项目代码和我自己的开发实践,总结了一些方法和原则。
