Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 具有离线和关系支持的跨平台同步解决方案_Android_Ios_Core Data_Dropbox_Sync - Fatal编程技术网

Android 具有离线和关系支持的跨平台同步解决方案

Android 具有离线和关系支持的跨平台同步解决方案,android,ios,core-data,dropbox,sync,Android,Ios,Core Data,Dropbox,Sync,我对应用程序开发和核心数据还比较陌生,所以请放心。我一直在开发一个应用程序(目前用于iOS,将来也用于android),它使用核心数据在本地存储用户数据。 数据具有跨实体的关系。用户可以创建、更新、删除数据 现在我需要集成一些同步解决方案。我的要求是: 数据应该可以脱机访问(现在我正在测试队列操作) 当网络可用时,数据应该同步到云存储(在iOS上,我已经测试了这方面的可达性) 云存储需要集成到我当前的iOS和未来的android版本中 需要维护关系(或者其他连接亲子关系的方式,我稍后会讨论) 应

我对应用程序开发和核心数据还比较陌生,所以请放心。我一直在开发一个应用程序(目前用于iOS,将来也用于android),它使用核心数据在本地存储用户数据。 数据具有跨实体的关系。用户可以创建、更新、删除数据

现在我需要集成一些同步解决方案。我的要求是:

  • 数据应该可以脱机访问(现在我正在测试队列操作)
  • 当网络可用时,数据应该同步到云存储(在iOS上,我已经测试了这方面的可达性)
  • 云存储需要集成到我当前的iOS和未来的android版本中
  • 需要维护关系(或者其他连接亲子关系的方式,我稍后会讨论)
  • 应使用ios上的核心数据,而不是第三方替换
  • 到目前为止,我已经尝试了很多解决方案:

  • 我在服务器上建立了自己的RejectionDB数据库,并使用PHP和REST来运行。这太乱了
  • 我测试了parse.com和afnetworking http请求(而不是parse的库)——这更好,但我似乎无法从核心数据管理关系。而且我的同步算法很复杂(它可以工作,但我不确定当它可能失败时是否有漏洞)
  • 我测试了dropbox数据存储api。我只测试了他们提供的iOS示例应用程序,看起来相当不错(仍然需要了解其工作原理) 我的问题是:

  • 如果我使用dropbox数据存储api,它如何与android配合使用?当然核心数据在那里是不可用的,那么它是如何工作的(很抱歉,我还没有android开发经验)?它如何处理实体之间的关系
  • 如果我选择Parse.com,你认为我的这个想法行得通吗- 我可以使用标识符,而不是使用关系?我的关系都是一对多的,所以在父母(1)上我可以有一个id A。在所有的孩子身上,我可以将他们的父母id指向A。同样,因为我的孩子也可以有孙子,所以在每个孩子身上,我可以有孙子可以指向的另一个id。等等。。。作为关系的替代品,这有意义吗?如果是,那么xcode中的关系有什么意义??除了可能有自动级联选项
  • 有没有更好的跨平台同步解决方案 我知道我的问题似乎有点征求意见,但我想看看其他人都做了些什么。过去一周从一个解决方案切换到另一个解决方案并设计同步算法,这让我的大脑非常紧张。

    (我在Dropbox工作,将解决这部分问题。)

    Dropbox数据存储API不使用核心数据,因此在Android上的工作方式完全相同。为什么需要核心数据


    至于关系,您对解析的描述正是我建议在数据存储API中使用的内容。我相信您是对的,在数据库和代码中建模关系的原因是为了获得自动级联操作和关系不变量的强制执行。

    感谢您的回复!核心数据是一项要求,因为我已经花了一个月的时间在这个应用程序上。所以我真的不想改变我的架构。此外,核心数据和NSFetchRequestController似乎与我的表视图配合得非常好。所以我需要把它放在适当的地方。dropbox如何处理数据呢?我看了一下示例“toado”应用程序,注意到其中有一些nsfetchrequest和内容,所以我认为它使用了核心数据?否?否,数据存储API不使用核心数据。在后台,它将数据的本地缓存存储在自己的sqlite数据库中,并使用异步操作队列将增量通信到服务器。我想Dropbox不是我的选择:(嗯,如果你要去跨平台,核心数据将不是一个选项。所以我希望你最终会远离它。当发生这种情况时,我希望你考虑DATASORE API。