Syncing Data with CloudKit

Storing data locally in Core Data is pretty sweet, but storing data locally on a device has its limitations. When a user gets a new device or uninstalls your app, their database is gone. This could be very inconvenient for the user because they might want to hold on to their data somehow.

Another inconvenience of a local database is that the database isn't shared across a user's devices. To work around this problem, you could implement your own backend server and store your user's data there. However, this comes with great responsibility because you would have to ensure that your user's data is protected and stored securely, not to mention the amount of effort and costs that will go into building and maintaining your own backend.

If you're looking for an excellent way to synchronize data across a user's device without having to build your own backend or invest vast amounts of time into storing data securely, CloudKit is precisely what you need. In this chapter, you will learn how you can set up a simple data store on Apple's CloudKit service to allow data-sharing between a user's devices and even how you can share data across multiple users!

In this chapter you will learn about the following topics:

  • Getting familiar with CloudKit
  • Storing and retrieving data with CloudKit
  • Combining CloudKit and Core Data

By the end of this chapter, you will know everything you need to know about implementing CloudKit in an application and keeping a local Core Data database in sync with the remote data.