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

Más de Jorge Ortiz

Kata gilded rose en Golang
Kata gilded rose en GolangKata gilded rose en Golang
Kata gilded rose en Golang
Jorge Ortiz
 
CYA: Cover Your App
CYA: Cover Your AppCYA: Cover Your App
CYA: Cover Your App
Jorge Ortiz
 
Refactor your way forward
Refactor your way forwardRefactor your way forward
Refactor your way forward
Jorge Ortiz
 
201710 Fly Me to the View - iOS Conf SG
201710 Fly Me to the View - iOS Conf SG201710 Fly Me to the View - iOS Conf SG
201710 Fly Me to the View - iOS Conf SG
Jorge Ortiz
 
Home Improvement: Architecture & Kotlin
Home Improvement: Architecture & KotlinHome Improvement: Architecture & Kotlin
Home Improvement: Architecture & Kotlin
Jorge Ortiz
 
Architectural superpowers
Architectural superpowersArchitectural superpowers
Architectural superpowers
Jorge Ortiz
 
Architecting Alive Apps
Architecting Alive AppsArchitecting Alive Apps
Architecting Alive Apps
Jorge Ortiz
 
iOS advanced architecture workshop 3h edition
iOS advanced architecture workshop 3h editioniOS advanced architecture workshop 3h edition
iOS advanced architecture workshop 3h edition
Jorge Ortiz
 
Android clean architecture workshop 3h edition
Android clean architecture workshop 3h editionAndroid clean architecture workshop 3h edition
Android clean architecture workshop 3h edition
Jorge Ortiz
 
To Protect & To Serve
To Protect & To ServeTo Protect & To Serve
To Protect & To Serve
Jorge Ortiz
 
Clean architecture workshop
Clean architecture workshopClean architecture workshop
Clean architecture workshop
Jorge Ortiz
 
Escape from Mars
Escape from MarsEscape from Mars
Escape from Mars
Jorge Ortiz
 
Why the Dark Side should use Swift and a SOLID Architecture
Why the Dark Side should use Swift and a SOLID ArchitectureWhy the Dark Side should use Swift and a SOLID Architecture
Why the Dark Side should use Swift and a SOLID Architecture
Jorge Ortiz
 
Dependence day insurgence
Dependence day insurgenceDependence day insurgence
Dependence day insurgence
Jorge Ortiz
 
Architectural superpowers
Architectural superpowersArchitectural superpowers
Architectural superpowers
Jorge Ortiz
 
TDD for the masses
TDD for the massesTDD for the masses
TDD for the masses
Jorge Ortiz
 
7 Stages of Unit Testing in iOS
7 Stages of Unit Testing in iOS7 Stages of Unit Testing in iOS
7 Stages of Unit Testing in iOS
Jorge Ortiz
 
Building for perfection
Building for perfectionBuilding for perfection
Building for perfection
Jorge Ortiz
 
TDD by Controlling Dependencies
TDD by Controlling DependenciesTDD by Controlling Dependencies
TDD by Controlling Dependencies
Jorge Ortiz
 
Unit testing in swift 2 - The before & after story
Unit testing in swift 2 - The before & after storyUnit testing in swift 2 - The before & after story
Unit testing in swift 2 - The before & after story
Jorge Ortiz
 

Más de Jorge Ortiz (20)

Kata gilded rose en Golang
Kata gilded rose en GolangKata gilded rose en Golang
Kata gilded rose en Golang
 
CYA: Cover Your App
CYA: Cover Your AppCYA: Cover Your App
CYA: Cover Your App
 
Refactor your way forward
Refactor your way forwardRefactor your way forward
Refactor your way forward
 
201710 Fly Me to the View - iOS Conf SG
201710 Fly Me to the View - iOS Conf SG201710 Fly Me to the View - iOS Conf SG
201710 Fly Me to the View - iOS Conf SG
 
Home Improvement: Architecture & Kotlin
Home Improvement: Architecture & KotlinHome Improvement: Architecture & Kotlin
Home Improvement: Architecture & Kotlin
 
Architectural superpowers
Architectural superpowersArchitectural superpowers
Architectural superpowers
 
Architecting Alive Apps
Architecting Alive AppsArchitecting Alive Apps
Architecting Alive Apps
 
iOS advanced architecture workshop 3h edition
iOS advanced architecture workshop 3h editioniOS advanced architecture workshop 3h edition
iOS advanced architecture workshop 3h edition
 
Android clean architecture workshop 3h edition
Android clean architecture workshop 3h editionAndroid clean architecture workshop 3h edition
Android clean architecture workshop 3h edition
 
To Protect & To Serve
To Protect & To ServeTo Protect & To Serve
To Protect & To Serve
 
Clean architecture workshop
Clean architecture workshopClean architecture workshop
Clean architecture workshop
 
Escape from Mars
Escape from MarsEscape from Mars
Escape from Mars
 
Why the Dark Side should use Swift and a SOLID Architecture
Why the Dark Side should use Swift and a SOLID ArchitectureWhy the Dark Side should use Swift and a SOLID Architecture
Why the Dark Side should use Swift and a SOLID Architecture
 
Dependence day insurgence
Dependence day insurgenceDependence day insurgence
Dependence day insurgence
 
Architectural superpowers
Architectural superpowersArchitectural superpowers
Architectural superpowers
 
TDD for the masses
TDD for the massesTDD for the masses
TDD for the masses
 
7 Stages of Unit Testing in iOS
7 Stages of Unit Testing in iOS7 Stages of Unit Testing in iOS
7 Stages of Unit Testing in iOS
 
Building for perfection
Building for perfectionBuilding for perfection
Building for perfection
 
TDD by Controlling Dependencies
TDD by Controlling DependenciesTDD by Controlling Dependencies
TDD by Controlling Dependencies
 
Unit testing in swift 2 - The before & after story
Unit testing in swift 2 - The before & after storyUnit testing in swift 2 - The before & after story
Unit testing in swift 2 - The before & after story
 

Último

Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
AMADO SALVADOR
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
larapalaciosmonzon28
 
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
MiguelAtencio10
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
yuberpalma
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
KukiiSanchez
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
jgvanessa23
 
La Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docxLa Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docx
luiscohailatenazoa0
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
AbrahamCastillo42
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
cecypozos703
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
leia ereni
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
al050121024
 
INFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIAINFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIA
renzocruz180310
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
Manuel Diaz
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
Paola De la Torre
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 

Último (20)

Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
 
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
 
La Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docxLa Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docx
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
 
INFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIAINFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIA
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 

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