<分区>
我正在开发一个应用程序,它的数据管理是通过 Core Data 实现的,我正在研究如何实现一个功能来同步两个不同设备之间的数据(最终甚至是 iDevices 和 Mac 之间)。
直到现在我还没有发现任何有趣或有用的东西,所以我请求你提供一个好的起点、指南或可遵循的模型。你有没有意识到这样的事情?
更新
我已经开始悬赏这个问题。同步在 iOS 上可能是一项艰巨的任务,但是来吧,有很多应用程序提供设备到设备的同步功能。我的问题是:他们是怎么做到的?最好的方法是什么?有哪些不同的解决方案?
更新2
这个问题现在肯定已经过时了,因为 iCloud 已经发布将近一年了。我想让它保持活力,因为它可以提供有关设备间移动数据同步的有趣见解。
如果您想自己做,这可能是一个非常好的但具有挑战性的练习。我不知道有任何第 3 方框架可以促进“iDevices”之间的 P2P 连接,除了下面的那些,来自 Apple。如果您不想重新发明轮子,您可以按照这些思路进行一些研究。我是根据我通过应用服务器实现同步服务的(一点点)经验来回答的——原则必须或多或少与 P2P 方法相同。
第一步是设计用于同步数据的协议(protocol)。您可能需要自己回答的问题:
- 关于 data synchronization 我需要了解什么? ?
- 我想同步核心数据模型的哪一部分?我是否应该更改我当前的模型以促进同步?
- 我将使用什么序列化/反序列化机制?
- 我如何能够跨多个设备唯一地标识实体?
- 我将如何对我的数据进行版本控制?如何判断哪些实体需要同步?
- 我需要能够恢复同步操作吗?
- 我将如何跟踪同步进度以及如何处理失败和异常情况?我将如何通知用户这些?
- 我更喜欢“增量”(模型的一部分)还是“全局”(一次同步整个模型)?
- 用户需要多长时间在设备之间同步一次?
- 是否有任何安全注意事项?我需要加密吗?
- 等等
这只是触及表面。在前进的过程中,您一定会发现更多需要思考的事情。
接下来,确定您希望如何在设备之间进行连接。您似乎更喜欢 P2P 类型的无线解决方案。为此,我将从查看这些工具开始:
根据前面讨论的设计决策,选择您觉得最舒服的工具。我帮不了你,因为我对他们都没有任何经验。正如莫菲斯所说:
I can only show you the door. You're
the one that has to walk through it.
抱歉,有点幽默:)
最后,决定一个解决方案来实现您的同步机制。你可以例如选择客户端-服务器模型(一台设备将监听连接,另一台设备将启动它)。
更多相关文档:
我希望这能为您提供一个起点。