Product Cover Image

Learning Core Data for iOS: A Hands-On Guide to Building Core Data Applications

By Tim Roadley

Published by Addison-Wesley Professional

Published Date: Nov 1, 2013

Description

Get Started Fast with iOS 7 Core Data App Development
Covers iOS 7 and Xcode 5


This is the first Core Data book to fully reflect Apple’s latest platform innovations, including its dramatic  recent improvements to iCloud support. Hands-on from start to finish, it teaches you step-by-step as you create a modern data-driven iOS app using Storyboards, ARC, iOS 7, and Xcode 5.

Tim Roadley introduces new patterns and best practices designed to overcome the frustrations of Core Data development. One step at a time, you’ll build and extend your skills--even mastering advanced techniques such as complex model migration, deep copy, background processing, and integration with Dropbox, StackMob, and iCloud.

Downloadable versions of this book’s main project are provided with each chapter, so you can see exactly what your app project should look like--and get cookbook-style code for your own projects. Chapter exercises help you explore even further, whether you’re a self-learner or a student in an iOS development course.

If you’re an experienced iOS developer, this guide brings together all the skills, tools, code, and patterns you need to add powerful data management capabilities to any app--quickly, easily, and painlessly.

Coverage includes the following:
  • Understanding Core Data
  • Adding Core Data to an existing project
  • Designing, upgrading, and migrating data models (automatically and manually with progress indication)
  • Populating views with data, including table-views and picker-views
  • Preloading a “default data” persistent store from XML
  • Deep-copying from one persistent store to another
  • Performance tuning with Instruments, using large photos as the example
  • Background processing, using thumbnail generation as the example
  • Efficient search
  • Seamlessly backing up and restoring with Dropbox
  • Stable integration with iCloud--with full support for multiple accounts, seeding, and de-duplication
  • Web service integration with StackMob

Table of Contents

Preface xv
Chapter 1: Your First Core Data Application     1

What Is Core Data?     1
Persistent Store Coordinator     2
Managed Object Model     4
Managed Object Context     4
When to Use Core Data     5
Introducing Grocery Dude     5
Adding Core Data to an Existing Application     6
Introducing Core Data Helper     7
Core Data Helper Implementation     9
Files     9
Paths     10
Setup     11
Saving     14
Summary     16
Exercises     16
Chapter 2: Managed Object Model Basics     19
What Is a Managed Object Model?     19
Adding a Managed Object Model     20
Entities     20
Attributes     22
Integer 16/32/64     23
Float and Double     24
Decimal     25
String     25
Boolean     25
Date     25
Binary Data     26
Transformable     26
Attribute Settings     28
Subclassing NSManagedObject     29
Scalar Properties for Primitive Data Types     31
Snippet Demo Method     31
Creating a Managed Object     32
Backend SQL Visibility     33
Fetching Managed Objects     36
Fetch Request Sorting     38
Fetch Request Filtering     39
Fetch Request Templates     40
Deleting Managed Objects     42
Summary     43
Exercises     43
Chapter 3: Managed Object Model Migration     45
Changing a Managed Object Model     45
Adding a Model Version     47
Lightweight Migration     48
Default Migration     52
Migration Manager     57
Summary     69
Exercises     69
Chapter 4: Managed Object Model Expansion     71
Relationships     71
Delete Rules     77
Validation Errors     81
Entity Inheritance     86
Summary     90
Exercises     90
Chapter 5: Table Views     91
Table Views 101     91
Core Data Table Views     93
Introducing CoreDataTVC     93
Fetching     95
DATASOURCE: UITableView     96
DELEGATE: NSFetchedResultsController     98
AppDelegate’s CoreDataHelper Instance     104
Introducing PrepareTVC     105
Data     106
View     108
Interaction     114
Introducing ShopTVC     117
Data     117
View     118
Interaction     121
Summary     122
Exercises     122
Chapter 6: Views     125
Overview     125
The Target View Hierarchy     126
Introducing ItemVC     127
Keeping Reference to a Selected Item     128
Passing a Selected Item to ItemVC     128
Configuring the Scroll View and Text Fields     129
ItemVC Implementation     134
Interaction     134
DELEGATE: UITextField     136
View     137
Data     139
Units, Home Locations, and Shop Locations     143
Adding and Editing Units     145
Implementing UnitsTVC     147
Implementing UnitVC     149
Segue from UnitsTVC to UnitVC     153
Adding and Editing Home or Shop Locations     154
Configuring the Home Location Views     154
Configuring the Shop Location Views     156
Summary     158
Exercises     158
Chapter 7: Picker Views     159
Overview     159
Introducing CoreDataPickerTF     160
DELEGATE+DATASOURCE: UIPickerView     162
Interaction     164
Data     165
View     165
Introducing UnitPickerTF     168
Creating the Unit Picker     170
Connecting the Unit Picker     171
Configuring ItemVC for the Unit Picker     171
Introducing LocationAtHomePickerTF     176
Introducing LocationAtShopPickerTF     178
Creating the Location Pickers     179
Connecting the Location Pickers     180
Configuring ItemVC for the Location Pickers     181
Picker-Avoiding Text Field     186
Summary     188
Exercises     188
Chapter 8: Preloading Data     189
Default Data     189
Is an Import Required?     190
Importing from XML     193
Creating an Import Context     196
Preventing Duplicate Default Data     197
Triggering a Default Data Import     198
Introducing CoreDataImporter     200
Selecting Unique Attributes     205
Mapping XML Data to Entity Attributes     206
Importing from a Persistent Store     209
Using the Default Data Store as the Initial Store     210
Summary     213
Exercises     214
Chapter 9: Deep Copy     215
Overview     215
Configuring a Source Stack     218
Configuring the Source Store     219
Enhancing CoreDataImporter     221
Object Info     221
Array For Entity     222
Copy Unique Object     223
Establish To-One Relationship     224
Establish To-Many Relationship     226
Establish Ordered To-Many Relationship     227
Copy Relationships     228
Deep Copy Entities     230
Triggering a Deep Copy     232
Summary     236
Exercises     236
Chapter 10: Performance     239
Identifying Performance Issues     239
Implementing the Camera     240
Generating Test Data     245
Measuring Performance with SQLDebug     250
Measuring Performance with Instruments     251
Improving Performance     254
Clean Up     261
Summary     262
Exercises     262
Chapter 11: Background Processing     263
Background Save     263
Background Processing     268
Introducing Faulter     269
Introducing Thumbnailer     273
Summary     279
Exercises     279
Chapter 12: Search     281
Updating CoreDataTVC     282
Updating PrepareTVC     289
Summary     294
Exercises     294
Chapter 13: Back Up and Restore with Dropbox     297
Dropbox Integration     298
Supporting Frameworks     299
Linking to Dropbox     300
Introducing DropboxHelper     302
Introducing DropboxTVC     304
Preparing CoreDataHelper     307
Building DropboxHelper     308
Local File Management     308
Dropbox File Management     310
Backup & Restore     312
Building DropboxTVC     316
Creating Backups     319
Displaying Backups     322
Restore     324
Summary     328
Exercises     328
Chapter 14: iCloud     331
Overview     331
Enabling iCloud     333
Updating CoreDataHelper for iCloud     334
The iCloud Store     335
iCloud Notifications     337
The Debug Navigator     341
Disabling iCloud     342
Summary     348
Exercises     348
Chapter 15: Taming iCloud     351
De-Duplication     351
Seeding     360
Developing with a Clean Slate     367
Configurations     369
Finishing Touches     370
Summary     371
Exercises     372
Chapter 16: Web Service Integration     379
Introducing StackMob     379
The StackMob SDK     381
Creating a StackMob Application     382
Managed Object Model Preparation     383
Configuring a StackMob Client     385
Saving     387
Underlying Changes     389
Automatic Schema Generation     390
Schema Permissions     393
Authentication     394
Securing the User Class     396
Introducing LoginVC     397
Maintaining Responsiveness     406
Summary     408
Exercises     409
Appendix A: Preparing Grocery Dude for Chapter 1     411
New Xcode Project     411
Storyboard Design     412
App Icons and Launch Images     415
Appendix B: Preparing Grocery Cloud for Chapter 16     417
Renaming Grocery Dude     417
Repointing File Paths     418
Renaming Groups and Tests     419
Renaming the Scheme     420
Updating the Artwork     421
Disabling Camera and Image Support     421
Workaround: Section Name Key Path Issue     422
Summary     423
Index     425

Purchase Info

ISBN-10: 0-13-337357-6

ISBN-13: 978-0-13-337357-8

Format: eBook (Watermarked)?

This eBook includes the following formats, accessible from your Account page after purchase:

ePubEPUBThe open industry format known for its reflowable content and usability on supported mobile devices.

MOBIMOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

Adobe ReaderPDFThe popular standard, used most often with the free Adobe® Reader® software.

This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.

Includes EPUB, MOBI, and PDF

$35.99

Add to Cart