SlideShare una empresa de Scribd logo
Core Data + iCloud
     Jorge D. Ortiz Fuentes
                 (@jdortiz)
Agenda
★ Mini intro a Core Data.
★ Funcionamiento de iCloud.
★ Integración con iCloud.
★ Problemas de implementación.


              2
Core Data
Mini intro a Core Data
★ Core Data =
  persistencia de
  objetos

★ Piezas   fundamentales:

  ๏   Managed Object Model

  ๏   Persistent Store

  ๏   Persistent Store
      Coordinator

  ๏   Managed Object Context

  ๏   Managed Object
La foto de Core Data
       MO    MO   MO   MO   MO



      Managed Object Context



             Persistent
         Store Coordinator               Managed Object
                                             Model

Persistent                  Persistent
  Store                       Store
iCloud
Mini intro a iCloud
★ Almacena  tus datos y
  los redistribuye a
  todos tus
  dispositivos.

  ๏   Independiente de la
      app.

★ Tres   mecanismos

  ๏   Key-value store

  ๏   UIDocument /
      UIManagedDocument

  ๏   Core Data
Key-Value store
★ Almacenamiento tipo   pList.
★ Limitado a 64k.
★ Sin conflictos = el   último
 gana.
★ Idealpara las preferencias
 comunes no críticas.



              8
Documentos
★ Contenedor ubicuo
★ NSMetadataQuery para buscar y ver
★ Implementa NSFilePresenter y usa
  NSFileCoordinator para coordinar.
★ Conflictos resueltos a medida.
★ Para documentos distintos
  sincronizados individualmente.



                9
La foto de iCloud

                        File 1
    NSFilePresenter

                        File 2

                        File i
    NSFileCoordinator

                        File n
Core Data
★ Preparada   para integrarse con
  iCloud
 ๏ SQLite persitent store (también
   Atomic).
 ๏ Base   de datos local.
 ๏ Sólo   migraciones lightweight.

★ Para aplicaciones tipo
  biblioteca (“shoebox”)

                  11
La foto de iCloud
    NSPersistentStoreDidImportUbiquitousContentChangesNotification




                                                    logs =
                                                    cambios
La foto de iCloud
    NSPersistentStoreDidImportUbiquitousContentChangesNotification




                                                    logs =
                                                    cambios



    NSFilePresenter



                           File 1

    NSFileCoordinator      File i

                           File n
Core Data + iCloud
Core Data con iCloud
★   Casi todo se mantiene igual.
★   Cada persistent store se añade con las
    opciones:
     ‣ NSPersistentStoreUbiquitousContentURLKey
     ‣ NSPersistentStoreUbiquitousContentNameKey
★   Al añadir el persistent store
    ๏   Asíncronamente.
    ๏   Con sección crítica (lock/unlock).
★   Atender a la notificación:
     ‣ NSPersistentStoreDidImportUbiquitousContentChangesNotification


                                 15
Además del código
★ App   ID con iCloud activado.
★




                16
Además del código 2
★ Entitlements


                        TeamID
                      implícito




                 17
El resto de ficheros
★ Los correspondientes view
  controllers implementan
  NSFilePresenter.
★ Los ficheros se acceden y
  modifican con
  NSFileCoordinator.




              18
Implementación
Inicio asíncrono
★ Al conectarse a Core Data la
  primera vez, puede haber
  datos ya enviados desde otros
  dispositivos.
★ La creación del persistent
  store debe ser asíncrona (GCD
  es tu amigo).



              20
Depuración
★ Sólose puede probar en los
 dispositivos.
★ Perono es necesario 2 (al
 menos al principio).
 ๏ Se   puede sincronizar con Mac OS
   X.




                  21
Datos iniciales
★ Sin iCloud: Persistent store
  precreado en el bundle y copiado a
  NSDocumentDirectory (o Library).
★ Eso no funciona con iCloud porque
  sólo se transmiten los cambios al
  persistent store.
★ EXPERIMENTANDO             CON:
   ‣   migratePersistentStore:toURL:options:withType:error:

   ‣   NSMetadataQuery




                             22
¡Gracias!

Más contenido relacionado

PDF
Core Data en Mac OS X
PPTX
Inside Wijmo 5 - GrapeCity Echo 2016
PDF
HCI: Design Patterns for Social Web Interaction
PDF
Uxpin mobile UI Design Patterns 2014
PDF
Ui design patterns
PDF
Tell Me Quando - Implementing Feature Flags
PDF
Unit Test your Views
PDF
Control your Voice like a Bene Gesserit
Core Data en Mac OS X
Inside Wijmo 5 - GrapeCity Echo 2016
HCI: Design Patterns for Social Web Interaction
Uxpin mobile UI Design Patterns 2014
Ui design patterns
Tell Me Quando - Implementing Feature Flags
Unit Test your Views
Control your Voice like a Bene Gesserit

Más de Jorge Ortiz (20)

PDF
Kata gilded rose en Golang
PDF
CYA: Cover Your App
PDF
Refactor your way forward
PDF
201710 Fly Me to the View - iOS Conf SG
PDF
Home Improvement: Architecture & Kotlin
PDF
Architectural superpowers
PDF
Architecting Alive Apps
PDF
iOS advanced architecture workshop 3h edition
PDF
Android clean architecture workshop 3h edition
PDF
To Protect & To Serve
PDF
Clean architecture workshop
PDF
Escape from Mars
PDF
Why the Dark Side should use Swift and a SOLID Architecture
PDF
Dependence day insurgence
PDF
Architectural superpowers
PDF
TDD for the masses
PDF
7 Stages of Unit Testing in iOS
PDF
Building for perfection
PDF
TDD by Controlling Dependencies
PDF
Unit testing in swift 2 - The before & after story
Kata gilded rose en Golang
CYA: Cover Your App
Refactor your way forward
201710 Fly Me to the View - iOS Conf SG
Home Improvement: Architecture & Kotlin
Architectural superpowers
Architecting Alive Apps
iOS advanced architecture workshop 3h edition
Android clean architecture workshop 3h edition
To Protect & To Serve
Clean architecture workshop
Escape from Mars
Why the Dark Side should use Swift and a SOLID Architecture
Dependence day insurgence
Architectural superpowers
TDD for the masses
7 Stages of Unit Testing in iOS
Building for perfection
TDD by Controlling Dependencies
Unit testing in swift 2 - The before & after story
Publicidad

Último (20)

PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PDF
clase auditoria informatica 2025.........
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
taller de informática - LEY DE OHM
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
SAP Transportation Management para LSP, TM140 Col18
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
CyberOps Associate - Cisco Networking Academy
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PDF
Estrategia de apoyo tecnología grado 9-3
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
clase auditoria informatica 2025.........
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
taller de informática - LEY DE OHM
Zarate Quispe Alex aldayir aplicaciones de internet .docx
SAP Transportation Management para LSP, TM140 Col18
introduccion a las_web en el 2025_mejoras.ppt
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Presentación PASANTIAS AuditorioOO..pptx
REDES INFORMATICAS REDES INFORMATICAS.pptx
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
CyberOps Associate - Cisco Networking Academy
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Sesion 1 de microsoft power point - Clase 1
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Estrategia de apoyo tecnología grado 9-3
Publicidad

Core data + i cloud

  • 1. Core Data + iCloud Jorge D. Ortiz Fuentes (@jdortiz)
  • 2. Agenda ★ Mini intro a Core Data. ★ Funcionamiento de iCloud. ★ Integración con iCloud. ★ Problemas de implementación. 2
  • 4. Mini intro a Core Data ★ Core Data = persistencia de objetos ★ Piezas fundamentales: ๏ Managed Object Model ๏ Persistent Store ๏ Persistent Store Coordinator ๏ Managed Object Context ๏ Managed Object
  • 5. La foto de Core Data MO MO MO MO MO Managed Object Context Persistent Store Coordinator Managed Object Model Persistent Persistent Store Store
  • 7. Mini intro a iCloud ★ Almacena tus datos y los redistribuye a todos tus dispositivos. ๏ Independiente de la app. ★ Tres mecanismos ๏ Key-value store ๏ UIDocument / UIManagedDocument ๏ Core Data
  • 8. Key-Value store ★ Almacenamiento tipo pList. ★ Limitado a 64k. ★ Sin conflictos = el último gana. ★ Idealpara las preferencias comunes no críticas. 8
  • 9. Documentos ★ Contenedor ubicuo ★ NSMetadataQuery para buscar y ver ★ Implementa NSFilePresenter y usa NSFileCoordinator para coordinar. ★ Conflictos resueltos a medida. ★ Para documentos distintos sincronizados individualmente. 9
  • 10. La foto de iCloud File 1 NSFilePresenter File 2 File i NSFileCoordinator File n
  • 11. Core Data ★ Preparada para integrarse con iCloud ๏ SQLite persitent store (también Atomic). ๏ Base de datos local. ๏ Sólo migraciones lightweight. ★ Para aplicaciones tipo biblioteca (“shoebox”) 11
  • 12. La foto de iCloud NSPersistentStoreDidImportUbiquitousContentChangesNotification logs = cambios
  • 13. La foto de iCloud NSPersistentStoreDidImportUbiquitousContentChangesNotification logs = cambios NSFilePresenter File 1 NSFileCoordinator File i File n
  • 14. Core Data + iCloud
  • 15. Core Data con iCloud ★ Casi todo se mantiene igual. ★ Cada persistent store se añade con las opciones: ‣ NSPersistentStoreUbiquitousContentURLKey ‣ NSPersistentStoreUbiquitousContentNameKey ★ Al añadir el persistent store ๏ Asíncronamente. ๏ Con sección crítica (lock/unlock). ★ Atender a la notificación: ‣ NSPersistentStoreDidImportUbiquitousContentChangesNotification 15
  • 16. Además del código ★ App ID con iCloud activado. ★ 16
  • 17. Además del código 2 ★ Entitlements TeamID implícito 17
  • 18. El resto de ficheros ★ Los correspondientes view controllers implementan NSFilePresenter. ★ Los ficheros se acceden y modifican con NSFileCoordinator. 18
  • 20. Inicio asíncrono ★ Al conectarse a Core Data la primera vez, puede haber datos ya enviados desde otros dispositivos. ★ La creación del persistent store debe ser asíncrona (GCD es tu amigo). 20
  • 21. Depuración ★ Sólose puede probar en los dispositivos. ★ Perono es necesario 2 (al menos al principio). ๏ Se puede sincronizar con Mac OS X. 21
  • 22. Datos iniciales ★ Sin iCloud: Persistent store precreado en el bundle y copiado a NSDocumentDirectory (o Library). ★ Eso no funciona con iCloud porque sólo se transmiten los cambios al persistent store. ★ EXPERIMENTANDO CON: ‣ migratePersistentStore:toURL:options:withType:error: ‣ NSMetadataQuery 22