SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
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:
Apple’s Core Data Framework and the Swift Programming Language: Q&A with Tim Roadley
Avoiding Ten Big Mistakes iOS Developers Make with Core Data
Please visit the author's website at timroadley.com
Learning Core Data for iOS: Your First Core Data Application
Download the sample pages (includes Chapter 1 and Index)
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