现有在线应用程序中的核心数据同步

Posted

技术标签:

【中文标题】现有在线应用程序中的核心数据同步【英文标题】:Core Data Sync in existing online App 【发布时间】:2015-02-25 06:17:39 【问题描述】:

开发了一款大型应用程序,在 Appstore 上有多个版本。我使用 AfNetworking 作为网络框架。到目前为止,一切都在线,就像我进行异步 API 调用并加载数据并在互联网不可用时显示错误。

现在我们计划让整个应用支持离线缓存模式。

我试图避免样板文件和大量不必要的代码,并寻找任何可以处理非常复杂的应用程序的库。我几乎完成了 RestKit,因为我已经准备了几个示例,并且它似乎正在正确同步。

我无法仅凭示例 100% 说服自己,因为我必须删除大量 AFNetworking 代码、API 调用和解析以替换为 RestKit。

我需要建议我的方法是否正确,并牢记 RestKit 的优缺点是否应该能够使用 RestKit 实现完整的离线同步应用程序?

我应该继续使用 AFNetworking 代码并从头开始构建一些东西。如果您更喜欢这种方法,那么您对如何开始有一些建议吗?

【问题讨论】:

【参考方案1】:

RestKit(当前)构建在 AFNetworking 之上,因此您可以同时使用两者。 RestKit 的真正好处在于它可以将您的数据直接映射到 Core Data 并为您提供非常简单的离线功能。

您的主要问题是,这两个框架都没有提供任何机制来确定离线时发生了什么变化并上传这些变化,您需要自己制定一个方案来做到这一点。

因此,如果您已经有围绕 AFN 的映射代码并将其放入 Core Data,那么目前 RestKit 不会为您提供大量服务。这实际上取决于您对未来的期望以及您需要做多少额外的映射。使用 RestKit,您以后再也不需要编写任何显式的映射代码,让您专注于实际的业务逻辑。

【讨论】:

【参考方案2】:

如果您从 AFNetworking 开始,最适合您的解决方案就是 MagicalRecord。这里是这种方法的使用示例:https://github.com/keencode/AFN-Magical-Record-Example

【讨论】:

以上是关于现有在线应用程序中的核心数据同步的主要内容,如果未能解决你的问题,请参考以下文章

当应用有互联网连接时,将离线核心数据与服务器同步

离线/在线数据同步策略

推荐一款 在线+离线数据 同步框架 Dotmim.Sync

有没有办法将数据从核心数据迁移到在线数据库?

离线/在线数据同步设计(Javascript)[关闭]

我希望我的Android应用程序将数据同步到MYSQL以用于我的在线ERP