我们正在开发一个原生的Android应用程序(iOS和web应用程序),用户可以在其中协作创建相册。
当设备无法连接到服务器时,我们想要尽可能无缝的体验。类似于这个连帽衫博客中提到的内容,但连帽衫现在适用于网络和iOS,我们现在正在寻找Android。
问题
在客户端维护相册、好友、图片(URL/本地,而非位图)的数据。能够在以后将脱机创建/更新操作同步到服务器,并解决冲突。
当前研究
- HTTPResponseCache:缺点:只缓存已命中一次的请求。另外,还需要不同的系统来处理创建/更新操作
- App42,Kinvey:后台即服务;缺点:我们希望有自己的后端
- 微软同步框架工具包:不确定它与安卓系统的配合情况
- PouchDB
- 超级巴士:解决了部分问题
自定义
在Android上的SQLite和服务器上的MySQL中维护数据使用Android同步适配器进行同步。然而,这可能很耗时,并且在启动时会出现错误。
应该如何处理这个问题?
我目前正在处理一个项目,即使用户离线,我们也需要跟踪交付并验证交付。我使用的方法是使用这个ContentProvider插件SimpleContentProvider。我检查是否有互联网,如果没有。它将数据存储到提供者,并更改DATABASE中需要更改的内容,让我的用户相信他或她已经完成了订单。我有一个SyncAdapter正在等待互联网的开通。我还有一个推送服务,一旦数据库发生变化,就会刷新数据库。了解谷歌云消息将为用户节省大量电池寿命。可能还有更好的选择。但是,从我使用Android的经验来看,这就是我的小帮助。
您看过CouchBaseServer和CouchBaseLite吗?
它们提供了一个名为SyncGateway的强大工具,它可以处理服务器和内部数据库之间的所有同步和数据合并。您不必在移动应用程序中为同步编写任何代码。
Couchbase Lite适用于iOS和Android。还有一个用于Cordova/PhoneGap的插件可用。
我从来没有遇到过编译它的任何问题,只是为了iOS,请记住为iOS6+编译,它不适用于iOS5
您可以查看一个名为Wendy的开源api,它最令人惊讶的是它使用了您现有的体系结构。