Objective c 在iOS应用程序之间同步数据的好解决方案是什么?
我正在开发一个应用程序,它的数据管理是通过核心数据实现的,我正在研究如何实现一个功能,以便在两个不同的设备之间(甚至最终在iDevices和Mac之间)同步数据 到目前为止,我还没有发现任何有趣或有用的东西,所以我请求您提供一个好的起点、指南或模型。你有没有意识到这样的事情 更新 我已经开始悬赏这个问题了。在iOS上,同步可能是一项困难的任务,但是,现在有很多应用程序提供了设备到设备的同步功能。我的问题是:他们是如何做到这一点的?最好的方法是什么?有哪些不同的解决方案 更新2Objective c 在iOS应用程序之间同步数据的好解决方案是什么?,objective-c,ios,core-data,data-synchronization,Objective C,Ios,Core Data,Data Synchronization,我正在开发一个应用程序,它的数据管理是通过核心数据实现的,我正在研究如何实现一个功能,以便在两个不同的设备之间(甚至最终在iDevices和Mac之间)同步数据 到目前为止,我还没有发现任何有趣或有用的东西,所以我请求您提供一个好的起点、指南或模型。你有没有意识到这样的事情 更新 我已经开始悬赏这个问题了。在iOS上,同步可能是一项困难的任务,但是,现在有很多应用程序提供了设备到设备的同步功能。我的问题是:他们是如何做到这一点的?最好的方法是什么?有哪些不同的解决方案 更新2 这个问题现在肯定已
这个问题现在肯定已经过时了,因为iCloud已经在一年前发布了。我想让它保持活力,因为它可以提供关于设备间移动数据同步的有趣见解。同步数据是出了名的棘手。简单化的解决方案比没有解决方案更糟糕 关于这件事的好的精神指导,去看看他们即将推出的云同步功能在做什么。我希望他们能发布一个同步API,开发者可以通过它来实现同步服务。但是,即使他们自己保持沉默,他们也很好地展示了真正完成任务所需要的那种自我反省。“Couchbase for iOS”可能会满足您的需要 根据自述文件: 跨设备提供数据并提供云计算 备份用户数据。不同于其他 云解决方案,数据托管在 该设备由Couchbase Mobile提供,因此 即使网络已关闭或速度较慢 (飞机、地铁、后院) 应用程序对用户做出响应
What this means for you:
You can embed the rock solid distributed database, Mobile
Couchbase,在您的iOS设备上。
您的iOS应用程序可以使用ApacheCouchDB经过验证的同步
技术
如果您我将从开始,看看这是否满足您的需要。原则上,它可以让你在所有苹果设备和服务之间同步 如果你想自己做,这可以是一个很好的,但很有挑战性的练习。我不知道有哪一个第三方框架能够促进苹果公司的“iDevices”之间的P2P连接,下面的框架除外。如果你不想重新发明轮子,你可以沿着这些路线做一些研究。我的回答基于我通过应用服务器实现同步服务的(很少)经验——原则必须与P2P方法大致相同 第一步是设计一个同步数据的协议。您可能需要自己回答的问题:
- 我需要了解什么
- 我希望同步核心数据模型的哪一部分?我是否应该更改当前模型以便于同步
- 我将使用什么序列化/反序列化机制
- 我如何能够跨多个设备唯一地标识实体
- 我将如何版本我的数据?我如何知道哪些实体需要同步
- 我是否需要能够还原同步操作
- 我将如何跟踪同步进度以及如何处理失败和异常情况?我将如何通知用户这些信息
- 我更喜欢“增量”(部分模型)还是“全局”(一次同步整个模型)李>
- 用户需要多久在设备之间同步一次
- 是否有任何安全考虑?我需要加密吗
- 等等
- (此框架具有用于通过蓝牙在设备之间建立连接的API)
- Bonjour(苹果网络设备发现协议-参见)+BSD套接字
我希望这能为您提供一条开始之路。现在有很多应用程序都有“设备间同步”功能。我只是想知道他们是怎么做到的。《事情》的作者可能会找到一个更好的解决方案,但他们怎么知道呢?我想他只是警告你,从所有关于“云”的传言中,你可能会发现一个更高层次的复杂性。它就像日期和时间编程一样,乍一看很简单,但当你试图自定义的时候,它会变得异常复杂。我不期望有特别的复杂程度。我认为同步是一项困难的任务,即使从哲学上讲:)我不是在寻找一个简单的解决方案。我正在寻找一个解决方案。顺便说一句,我不想同步“在云中”(目前)。我只想在设备之间同步。稍后,我将考虑云、雨等。设备之间具有“同步”功能的应用程序通常要么是简单的数据传输,要么是暴力-在你开始寻找解决方案之前,有很多问题需要询问和回答。Tris显然很有希望。。。但我将不得不将我现有的核心数据数据库迁移到这个新数据库,这有点可怕……Couchbase的问题是,它提供了一种“在云中”同步数据的方法,而不是直接在设备之间同步数据的p2p方法…@ma
What this means for you:
You can embed the rock solid distributed database, Mobile