DOWNLOAD A SAMPLE CHAPTER FROM THE COURSE: 05.ENTITY INHERITANCE (73MB)
Getting up and running with Core Data is actually pretty easy but you may have discovered that making your Core Data application run slowly is actually pretty easy as well. That's why we have developed a new course in which we look at how to make your Core Data applications perform to their best.
You can get to know about all the new features in OS X 10.7 (Lion) & iOS 5 that will help make you application run faster as well as looking at different techniques and principles you can apply to get the best performance from applications that need to support older versions of OS X and iOS back to 10.4 (Tiger) and iOS 3
Marcus S. Zarra is the owner of Zarra Studios LLC and the creator of seSales and iWeb Buddy as well as being a co-author of "Cocoa Is My Girlfriend", a wildly popular blog covering all aspects of Cocoa development. Marcus has been developing software since the mid-1980s and has written software in all of the major technological fields. Marcus has been using Core Data since its original release in OS X 10.4 Tiger and has released numerous applications and papers covering all of the topics of Core Data.
All the stuff you need to know to use the course and making sure we all understand what we mean when we talk about Core Data Performance.
Duration: 4 mins.
In this section we look into the different types of persistent stores that are currently available in Core Data. As we review each one we will discuss where they might best be utilised along with the pros and cons of each type.
Duration: 28 mins.
In OS X Lion & IOS 5 storing binary data efficiently has become very easy. If you need to support older versions of either iOS then you need to do a little more work to ensure you don't bring your application to it's knees. In this section we review the best practices for storing binary data in a Core Data database as well as the logic behind those best practices.
Duration: 27 mins.
Faulting is quite a complex concept to understand about Core Data. In this section we examine the concept in depth as well as review the impacts of faulting on application performance.
Duration: 16 mins.
While Core Data is often referred to as an "Object Graph" as opposed to a database technology, there are a few areas where we need to remember that persistence usually means writing the data out to a database format. This means we sometimes need to be aware of the consequences of our actions on the underlying database when making certain inheritance choices.
Duration: 8 mins.
Following our discussion on the difference between Entity Inheritance and Object Inheritance comes the discussion of database normalisation. In this discussion we see that Core Data being more about object design and less about database design means that we can gain more performance out of a less normalised data structure. By the end of this section we will review the most common performance bottlenecks with regard to normalisation and situations where we want to de-normalise the model to improve performance.
Duration: 7 mins.
Multi-threading is often used as a solution to performance problems in an application and it can be used to work with Core Data. However there are a few rules that are specific to Core Data that we must follow to insure proper data integrity. In this section we will review those rules and what situations we should be considering multi-threading to improve application performance.
If you are able to use iOS 5 or OS X 10.7 (Lion) then we also look at using Parent/Child managed object contexts as part of a threaded implementation.
Duration: 22 mins.
The introduction of Parent/Child Managed Object Contexts along with a number of extensions to the Core Data API allowing and sometimes even requiring the use of blocks means the way we used to do things has changed with Lion and iOS 5. This chapter examines the "New Way" and how it improves our applications performance.
Duration: 19 mins.
In this final chapter we look at general Core Data performance tips around deletions, searching and testing.
Duration: 13 mins.