a coredata journey

37
A Core Data Journey

Upload: ionut-alexandru-terente

Post on 10-May-2015

173 views

Category:

Mobile


1 download

DESCRIPTION

A CoreData Journey, presentation given at CodeCamp on 10 Mai 2014.

TRANSCRIPT

Page 1: A CoreData Journey

A Core Data Journey

Page 2: A CoreData Journey

Who Am I?

• Alex Terente

• Mainly iOS developer

• Consultant and working @ TAGonSoft

[email protected]

Page 3: A CoreData Journey

What is Core Data?

“The Core Data framework provides generalized and automated solutions to common tasks associated with object life-cycle and object graph management, including persistence.”

Page 4: A CoreData Journey

What is Core Data?

• Allows definition of Managed Objects

• Functionality to create, update, delete, query

• Multiple back-end storage options

Page 5: A CoreData Journey

Storage Options• Binary

• In-memory

• XML

• Not available on the iPhone

• SQLite

• Only option that does not require the entire store to reside in memory

Page 6: A CoreData Journey

What is not Core Data

• Core Data is not a relational database or a relational database management system

• Core Data is not a silver bullet.

Page 7: A CoreData Journey

Core Data vs. SQLiteSQLite Core Data

Bulk/Set Operations

Yes No

Automatic object

populationNo Yes

Custom SQL Yes No

Select only certain fields

Yes No

Automated Migrations

No Yes

Less Complex Code

No Yes

Page 8: A CoreData Journey

Interface to Core Data

NSPersistentStore

NSPersistentStoreCoordinator

NSManagedObjectContext

Page 9: A CoreData Journey

NSPersistentStoreCoordinator

Page 10: A CoreData Journey

NSManagedObjectModel

Page 11: A CoreData Journey

Model Demo

Page 12: A CoreData Journey

NSManagedObjectContext

Page 13: A CoreData Journey

Inserting an Object

Page 14: A CoreData Journey

Querying for Objects

Page 15: A CoreData Journey

Deleting an Object

Page 16: A CoreData Journey

Updating an Object

• Same as insert

• Make changes followed by ManagedObjectContext save

Page 17: A CoreData Journey

Save Context

Page 18: A CoreData Journey

Code Demo

Page 19: A CoreData Journey

Migration

• Lightweight Migration

• Model versioning

Page 20: A CoreData Journey

Lightweight migration

• Adding or removing entity, relation or attribute

• Making attribute non optional

• Making non optional attribute optional

• Renaming an atribute or entity

Page 21: A CoreData Journey

Lightweight migration

Page 22: A CoreData Journey

Model Versioning

Page 23: A CoreData Journey

Model Versioning

Page 24: A CoreData Journey

Model Versioning

Page 25: A CoreData Journey

Code Demo

Page 26: A CoreData Journey

Threading• Must create a new

NSManagedObjectContext for each thread

• NSManagedObjects are associated with a particular context

• NSManagedObjectContext can be updated with changes from other contexts

Page 27: A CoreData Journey

Code Demo

Page 28: A CoreData Journey

Core Data and iCloud

• Enabling

• Add iCloud Persistent Store

Page 29: A CoreData Journey

Enabling iCloud

Page 30: A CoreData Journey
Page 31: A CoreData Journey

Enabling iCloud

Page 32: A CoreData Journey

iCloud Persistent Store

Page 34: A CoreData Journey

Q & A

Page 35: A CoreData Journey

Thank You

Please feel the evaluation form

A Core Data Journey

Alex Terente

TAGonSoft.com

Page 36: A CoreData Journey
Page 37: A CoreData Journey