It's simple in concept. But for many developers the reality borders on nightmarish. For months, the complaints, accompanied by detailed analyses of Core Data shortcomings, have been growing.
iMore's Rene Ritchie cataloged one group of complaints in a post headlined "iCloud gets kicked in the Core Data sync — totally had it coming." Another catalog was put together by Jacqui Cheng, at Ars Technica: "Frustrated with iCloud, Apple's developer community speaks up en masse."
Developers complain that Core Data is opaque, poorly documented, without reliable mechanisms for troubleshooting problems, or even for identifying them. One of the Ars Technica sources was developer Rich Siegel, of Bare Bones Software. His own subsequent blog post on their Core Data travails describes a service that sounds like it was thrown together with bailing wire and spit. Some of his comments:
- "In general, when iCloud data doesn't synchronize correctly (and this happens, in practice, often), neither the developer nor the user has any idea why."
- "[W]e ran into a situation in which the baseline (a reference copy of the synchronization data) would become corrupted in various easily encountered situations. There is no recovery from a corrupted baseline, short of digging in to the innards of your local iCloud storage and scraping everything out, and there is no visible indication that corruption has occurred — syncing simply stops."
- "Finally, one of the most maddening issues: the iCloud-just-says-no problem. Sometimes, when initializing the iCloud application subsystem, it will simply return an opaque internal error. When it fails, there's no option to recover — all you can do is try again (and again ...) until it finally works."
But Siegel's most damning comment is this observation: "And we find it noteworthy that, to the best of our knowledge, none of Apple's currently shipping products on Mac OS X use iCloud to sync Core Data [emphasis in original]. (One might think that Address Book or Calendars would, but in fact they use CardDAV and CalDAV, respectively. These are both HTTP-based protocols for communicating directly with a server, and do not rely on Core Data or the Ubiquity system.)"
Sign up for CIO Asia eNewsletters.