Download - CloudKit
![Page 1: CloudKit](https://reader036.vdocuments.mx/reader036/viewer/2022081519/55819849d8b42a417f8b50c8/html5/thumbnails/1.jpg)
CloudKit Intro
NYC iOS Meetup, 9/3/14
![Page 2: CloudKit](https://reader036.vdocuments.mx/reader036/viewer/2022081519/55819849d8b42a417f8b50c8/html5/thumbnails/2.jpg)
About me
Arun Nagarajan (@entaq)
Currently Founding Engineer, funded stealth startup in NYCWe are hiring! Email me at [email protected]
Previously2 yrs at Google - Tech Lead, Developer Platform9 yrs at Verivo Software (Boston) - VP of Architecture
![Page 3: CloudKit](https://reader036.vdocuments.mx/reader036/viewer/2022081519/55819849d8b42a417f8b50c8/html5/thumbnails/3.jpg)
What is it?
● New Cloud API that provides backend to app● Other “iCloud” options
○ iCloud Core Data○ iCloud Documents/Drive○ iCloud Key Value Store
● Transport technology○ And not a local persistence layer
● 400 million iCloud accounts● Apple used it to build iCloud Drive & Photos
![Page 4: CloudKit](https://reader036.vdocuments.mx/reader036/viewer/2022081519/55819849d8b42a417f8b50c8/html5/thumbnails/4.jpg)
Key entities
● Containers● Databases● Records● Record Zones● Record Identifiers● References● Assets
![Page 5: CloudKit](https://reader036.vdocuments.mx/reader036/viewer/2022081519/55819849d8b42a417f8b50c8/html5/thumbnails/5.jpg)
Enabling CloudKit
![Page 6: CloudKit](https://reader036.vdocuments.mx/reader036/viewer/2022081519/55819849d8b42a417f8b50c8/html5/thumbnails/6.jpg)
Some favorite features
![Page 7: CloudKit](https://reader036.vdocuments.mx/reader036/viewer/2022081519/55819849d8b42a417f8b50c8/html5/thumbnails/7.jpg)
User Discovery
● User Record ID - unique per app/per user● Email address if user opts in● Scan address book for other contacts
○ You never get address book● One new permission dialog
![Page 8: CloudKit](https://reader036.vdocuments.mx/reader036/viewer/2022081519/55819849d8b42a417f8b50c8/html5/thumbnails/8.jpg)
Salient points
● Error handling is key● NSOperation based API
○ And a convenience API● Subscriptions/Push notification is solid● Querying based on NSPredicates
○ Location based queries● Dashboard
○ https://icloud.developer.apple.com/dashboard/
![Page 9: CloudKit](https://reader036.vdocuments.mx/reader036/viewer/2022081519/55819849d8b42a417f8b50c8/html5/thumbnails/9.jpg)
Is it ready?
● For now, Apple only (iOS and Mac)● Some server unavailable errors● No way to run server side code● Plenty of other options!
○ Hard to port over for the most part
![Page 10: CloudKit](https://reader036.vdocuments.mx/reader036/viewer/2022081519/55819849d8b42a417f8b50c8/html5/thumbnails/10.jpg)
Some troubles
![Page 11: CloudKit](https://reader036.vdocuments.mx/reader036/viewer/2022081519/55819849d8b42a417f8b50c8/html5/thumbnails/11.jpg)
Cost model
● Public database quota for developer● Private database quota for users
![Page 12: CloudKit](https://reader036.vdocuments.mx/reader036/viewer/2022081519/55819849d8b42a417f8b50c8/html5/thumbnails/12.jpg)
Costs
Storage - 5gb for assets, 50mb for DBTransfer - 25mb/day assets, 250kb/day DB
For every user, you get Storage - 100mb for assets, 1mb for DBTransfer - 500kb/day assets, 5kb/day DB
![Page 13: CloudKit](https://reader036.vdocuments.mx/reader036/viewer/2022081519/55819849d8b42a417f8b50c8/html5/thumbnails/13.jpg)
Sample costs
10k usersStorage - 1tb for assets, 10gb for DBTransfer - 5gb/day assets, 50mb/day for DB
100k usersStorage - 10tb for assets, 100gb for DBTransfer - 50gb/day assets, 500mb/day for DB