SwiftData 开发中 App Architecture 最佳实践

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

SwiftData 开发中 App Architecture 最佳实践

在苹果在 2023 年推出 SwiftData 之前,MVVM 架构一直是 Swift 开发中最常用的框架——这很符合 Swift 语言的特性,并经过了大量的实践验证。

但 SwiftData 的推出,让使用 MVVM 框架变得困难,

  • MVVM 推荐将视图逻辑与业务逻辑分离,通过专门的 ViewModel 层来管理状态和处理数据。
  • SwiftData 推荐在 View 组件中直接操作数据,使用 @Query 查询数据并在 View 中显示,使用 modelContext 来增加或更新数据 —— 这和 MVVM 架构提倡的理念完全相反。

如果你强行使用 ViewModel 层操作 SwiftData,会发现这很痛苦。我在这上面纠结了超过 200 个小时,最后学到的经验是:不要和框架对抗,使用 Apple 推荐的方式做事。

因此,既然传统的 MVVM 框架不再完全适用,我们就需要做一些适当的改变。Apple 没有告诉我们应当怎么做,但通过研究 Apple 示例项目代码和我自己的开发实践,总结了一些方法和原则。

2025 年 2 月 11 日