上周,我在博客中列出了我对今年 WWDC 中等待看到的 SwiftUI 方面的改变。这周,我想持续同享我对 Core Data 的等待。

原文宣布在我的博客wwww.fatbobman.com

欢迎订阅我的大众号:【肘子的Swift记事本】

Swift 重制版

紧迫性:3 完成可能性:0.5( 总分 5 分 )

在最近两三年中,每逢 WWDC 接近时,总有开发者在网上猜测(更多的是希望)苹果能够推出彻底根据 Swift 的 Core Data 完成。 然而,理性地说,现在各个方面条件尚不老练。一方面,作为一个被广泛运用的具有耐久化才能的目标图办理结构,苹果对其的调整必定会十分谨慎;另一方面,虽然 Core Data 的完成有些过期,但依然能够稳定地与许多新结构、新服务合作运用,苹果对其进行革命性调整的动力也缺乏;最终,当时的 Swift 言语以及其他与 Core Data 合作运用的结构仍未具备支撑创立纯 Swift 完成的才能。

从 SwiftUI 的经验能够看出,当苹果计划发动 Core Data 的 Swift 化时,我们必然能够从 Swift 社区的提案中看到端倪。

虽然如此,我依然对根据 Swift 完成的 Core Data 充满了神往,期盼这一天早日到来。说不定,Swift 重制版能够让其具有跨渠道才能。

用 Swift 重制部分 API

紧迫性:5 完成可能性:4.5( 总分 5 分 )

虽然我认为苹果不会在短时间内完成 Core Data 的 Swift 化,但与之配套的结构和 API 的 Swift 化工作现已持续进行了几年。

现在,根据 Swift 完成的 API 包含:FetchRequest( 在 SwiftUI 结构中 )和 SortDescriptor。

在不久前推出的 swift-foundation 中,Predicate 现已被提及,估计将在下半年完成。假如苹果能将其他一些 API(例如:NSExpression 等)也用 Swift 完成,届时再对 Swift 言语进行有针对性的增强,根据 Swift 完成的 Core Data 将应运而生。

支撑更多 SQLite 新特性

紧迫性:4 完成可能性:3.5( 总分 5 分 )

虽然 Core Data 当时支撑四种存储形式,可是绝大多数开发者依然将 SQLite 作为首选的存储类型。苹果也很清楚这种状况,因此在最近几年为 Core Data 开发的一些新增功用上,也仅支撑 SQLite。

然而,苹果现已很久没有对 Core Data 的 SQLite 支撑进行增强了。就我个人而言,SQLite 所能完成的全文检索和原生的 JSON 查询才能都是我迫切需要的。

我希望上述功用能在最近一两年内被 Core Data 所采纳。

更好的 Model Editor 体验

紧迫性:4 完成可能性:4( 总分 5 分 )

近年来,除了为某些新功用添加必要的配套外,苹果基本上抛弃了对 Xcode 中的 Model Editor 进行改进。尤其是在 Xcode 14 中,苹果移除了数据模型的联系图编辑器,这一点让我感到十分困惑。

虽然我并不常常运用这个功用,可是相对于其他耐久化结构,Core Data 最大的优势或特点便是其对联系的办理才能。这也是 Core Data 被认为是目标图办理结构而非耐久化结构的主要原因之一。

即使不能对 Model Editor 进行强化,也不应该抹杀其原有的优势。

我依然衷心希望 Xcode 团队不要抛弃 Model Editor,并进一步增强其功用。功用,改进其运用体验。

完善 Core Data with CloudKit 的部分 API

紧迫性:5 完成可能性:4( 总分 5 分 )

在 Core Data with CloudKit 推出的前三年,苹果以每年一大步的速度推进该结构的发展。现在已具有了私有库同步、公共库同步、同享数据等很多功用。能够说,相较于 Core Data 结构自身,苹果在推进 Core Data 云端同步的工作上的成绩是众所周知的。

不过比较遗憾的是,上一年并没有延续这种发展势头,没有持续推出新的功用,也没有对之前呈现的一些问题进行改进。

尤其是同享数据这一功用,由于自身 API 的一些不完善,一直没有被开发者广泛选用。

Core Data with CloudKit 现在现已是苹果生态的一把利器,根据其开发的使用具备了相当的渠道排他性。苹果应该利用好之前发明的优势,进一步增强该功用,至少让当时一切的功用都能被正常地运用。

改进 Core Data with CloudKit 的同步体现

紧迫性:5 完成可能性:3.5( 总分 5 分 )

跟着选用 Core Data with CloudKit 的使用添加,运用者创立的数据也急剧胀大。因此,网络同步功率差的问题也越来越明显。

作为开发者,我了解根据本钱的考量,官方有意控制了数据同步的频率和数量,但考虑到如此多的使用已将 Core Data with CloudKit 作为其同步结构,苹果是否能够考虑为开发者或用户提供更多的选择。

例如,答应开发者或运用者通过额外付出必定的费用取得更好、更快的同步服务。

当然,假如苹果能对 iCloud 服务进行全体的性能升级,让一切的开发者和用户都能免费取得收益,那将是最好的成果。

总结

俗话说,“爱之深责之切”。作为 Core Data 的重度运用者,我衷心希望苹果能够持续发扬这个具有悠长前史的结构,焕发其第二春。

欢迎你通过 Twitter、 Discord 频道 或博客的留言板与我进行交流。

订阅下方的 邮件列表,能够及时取得每周最新文章。

原文宣布在我的博客wwww.fatbobman.com

欢迎订阅我的大众号:【肘子的Swift记事本】