Surgeworks' Blog

Our team talking about our company, our work, our client and each other.

Will Apple iCloud API support Android, Windows?

At WWDC 2011 Steve Jobs introduced iCloud and mentioned a couple of things while doing so that made people wonder if iCloud will be an iOS an OS X specific technology or if it will be made available to 3rd parties platforms and establish itself as an industry standard instead. Apple’s CEO mentioned iCloud would support Windows PCs and that it will be open for Developers to use in their Apps through a new iCloud API.

How will Windows PCs be supported by iCloud? Will the API based on open, multi-platform technologies such as http/json/xml?

At a first glance to the documentation, it looks to me the answer is: No. iCloud is seen by Jobs as Apple’s advantage on others for the next few years and they are not going to share it with anyone else.

There are two ways that applications can take advantage of iCloud storage, each of which has a different intended usage:

1. iCloud document storage—Developers can use this feature to store user documents and data in the user’s iCloud account.

2. iCloud key-value data storage—Use this feature to share small amounts of data among instances of your application.

Most applications will use iCloud document storage to share documents from a user’s iCloud account. This is the feature that users think of when they think of iCloud storage. A user cares about whether documents are shared across devices and can see and manage those documents from a given device.

In contrast, the iCloud key-value data store is not something a user would see. It is a way for your application to share very small amounts of data (tens of kilobytes) with other instances of itself. Applications can use this feature to store important state information or user settings/preferences. A magazine application, for example, might save the issue and page that the user read last, while a stocks application might store the stock symbols the user is tracking. Something like NSUserDefaults does now for one app instance.

If you read further in the docs, you’ll see all iCloud usage implies calls to the iOS/OSX SDK and is not available in any other way outside the Xcode environment, so no support for 3rd parties from Apple, and I would bet if people try to hack their way to, for example unofficially build iCloud support on Android, Steve Jobs is going to squash them.