iOS应用程序 – 体系结构/示例,用于使CoreData与Web服务同步

我正在寻找一个示例应用程序或更多的架构讨论来构build一个应用程序,该应用程序维护一个本地持久性存储(CoreData),并保持与Flickr等Web服务同步。 在我的情况下,它是Salesforce,但该模式应该类似于Flickr,Twitter,IMAP等许多应用程序。

示例问题:调用同步的最佳点在哪里? 什么是经过validation的数据结构,以维持本地变化 – 维持本地商店中“每改变一次”BOOL, 我宁愿一个字段级别标志对logging级别标志)?

当然,我必须自己来优化这个,知道logging数量(100)和变化(每天10个)以及冲突的可能性(在我的情况下在现场级别低)。

以下是我将如何处理这个问题:

  1. 首先build模镜像您的在线数据库的本地CoreData / Sqlite数据库。
  2. 将NSDate lastModified属性添加到每个表的每一行。 这将允许我跟踪logging级别的变化,而不是字段级别。 这有助于降低同步的复杂性,在大多数现实世界的情况下,logging级同步就足够了。
  3. 在应用程序启动时执行自动同步,并在导航栏中提供突出的“同步”button。 这样用户在长时间启动应用程序时总是有一个更新的数据集,并且可以在一天中同步最新的变化。 我会避免在使用应用程序时进行后台同步。 当您尝试处理其他事情时,这会使您的应用程序更加复杂且容易出错。 所以推迟后台/自动同步,直到你有其余的工作。
  4. 一旦我的同步工作在启动和点播的时候工作得相当好,我会尝试并支持后台同步。 我也会尝试消除“同步”button,所以用户不必考虑同步 – (就用户而言,它始终是最新的)。 但是,这将是一个长期的增强,我会尝试只有在“按需”同步工作坚实。

希望这可以帮助你开始。 我很想听听你对这个问题有不同的看法。