Tuesday, September 17, 2013


Marco Arment:

FCModel is a generic model layer on top of FMDB. It’s intended for people who want some of Core Data’s convenience, but with more control over implementation, performance, database schemas, queries, indexes, and migrations, and the ability to use raw SQL queries and SQLite features directly.

FCModel accomplishes a lot of what Brent Simmons wrote about. This is my version of that.

It’s a basic object mapper that supports uniquing/caching but not relationships. Unlike Core Data, the objects can be modified from any thread.

I think Core Data is OK as far as it goes but that it needs an “escape hatch” to do more database-style operations. In other words, instead of having to drop Core Data entirely, you would stay with the framework but forego certain object niceties that don’t work well with those commands.

Update (2013-09-19): Collin Donnell:

The truth is that because Core Data is a general solution which completely abstracts you away from the idea of using a database, I’m not sure there’s anyway that it couldn’t be a bit complex in places and that there wouldn’t be walls to bump up against. In my experience with Core Data everything works great except when it doesn’t, and because you’re so abstracted away from the implementation detail of it using a SQLite store, when you do hit those walls, you hit them hard.

Comments RSS · Twitter

Leave a Comment