好纠结啊 Apple 官方提供的技术栈

62 天前
 tsohgdivil

出于兴趣在学习用 SwiftUI 写一个 Universal 的 App ,却在数据持久化+同步上纠结了。

数据持久化有很多方案,但是如果要同时满足 iCloud 多设备同步,似乎只有

  1. CoreData with CloudKit
  2. SwiftData

CoreData 看起来已经非常陈旧,本身也不是为了 SwiftUI 而生,而且那些 NS 的前缀和写法看着就头疼

SwiftData 看起来很不错,非常现代也很优雅。

但是好嘛,经典 **iOS 17.0+**。我觉得就算是出于兴趣的 App ,至少也要支持到 iOS16.0 吧。。。

所以现在就很纠结,如果用 CoreData ,不仅学起来,写起来起来感觉很麻烦,等到之后切换到 SwiftData 又要做改动。

如果用 SwiftData ,最低版本 iOS17.0

有没有什么既要有要的办法?

1769 次点击
所在节点    Apple
10 条回复
chiaf
62 天前
leconio
62 天前
supabase?
kera0a
62 天前
realm +icecream 自动 icloud 同步
ChengLuffy
62 天前
SwiftUI 支持过往系统版本很麻烦,如果手边没有 iOS 16 版本的真机,有可能遇到 bug 都无法复现
tsohgdivil
62 天前
@kera0a #3

icecream 我也看到了,但是好像 2 年没更新了啊
owen666
62 天前
Core Data 哪里陈旧了。倒是 Swift Data 由于是新开的坑,现在还有好多 bug ,就算是 iOS 17 也有好多功能处处是坑。而且 Core Data 和 Swift Data 本身就是平行的。并不是互相替代的关系。至少 5 年之内并不用担心 Core Data 没有了。这就像有了 SwiftUI ,但是 UIKit 还一直都会在是一样的。
ivyliner
62 天前
嗯, 你说的点确实.
但是我还是建议你用 CoreData, 因为写代码麻烦点直接还有解决方案. SwiftData 遇到的坑可能是在 iOS 17 上都爬不出来. 最后升级的话, CoreData 苹果也不可能废弃, 为啥要升级呢? 真的要用的话, 后续新项目用 SwiftData, 旧的项目相信我你也不想升级.
tsohgdivil
62 天前
@owen666 #6 说的有道理啊,再多说一点我直接 all in CoreData
SilenceLL
61 天前
@chiaf +1 mongo db realm
weeei
57 天前
试试 Codable + CloudKit ? https://github.com/insidegui/CloudKitCodable

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

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

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

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

© 2021 V2EX