Recent criticism of Apple’s iCloud has exposed just how fractured the brand actually is behind the scenes. Developers are having problems with some of the technologies bundled together under the name and it’s causing some confusion. The truth of the matter is that there are really two iClouds, which couldn’t be more different.
iCloud was launched in 2011 as a unification and expansion of Apple’s online syncing and data storage services like MobileMe. Since then, the service has grown massively in size. With a reported user base of 250M people, it’s one of the most-used cloud services anywhere in the world. But an enormous user base also means that any issues it encounters are writ large in the press and other forums.
Hate spammy ICOs and crappy cryptocurrencies?
So do we.
Recently, issues with iCloud have contributed to some largely negative blowback in the press and among developers making apps for the iOS and Mac platforms. I’ve personally spent a lot of time talking to those developers about the difficulties that they’ve had making iCloud work like it’s supposed to. Some of this sentiment was pretty accurately rounded up by The Verge’s Ellis Hamburger yesterday.
Still, a lot of the discussion about this stuff doesn’t adequately address that there are a couple of distinct facets to iCloud. There is the iCloud that powers consumer applications like backups and Mail, and there is the developer-facing aspect of iCloud which powers things like Core Data syncing.
Core Data syncing, for instance, is one way for apps to present you exactly the same user data in copies of apps on your Mac, iPhone and iPad. This seamless switching was a big selling point for developers interested in Apple’s cloud solution, rather than just ginning up one of their own. Steve Jobs even said that it was ‘really easy’ to tie apps into iCloud’s storage system. Turns out, this wasn’t true at all. While holding those issues up to the light is an important thing, it still isn’t telling the whole truth.
Here’s the truth about iCloud: it’s actually just a name.
There are really two iClouds, one that services Apple’s consumer services, and one that is offered up to developers to integrate into their apps.
I’m not being facetious with that statement. 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.
And, once you dig in, iCloud for developers is far less a completely holistic solution and much more of a loose bundle of networking protocols and systems that are unified in name only. It involves so many departments and teams inside Apple that it makes for a very fragile system. If a bug crops up it could involve teams working on the OS X or iOS file system, networking, frameworks or a host of others. This makes issues hard to diagnose and even harder to fix.
I’d be remiss if I didn’t lay some of the blame for some of this confusion at Apple’s doorstep. Bundling both consumer-side and developer-side technologies and implementations under the ‘iCloud’ banner isn’t doing it any favors. When people say ‘iCloud sucks’, what are they talking about? Are they talking about developer tools and documentation for syncing services? Are they talking about consumer services like iCloud backups or iTunes? It becomes harder to discuss and contributes to muddying the waters.
But the problems that developers are seeing aren’t going to be solved by separating the halves of iCloud. They’re only going to be addressed by providing better documentation, more responsiveness from Apple in addressing issues that developers are encountering and a willingness to just plain admit that some of iCloud for developers just sucks. The team at Apple has the best resources available to it to fix its problems. It can talk directly to the people who built the technologies in order to fix issues. Developers don’t have that luxury so what they need is better training and documentation.
One thing that could help is if Apple dogfooded more of iCloud’s developer API features in its own apps. Dogfooding, the process of a company using its own creations internally, is a well-respected method of ensuring maturity and stability, especially in complex services like iCloud. Apple currently only uses Core Data syncing in its iTunes Trailers app, which serves a lot of video but isn’t exactly the most complicated application. Because Apple doesn’t use these features of the API as much, it doesn’t run across the problems that are being run up against by developers.
Another way to improve the iCloud API would be to find a high-profile developer that is working to ship a rich implementation of the iCloud API in an app and work hand-in-hand to try to solve all of the issues up to launch. This would give it an insight as to what exactly the real-world issues are and help it to address the issues in a focused way.
It makes no sense for Apple not to offer better resources for developers on iCloud. It has zero, zero incentive to drag its feet or withhold resources as it’s been working very hard to get those developers (it’s been preaching it for two years at its developer conference) to integrate iCloud into their apps. It has everything to gain by making iCloud better and easier to use.
So, hopefully, this attention will spur some reaction in Cupertino. And there’s no reason to let Apple off the hook for the shaky state of some iCloud services like iMessage either. It has a responsibility, as a services company, to make sure those services work. But, right now, its biggest task is to reverse the tide of dissatisfaction and abandonment that is being felt by developers about their iCloud, before developers decide that using their own systems might be the best solution.
Image Credit: Justin Sullivan/Getty Images