Everything has improved: syntax, architecture, performance, and support to recall and undo several layers of changes. It's all built into i OS and mac OS, and it's the recommended way for Apple developers to work with any nontrivial data.
Eager to see what we’ll have created by the end of this tutorial?
Take a look at the video, we’ll be creating this table view, populating it with data, adding the ability to delete records, add records, and sort/search records all backed by Core Data.
He summarizes his basic stance by saying that Core Data should be properly considered and handled as an object graph which also happens to allow to persist the objects it manages.
The main implication of this is that, if you ever need to "update 10 million records just to change a bit," there is possibly something to be fixed at the object design level.
The SQLite backend is more of an implementation detail, and in fact binary files or plists can be used instead.
The official Apple documentation describes Core Data like this: “The Core Data framework provides generalized and automated solutions to common tasks associated with object life-cycle and object graph management, including persistence.” [developer.apple.com] Before we get too technical about what Core Data is, I think it’s useful to dive in and start playing with the API a bit. The primary object that needs to be used to work with Core Data is the managed Object Context defined here.
After initial configuration RESTKit fetches data taking care of the network stuff and parses the results into either your custom classes or straight into Core Data.
In this tutorial we will be focusing on the latter.
Instructor Jon Bott starts with a review of the basics, explaining the different architectural data models currently in use, the issues that can arise from these different models, and how the latest changes in Core Data 2016 simplify these models.