I\'m working on my 2nd iPhone app and am curious about Core Data. Time on the project is limited, as is my time overall.
I\'m the only dev and I have a feeling tha
You have a couple of different options for a persistent local store, but you would need to use one of them anyway so why not use Core Data?
As for learning curve, there are applications in the examples that will help you here. It's pretty straightforward once you walk through the samples.
-t
Core Data will mainly help in the auxiliary facets of the application - things like data persistence, presentation, etc. Some bullet points for your boss:
Sure, the learning curve may be a bit steep, but the Apple examples are great to start with, and the Core Data documentation is very complete and helpful. Once you've got Core Data down, it'll be a breeze to build your app.
To leverage CoreData, you'll need to know a fair amount of Cocoa technologies, concepts, and patterns. The learning curve is not really steep if you know these things. If it looks steep, I would avoid making it critical to your project, and then just learn during downtime, finally using it once you are comfortable with it. It is definitely not a beginner technology; you'll need a good programming foundation, including Cocoa specific technologies and concepts. A lot of people see it and think it will be easy for them, because they would, could get a lot for free. It's like a code generator, pretty close to useless to somebody who uses it to do just that (churn out code), rather than using it skillfully in response to the problem set.
A Core Data managed object can have all its data saved to database and is only referenced as an ID in memory. Thus Core Data can save lots of memory especially when you have lots of model data. Once you use Core Data you don't even need to worry about model data memory problems anymore.
As far as the learning curve goes, I don't think it's as bad as you think. Using Apple's example classes and default CoreData project template, I was able to have a working CoreData app (fairly simple, but not trivial) up in a single afternoon, and it only took a couple days of playing around with the code before I had a really good understanding of what all the moving parts were (all while developing the rest of the app, so no time was wasted in tinkering).
CoreData works very...logically, I guess, and it's incredibly convenient. It saves you a lot of overhead, and I know it certainly saved me a lot of time writing that app. The short initial investment in learning the new technology was well worth it in the long run, now that I have such a powerful tool in my holster.
I'm still in the X-Code 101 range of knowledge, but the first app I undertook on my own used core data (after reading a good tutorial).
There is a lot of boilerplate software that comes already written in the empty app template, but the actual programmer interaction with the data base functionality is minimal and straightforward.
Give it a shot: it's easier than you think.