Apple's iCloud disparaged over Core Data sync problemsApple's ambitious plan to make iCloud the new digital hub for Mac and iOS users' documents, data and media files has run into complaints from developers who reportedly don't believe Apple will address their issues related to database sync. There's hope for thinking things will improve, however.
Frustrated with the limited options Apple provides for handling their issues, several app developers have taken their complaints public via blog entries, primarily focused on problems related to Core Data database sync with iCloud.
Their complaints have been picked up by journalists who often conflate these specific, limited database sync issues with Apple's entire spectrum of online services, resulting in headlines that pronounce the entire iCloud umbrella as being "broken," with no hope in sight, while castigating Apple for advertising iCloud as "automatic and effortless."
Apple's tightlipped secrecy makes it harder to reliably forecast how soon the company will precipitate fixes for specific issues, complicating developers' plans even as their own customers rain down complaints and poor reviews for either a lack of support for iCloud, or alternatively, syncing issues within an app after the developer adds support for iCloud.
"I would love for Apple to tell us they fixed everything with iCloud in iOS 7 and we can finally use it without issue two years later, but Im not getting my hopes up," one unnamed iOS developer reportedly told the Verge for an article headlined "Why doesn't iCloud 'just work'?"
The wide span of Apple's iCloud services
Further complicating things is the reality that "iCloud" is an extremely broad marketing term Apple nebulously uses to cover nearly all of its online services.
In general terms, "the cloud" refers to the Internet, often specifically to network based services, but more recently to simple "cloud storage" of files as well. Anything happening "in iCloud" is simply being done on Apple's servers, which includes Mail, Contacts and Calendar services. Developers aren't taking issue with any of these services, which despite some sporadic interruptions, have not generated unusual volumes of complaint from users.
Apple's various digital download and shopping services, including its industry leading media content in iTunes, iBooks and iOS and Mac App Store software are also roped together under the "iCloud" umbrella. This isn't the iCloud that developers are complaining about either.
The company also offers a unique app-based file storage service that saves documents "in the Cloud" for access from any one of a user's various Macs or iOS devices, and in some cases, from the web. Photo Stream, Find My iPhone, Back to My Mac, and various other data sync services (such as Safari bookmarks and Reading List) are also features associated with iCloud.
None of these features are directly related to the iCloud problems that developers are reporting, resulting in confusion for many of the 250 million users who don't see Apple's useful and generally reliable (but certainly not flawless) iCloud as being "broken."
The dark, silver lining of Apple's iCloud
The primary iCloud problems for third party app developers relate to issues with reliably syncing databases between their own apps and the cloud (and keeping them in sync across devices). This is handled by Core Data, an Apple framework designed to simplify the management and storage of data within an app for developers, allowing them to focus on the unique aspects of their software titles. Core Data itself is highly regarded among most developers.
Apple introduced Core Data back in 2005's Mac OS X Tiger, and made it available to App Store developers in iOS 3.0. Core Data enables developers to work with a user's data as objects, handing much of the complexity of data storage and retrieval for them. The Core Data framework provides options of how to store that data suited for different tasks: either as a simple XML text file or in binary data (both examples of a standard file), or within a SQLite database (a specialized file that contains organized data that is accessed and modified via specialized transactions).
When Apple introduced iCloud, it integrated a new "Documents & Data" feature of the service with the Core Data framework, to enable apps to leverage the familiar framework to save and retrieve an app's data via iCloud. For document-based data files or simple "key value pairs" (such as preference settings), iCloud seems to work pretty well.
"The core idea behind iCloud," Apple's developer documentation explains, "is to eliminate explicit synchronization between devices. A user never needs to think about syncing and your app never interacts directly with iCloud servers. When you adopt iCloud storage APIs as described in this document, changes appear automatically on all the devices attached to an iCloud account. Your users get safe, consistent, and transparent access to their personal content everywhere."
Actually implementing iCloud support in an app isn't trivial; Apple itself spent about a year adding iCloud support to various apps built into Mac OS X Mountain Lion, and it took some additional time to get iCloud-based files working between the iOS and Mac versions of its iWork apps (depicted below).
The more ambitious effort of syncing incremental changes made to an SQLite database with iCloud is even more complex. Several developers have reported considerable frustration in getting this to work at all, and their efforts are complicated by the unforeseen actions of users, who may, for example, log out of iCloud on their device and log in as a new user, throwing additional complexity into the situation.
While Apple has implemented document-based iCloud sync in its own apps, neither it nor its FileMaker subsidiary appear to be making any significant use of SQLite databases synced with iCloud. And if Apple isn't yet using it, you can bet that it isn't polished for third party developers either.
A catch-22 for innovation
The Mac and iOS platforms depend upon the architecture of Core Data (and its integration with iCloud) to present a number of innovative features. Everything from AutoSave to Versions (below) to Time Machine leverages the novel concept of incrementally saving users' work so that it can be rolled back, archived, and even synced between devices in real time. Apple has been rolling out and progressively enhancing these features (and their underlying frameworks) over the past several years.
During that time, Apple's critics have both complained about how unimpressed they are with every new bit of hardware Apple and software update the company has released, while also complaining about any changes and growing pains that have occured as a result of Apple's often aggressive plans to roll out new features.
The alternative solutions to Apple's iCloud dilemma (and more broadly, everything about OS X and iOS) would be to either greatly scale back innovation on all fronts (allowing competitors to catch up and critics to amplify their complaints that Apple 'isn't innovating enough'); to put "beta" warnings on new software features the way Google does to avoid harsh criticism of new software and features (as Apple did with Siri, although this didn't have any real effect); or to assemble larger teams to work on various projects (complicating development and increasing the staffing and operational issues the company already struggles under given its crowded campus and the difficulty of hiring qualified, experienced developers).