I've had the same thoughts and internal discussions a few times. I recently found these two articles, one talking about using NSCoding instead of CoreData, and the other is about helper libraries to make CoreData easier to manage. Both are good reads if you're working on iOS apps.