Tiger to get SQLite support.
SQLite is optimized to provide fast access to database records and is designed for general-purpose use. One example is Core Data--a new Apple framework that simplifies application creation based on a Model-View-Controller architecture--that uses SQLite extensively to provide backend storage for user-defined data.
This is pretty exciting stuff. Currently a lot of developers are either abusing the Preferences system to store data or using the Application Support Files directory to store loads and loads of little files containing configurable items.
Virtual Pet Rock for example uses it's preferences to store information about a rock's statistics in the preferences file, which is clearly wrong
for several reasons: the preferences system works well for small amounts of data but preferences are prone to corruption and can be suddenly wiped completely if the hard-disk runs full. (This is the reason I decided to store more information on uploads in our user-database some four months after the initial release: so I can restore a rock if the preferences are wiped.)
The method of storing loads of little files in Application Support is employed by for example BBEdit. This makes migrating or synchronising to another machine very tedious as there can be thousands of files. (My PHP
glossary, for example, contains 2,770 items.)
Another area where I can see improvement is in the handling of browser bookmarks and history/cache information. If these could be inserted into a database you would instantly get the ability to run SQL
queries against them, which makes me salivate. Or think of the potential for the iTunes XML
file! Currently I have a 12 megabyte XML file which is hard to parse or do anything with. See for example an earlier article
The possibilities are endless.