"A Tale Of Two iClouds"

27 March 2013

The Next Web:

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.

So when I say that there are two iClouds, I mean that there are two iClouds. One of them is used heavily inside Cupertino for its own services and the other is offered as a developer API and used only selectively for Apple’s own apps. I’m not here to say whether that’s right or wrong or fair or not or whatever, those are just the facts.

iCloud is merely a brand encompassing all of Apple’s web services and has no connection to the underlying technology.

The “iCloud” APIs given to developers are specifically designed for data storage and sync, whether that be via key-value storage, Core Data, or a file-based method. Apple has never advertised them as anything more … because they don’t do anything more.

Mail, Photo Stream, iCloud backup, iTunes and the like are not mere datastores. They can’t use the developer APIs in the same way Facebook couldn’t build a social network on top of them either.

The developer APIs aren’t meant for hosting web services. Web services necessitate daemons, shared databases, external compute power and the like — they have to do stuff far beyond syncing data.

Hence, the fact that Apple uses a separate technology stack than that it gives to developers is not a matter of right or wrong, just practicalities. The public iCloud APIs are (trying to) simplify data sync for developers and that’s it. If you need to do more than that with a remote server (as Apple does), you have to go elsewhere.