CoreStore
CoreStore copied to clipboard
Support non-CoreData
I love CoreStore. It works very well and it fixes pretty much every major issue I have with CoreData. While I personally have no issue with using CoreData as the foundation of CoreStore, what I keep thinking is that CoreStore is designed in a way that it really shouldn't care what the underlying store is.
Perhaps its Realm. Perhaps its CoreData. Perhaps its some other system. Pluggable modules almost. That would make CoreStore future-proof.
Just a thought.
Thanks for giving this much thought on CoreStore :) I appreciate ideas like these.
Backend abstraction is actually one of the motivations of the new CoreStoreObject
API, but on the storage layer (sqlite), not the ORM layer (Core Data). The thing is, Core Data supports any database backend and in fact 2 years ago I wrote a Realm-backed Core Data stack.
Core Data is actually one of the best ORMs out there, and I don't know if it would be realistic to reimplement faulting, notifications (fetchedResultsController), migrations, etc. I don't know if we can abstract all that to a worthy level. Realm for example took more than a year to get to the level of features they have today, and that's already their own in-house architecture.
With regards to future-proofing, I don't know if there's a better guarantee here than using an API that Apple itself created, maintains and uses. That said, if there's an open-source ORM abstraction that would exceed the utility of Core Data, I'll be happy to make CoreStore depend on that instead.