出于兴趣在学习用 SwiftUI 写一个 Universal 的 App ,却在数据持久化+同步上纠结了。
数据持久化有很多方案,但是如果要同时满足 iCloud 多设备同步,似乎只有
CoreData 看起来已经非常陈旧,本身也不是为了 SwiftUI 而生,而且那些 NS 的前缀和写法看着就头疼
SwiftData 看起来很不错,非常现代也很优雅。
但是好嘛,经典 **iOS 17.0+**。我觉得就算是出于兴趣的 App ,至少也要支持到 iOS16.0 吧。。。
所以现在就很纠结,如果用 CoreData ,不仅学起来,写起来起来感觉很麻烦,等到之后切换到 SwiftData 又要做改动。
如果用 SwiftData ,最低版本 iOS17.0
有没有什么既要有要的办法?
1
chiaf 246 天前
|
2
leconio 246 天前 via iPhone
supabase?
|
3
kera0a 246 天前 via iPhone
realm +icecream 自动 icloud 同步
|
4
ChengLuffy 246 天前
SwiftUI 支持过往系统版本很麻烦,如果手边没有 iOS 16 版本的真机,有可能遇到 bug 都无法复现
|
5
tsohgdivil OP |
6
owen666 246 天前
Core Data 哪里陈旧了。倒是 Swift Data 由于是新开的坑,现在还有好多 bug ,就算是 iOS 17 也有好多功能处处是坑。而且 Core Data 和 Swift Data 本身就是平行的。并不是互相替代的关系。至少 5 年之内并不用担心 Core Data 没有了。这就像有了 SwiftUI ,但是 UIKit 还一直都会在是一样的。
|
7
ivyliner 246 天前
嗯, 你说的点确实.
但是我还是建议你用 CoreData, 因为写代码麻烦点直接还有解决方案. SwiftData 遇到的坑可能是在 iOS 17 上都爬不出来. 最后升级的话, CoreData 苹果也不可能废弃, 为啥要升级呢? 真的要用的话, 后续新项目用 SwiftData, 旧的项目相信我你也不想升级. |
8
tsohgdivil OP @owen666 #6 说的有道理啊,再多说一点我直接 all in CoreData
|
10
weeei 241 天前
试试 Codable + CloudKit ? https://github.com/insidegui/CloudKitCodable
|