Book Review: Core Data for iOS
I am always learning new things about my craft: from colleagues, on the job, from the Googles, and yes, from books. For technical topics, I like having a real book because when you’re done reading it, if it was a good book, it’s now a good reference. The tricky part in all this is finding the good books! And if you’re the one paying for it, all the more reason to know before you buy if it’s worth owning.
Over the holidays I finished reading Core Data for iOS: Developing Data-Driven Applications for the iPad, iPhone, and iPod touch by Tim Isted & Tom Harrington. If you’re waiting for a project to learn and use Core Data, then read this book. You’ll be more motivated than ever to get started when you’re done. And, you’ll be glad you own the real book.
My First Foray into Core Data
I actually implemented my first Core Data solution well before reading this book. And it was a very controlled, well bounded solution that I knew I could back out quickly if it didn’t work out. I will write about this project at a later date, but suffice to say that I had some data to persist that I needed to be able to manage efficiently. NSDictionary wasn’t hacking it. So I started looking into Core Data. I began by studying one of Apple’s Core Data examples until I was certain I could replicate the relevant pieces it for my own needs. To my great satisfaction, my cobbled together hack worked! But it really felt like dumb luck that it did.
What’s this have to do with the book? Well, nothing, except to say that having dabbled in Core Data, reading the book really pulled it all together for me, and has inspired me to go back and re-factor my code into something that is both efficient and written correctly.
Excellent All Around
I really enjoyed reading this book. If a technical book can be a “page turner”, this one is. The book is not only well written, it is well organized. Information is presented logically, and right up front the authors make it clear for whom the book is intended. Core Data is not a beginner topic, so you’d better know something about Cocoa development and Objective-C before you begin.
The authors cover all aspects of Core Data from stem to stern. This is not an “overview” book by any means. There is sufficient breadth and depth of material not only to get started with Core Data, but also to implement complex data models, troubleshoot, and tune for performance. The code examples are thorough, complete, and — most importantly — understandable! I would say that Core Data, on the whole, is not terribly complicated to use. There are just a lot of pieces to know how to use correctly (if you choose to use them all)!
Reading the book I had more than one “aha!” moment where I realized I could improve my own code or that I had not done something “quite right.” My realizations were not that I had done something “wrong” necessarily, but that I had not done something simply because I didn’t know it could or should be done! That is just one benefit from reading this book (or any technical book): it really fills in the blanks well. And more than that, it is a book I know I will refer to often when dealing with Core Data projects.
I highly recommend this book if you have any interest in either learning about or expanding your knowledge of Core Data.
Have you read any good technical books lately? Let me know which ones in the comments, and why they were good.
Core Data has changed quite a bit in iOS 5, including the introduction of UIManagedDocument, integration with iCloud, and parent and child contexts. The best book I’ve found on iOS 5 Core Data is Creating iOS 5 Apps by Rich Warren.
Thanks, Scott. I will have to check that book out, at least while standing in a book store. 🙂 I am guessing that it includes one or more chapters that talk about CoreData, along with all the “here’s how you write an app” stuff common in books with broad titles.
What I like about “Core Data for iOS” is that it is dedicated to the one topic. I don’t think the Core Data additions in iOS5 invalidate what is in the current printing of “Core Data for iOS”. I am sure the book will be updated with the new stuff eventually. 🙂 But it is certainly good that you mentioned it! Thanks!