CloudKit Introduction

CloudKit is nothing more than a framework that allow you to move an iOS or Mac application’s data to and from Apple’s cloud servers. Now, before you dive into CloudKit, let’s get acquainted with CloudKit architecture.

CloudKit Architecture

The CloudKit architecture consist of five components. Let’s examine each in turn.

1. CloudKit Container

When you configure an iOS application to use CloudKit, CloudKit creates a container on Apple’s iCloud servers. Within that CloudKit container, CloudKit creates a private database and a public database.

2. Private Database

Within the private database, the user’s records are stored in a default zone. You can create custom zones in the private database and store the user’s records in them. Records stored in the private database consume the user’s storage.

3. Public Database

Within the public database, the app’s records are stored in a default zone. You cannot create custom zones in the public database. Records stored in the public database consume the user’s storage.

cloudkit-container01

4. CloudKit Dashboard

The CloudKit Dashboard is a web portal that enable a developer to create and manage the CloudKit database records. You access it by clicking the CloudKit Dashboard button in Xcode; or by entering this URL in your browser:

https://icloud.developer.apple.com/dashboard

cloudkit-figure0-0

5. The CloudKit Framework

The CloudKit Framework enables a developer to programmatically transfer the CloudKit database records to and from Apple’s servers. An iOS app use the CloudKit Framework to interact with the CloudKit databases that are stored on Apples’s servers.

cloudkit-architecture

Topics Covered in The CloudKit Tutorial

Now that you are acquainted with the CloudKit architecture, you are ready to learn how to use it in an iOS app. Here is a list of lessons covered in the tutorial.

1. CloudKit Entitlements
2. CloudKit Authentication
3. CloudKit Discoverability
4. CloudKit Record Zone
5. CloudKit Subscription
6. CloudKit Save a Record
7. CloudKit Fetch a Record
8. CloudKit Update a Record
9. CloudKit Delete a Record