We're beginning development of an in-house app in the iPhone Enterprise developer program. Since it's close to OS 3.0, we're reconsidering our original design of using SQLite and using Core Data instead. Here's some more info:
- There is a legacy desktop application that this is replacing. We will reuse the existing back end.
- We currently have a SQLite database generated as a proof of concept. This is basically a cut down version of the existing back end database.
- We will be loading data from a remote site and storing it locally, where it will persist and need to be . We only update it if it has changed, which will be every month or two. We will most likely use XML or JSON to transfer the data.
- There are two developers on this project and we both have strong SQL skills but neither one has used Core Data.
My questions are: what is the benefit of Core Data over SQLite, what would the benefit be in this specific instance and do the benefits justify learning a new framework instead of using existing strong SQL skills?
EDIT: I just noticed this question: http://stackoverflow.com/questions/523482/core-data-vs-sqlite3. I guess my questions therefore are:
- If I have to check if a specific item either exists or has an update, which is easy using SQL, does Core Data still make sense? Can I load the first object in a graph and check the version number without loading the whole graph?
- If we already know SQL, does the advantages of Core Data for this one project justify us learning it?