With CloudKit, however, developers also gain access to a new "public" data store that is automatically shared among all users of their apps. The disk space used by the public store is counted towards a different allowance, which Apple allocates on a per-app basis and makes available for free with a set of very generous limits.
To programmers, this new shared data store looks like a combination between a big database and a disk drive that they can control with the same programming tools that they use to build their apps today. The big difference is that the information stored in it can be made available to multiple users, allowing them to collaborate and share information through the cloud — something that iCloud "Classic" was unable to do. For its part, Apple leverages its existing infrastructure to provide all the servers, bandwidth, storage, and maintenance required to run the service — free of charge to everyone involved.
Don't let the term "public" put you off, though — CloudKit doesn't force all the shared data in a big bucket that is automatically visible to everyone who installs a particular app. Instead, developers will be able to protect the information as they see fit, allowing, for example, users from a particular group or organization only to have access to specific content.
Like a server in the app
But that's not all — developers can also use CloudKit to track changes to the underlying data and generate events when they occur. This makes it easy, for example, to send a remote notification when a message stored in the public database receives a reply, or when an invoice is approved. Again, Apple's servers take care of all the heavy lifting, eliminating the need for developers to set up their own notification servers — and automatically scaling up to handle loads of any size.
Finally, CloudKit allows third-party apps to piggyback their authentication mechanism on Apple ID, thus making it easy to tell each user apart in a unique way without having to write and maintain a login system — and without forcing users to remember yet another password.
Like everything that Apple does these days, CloudKit is also infused with a deep-seated respect for the user's privacy. By default, for example, Apple ID will only let developers know if a user is logged in or not, and it'll assign an identification number that is unique but otherwise anonymous. Only with users' explicit permission are developers capable of getting access to even a user's first and last name; every other bit of information attached to an Apple ID identity, including e-mail addresses and physical locations, remains entirely off-limits.
Sign up for CIO Asia eNewsletters.