For iCloud users – magic. Enchanted this magic information you may enter on one device and they instantly appear on all user’s devices. From the point of view of a developer who decided to “enchant” their applications, mastering iCloud was not insurmountable complexity, but… iCloud have been extremely difficult for those who have developed this technology. After the presentation, the skeptics, grinning, said that this whole iCloud can be developed in two to three weeks, especially not overstrained. I wonder why until June 2011 nobody did?

For example, simply do not understand such a stupidity could come up with crazy Apple and no one else. But why something like iCloud appeared a few years after another stupidity from Apple was released and turned out not to be so stupid?

And statements of some media that Apple “invented cloud technology” where Apple had no relations, remained unanswered. Waves of scorching criticism was… for Apple.

Apple had to make an official statement, these technologies existed long before iCloud. Moreover, iCloud was not the first case of the use of cloud technology by Apple Inc.

Examples? Email using IMAP, contacts and calendars using CalDav, the iTunes Store. In the App Store and the Mac App Store, the cloud technology used for launching applications on users ‘ computers and their updates.

iCloud was developed by engineers with experience in these projects.

And your iCloud for two or three weeks? I will start…

How to create your own service similar to iCloud?

As argued by skeptics that simple. Well, answered the developers of the iCloud, let someone try. It’s really easy.

To do this:

— Pick up, install and configure the servers to ensure their uninterrupted work around the clock;
— Create a Protocol of the service;
— Write a huge amount of source code for servers and for clients;
— Organize timely dispatch, delivery and acceptance of notifications (users like it when the sync happens immediately);
— To provide simultaneous archiving for recovery after emergency situations;
— To provide immediate and round the clock technical support for all;

And yet another couple of different “necessary”.

Even if you do not put before itself global problems, and try to develop a service designed for a dozen other clients, on the basis of standard protocols and standard technologies, and as the server decided to use a decommissioned PC-box purchased for a few tens of dollars, something could happen.

But it’s still more expensive and troublesome than using iCloud. Especially since he not written the world’s worst engineers, and “just works.”

As for embedding the application in its infrastructure, you don’t need a Mac. Why the usual Apple is not too smart comments, the company said.

To create a service-level iCloud requires a Google or Microsoft.

for iCloud application developers

Compared to their counterpart, to integrate the iCloud was easy.

To connect your application to the iCloud service required:

— To have an idea about the “anatomy” of iCloud (read the description to the end, at least once)
— Decide how the application should interact with iCloud, and consider the interaction to reduce traffic
— To register in the application of his “possessions in the clouds”
— Using iCloud API to implement thoughtful in the second paragraph

The third paragraph did the application to the Mac App Store is required. That is, all other concerns were added to meet the demands of the processors that store. A good reason to think again.

Check possessions were simple: a list of rights (entitlements) were added to the key or keys to work with iCloud storage.

Nowadays the registration process has been simplified possessions, in 2011 it was done by hand, it looked like this:


Experience non-trivial, but iCloud API has simplified this process almost to ugliness.

In OS X management interaction was built in the NSDocument class, adding half a dozen new classes are assumed non-trivial particular (conflict resolution, search, storage version). New classes were used in several innovations in OS X Lion.

To the fifth version of iOS to work with documents (e.g. MS Word documents or Numbers) used surrogate class in iOS 5 there is the UIDocument class, almost a full copy of the “real”, but tailored to local specificities.

In theory it was easy, in practice significantly more difficult, especially the first time.

A brief sketch of the anatomy iCloud

The user (more accurately Apple ID user, you can get hold of them indefinitely, and without much effort) are allocated 5 GB of cloud memory. The increase in the quota in the first months of the existence of iCloud was impossible for any money. Pay the quota was met with applause – but more on that sometime later.

Data for all user programs hosted in the cloud, in sum, to go beyond the quota could not. But there were some details.

First, some of the data is controlled by Apple, was located outside the quota.

Secondly, storage was of two types. One kept the records. The developer has decided what to store on the cloud in the instructions was a section that taught his economical management of the economy. The second stored pair “key-value”, outside the quota, but with a host of other restrictions. The application could only be one store of this type, in size it could not exceed 64, and the pair “key-value” could not be more than 4 K.

But were allowed to use one set of repositories for several programs. Apple cited the example of variants, Lite and Pro, who worked with documents of the same type, and could be installed on different devices of the user. I’d add an even more common case: the app exists in versions for OS X and iOS – it’s actually at least two different applications.

And finally about the conflict: not a conflict between developers, and even their conflicts with managers and company management. There was theoretical as it seemed everyone who is faced with iCloud for the first time, the possibility of making changes to the same document on multiple devices at once. Unfortunately, a purely practical one.

We could tell you many interesting things about iCloud, but in a series this is not the last issue.

To be continued