There’s been a lot of talk this week about the problems developers are having with iCloud data sync.
At WWDC 2011, Steve stood on stage and told us that it was “really easy” to integrate iCloud within our apps for data syncing between devices. It’s not.
Almost 2 years later, and devs are still fighting with iCloud. That is to say, following the implementation guidelines Apple has provided us and finding out that it either doesn’t work or when it does, it works part of the time but certainly not reliably.
Breaking it down, everyone has a different view on what iCloud is, what the problems are and how it should be fixed. In this post, I’m only talking about the part of iCloud that developers have access to. That is, the data sync itself, not about Apple services like Mail and Messages or even Apple’s data sync in apps like Pages.
The feedback I’ve seen from average consumers is that they love iCloud but they want more of their App Store apps to sync like Apple’s apps do. Customers have seen how well Pages, Numbers and Keynote iCloud syncing works and they want developers to add the same abilities to their apps. Customers do not - nor should they be expected to- understand why their favourite app still does not come with iCloud sync.
Developers understand the needs and wants of their customers. So guys, you can stop shouting at us, we’ve heard you. Instead, talk to Apple about it. They’re the only ones who can make the changes necessary to make iCloud data sync work.
We’ve tried asking, talking, pleading, begging Apple for help, for guidance, to just make iCloud syncing work. Apple has made no comment. Again, this is to be expected. Apple does not comment on unreleased products. For developers, it’s a Catch 22. We don’t even know if there is an unreleased product for them to withhold comment on. Are developers supposed to spend their time and resources fighting with a cloud service that doesn’t work reliably? Are we supposed to hold out forever in hopes that Apple has a better solution at this year’s WWDC?
Devs have either tried to patch iCloud data sync to make it appear to the user that it’s working or they have abandoned iCloud all together. Neither choice is good.
With every new article I read about iCloud, the tone grows more pessimistic. After all, the issues with iCloud data sync became apparent by the time 5.1 was released. Naturally, the developer community expected there would be big (and necessary) improvements in iOS 6. There weren’t.
So why should we, the iOS app developers, believe iOS 7 is any different? We want to, we really do.
There is a lot riding on iOS 7, far beyond what Jony Ive may do to change the chrome. Apple needs to make its ecosystem developers happy and fix the mess that is iCloud data sync.
Here’s how to do it, Apple. Are you ready?
You need to take control at the API level. iCloud data sync is far too complicated without reason to be. First, there’s UIDocument syncing. All I should have to do in iCloud is…. (almost) nothing. Devs should be able to mark a UIDocument object for sync, and that’s it. You look after the rest.
The same goes for Core Data sync. I just tell the OS that I want a Core Data Store to be synced, and it will take care of the rest. If it’s so easy for users, it should be equally easy for developers (sort of).
I don’t believe the iCloud APIs were ready for public consumption. I hope at WWDC ‘13, we finally have a mature set of high-level APIs to work with that are simple and straightforward. And Apple, that should include removing any use of the term “ubiquitous” in method names.