iCloud is one of Apple's biggest liabilities right now, because it's getting a slew of bad publicity for being buggy and for breaking its promise with developers. Apple needs to completely rebuild it or replace it with something else entirely, or it will become an even greater credibility problem than it already is.
The problem is that Apple did a great job marketing iCloud and generating user demand for the cloud-based syncing service, but it hasn't delivered a reliable set of APIs that OS X and iOS developers can use in their apps.
The Verge's Ellis Hamburger spoke to a number of Apple developers for his piece Apple's broken promise: why doesn't iCloud "just work"? and they universally reviled the service. In writing about The Return of NetNewsWire, Black Pixel CEO Daniel Pasco noted that he planned to "embrace iCloud and Core Data as the new sync solution of choice", but lamented that "we spent a considerable amount of time on this effort, but iCloud and Core Data syncing had issues that we simply could not resolve".
And he was one of the kinder ones. Recent reports are filled with frustrated developers that don't trust Core Data or have abandoned it altogether.
In A tale of two iClouds, The Next Web's Matthew Panzarino explained that iCloud is comprised of two discrete services, one that powers consumer apps (like backups and Mail), and an API for developers called Core Data that handles database syncing. The former works pretty well, the latter, not so much.
The iCloud that is used for apps and services like iMessage, Mail, iCloud backup, iTunes, Photo Stream, and more is built on a completely different technology stack from the developer APIs that are causing problems. iWork actually does use developer APIs, but only the (still rough) document syncing, not Core Data, which has been causing the most issues.
Independent iOS developer Tom Harrington's iCloud: State of the Union provides a detailed overview on how Core Data is supposed to work in theory compared to how it actually works in practice. And it's not pretty. Harrington noted that it's a rare case of Apple over-promising and under-delivering that's putting developers into a bad position:
Users hear about how great iCloud is and how apps can use it to sync their own data. They quite reasonably wonder why your app isn't using it. Syncing data is a great idea, Apple gives you iCloud, why aren't you using it, dammit?
iOS 7 is expected to be previewed to developers at the Worldwide Developers Conference (WWDC) in June (although dates haven't been announced). Apple needs to provide a comprehensive cloud-based sync solution that works, or risk the mass defection of developers that will either skip iCloud altogether or develop their own solution that works. Black clouds on the horizon, indeed.