Summary

In this chapter, you learned a lot about CloudKit. You learned what CloudKit is and what it's used for. You added the required capabilities to your app, and then you explored your new CloudKit container in the CloudKit dashboard. You used the dashboard to define some models that you will later use in your app.

After configuring the CloudKit dashboard, you got your hands dirty by implementing a CloudKit sync feature for the MustC app. You learned that CloudKit makes extensive use of Operations to manage database operations. You also had to set up AppDelegate so it would subscribe the app to changes in the user's database. Then you learned how you can fetch updates from CloudKit using a change token, and how to send new records to CloudKit.

To wrap the feature up, you adapted your Core Data store to make it act as a local cache for CloudKit. You saw how to convert a Core Data model object to a CloudKit record and vice versa. This chapter made some extensive use of extensions on objects, such as UserDefaults to make working with them more convenient. It's always a good idea to extract code you don't want to write too often into an extension if possible.

This chapter wraps up the MustC app for now. In the next chapters, you will dive into some of the excellent frameworks iOS has to offer, such as ARKit, Core Location, and SiriKit.