Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CloudKit - CocoaHeads Jan 2017

CloudKit - CocoaHeads Jan 2017

Présentation de CloudKit (le 'Parse' d'Apple) comme backend off the shelf, et retour sur expérience suite à son utilisation dans l'app 'BOLD' de My Little Paris. La version Android de l'app est également assurée via CloudKit JS, la version JS/REST/HTTP de l'API.

Présenté le 12 janvier 2017 à CocoaHeads, chez BlaBlaCar.
Vidéo: https://www.youtube.com/watch?v=lVpFjTsMCxE

Dimitri Dupuis-Latour

January 12, 2017
Tweet

More Decks by Dimitri Dupuis-Latour

Other Decks in Programming

Transcript

  1. Les Apps My Little Paris My Little App My Little

    Beauty Hook 50 Gifts 50 Rendez-Vous My Little Mood
  2. Alimentées par un BO • Applis Média • Contenus mis

    à jour fréquemment • Equipes Edito veulent
 un BO ‘user-friendly’
  3. CloudKit • Le « Parse » d’Apple (iOS 8) •

    BaaS : Backend-as-Service • ‘Off-the-shelf’ solution • Skill NOT required: JS, PHP, SQL, Node, REST… • Devenez un vrai « Full-Stack Developer »
  4. CloudKit Dashboard String Date/Time Int(64) Double Bytes Location Reference Asset

    —————— [String] [Date/Time] [Int(64)] [Double] [Bytes] [Location] [Reference] [Asset]
  5. API Features • Fields: (NS)Date, CLLocation, CKAssets… • Query: NSPredicates

    • Sort: NSSortDescriptors • Pagination (batches of ≅100 records at a time)
  6. Availability • CloudKit Framework (Swift / ObjC) • CloudKit JS

    (Javascript) • API HTTP / REST (Server-to-server et Android !)
  7. Other Features • Push Notification (onInsert, onCreate, onPredicate) • Private

    Database : • Transparent Authentification : no SignIn/Up • Store user data (ex: favorites…)
  8. Limitations ! • CloudKit handles Transport, not Persistence • Dashboard

    User-Friendlyness: good, but can be improved (better than manual editing JSON) • Image bandwidth limit rapidly approaching
 => images hosted on Amazon S3 • Bug in iOS 10.0/10.1 (fixed 10.2):
 iCloud account required to read public database