Can’t you use NSIncrementalStore to talk with REST services as a backend for Core Data? I remember seeing some articles on this.
Yes: http://sealedabstract.com/code/nsincrementalstore-the-future-of-web-services-in-ios-mac-os-x/ http://stackoverflow.com/questions/17813652/nsincrementalstore-using-local-and-remote-data I’ve never tried it, but it seems like its been forgotten about. On Oct 16, 2013, at 4:57 PM, Jens Alfke <j...@mooseyard.com> wrote: > > On Oct 16, 2013, at 8:24 AM, Flavio Donadio <fla...@donadio.com.br> wrote: > >> So, that's why we need another tier: an application server between the >> client and database server, to manage locking and concurrency (among other >> things). >> This is really annoying, as we have to deal with things like web services >> (or, even worse, custom protocols), data encoding into structures meant only >> for client/server communication (stuff like XML, JSON or whatever). > > It’s inevitable. You can’t safely make a client-server connection over the > Internet look like a traditional database connection. They have very > different characteristics: reliability, latency, throughput, security. I’m > offline right now, but look up “distributed computing fallacies” for a great > description of all the ways network requests can get into trouble. So using > Core Data to hide the fact that you’re talking to an Internet service would > be a bad idea. > > This is why REST APIs (for example) don’t use transactions, send more data at > once, have flexible schemas, etc. > >> In cases where a partially connected application is desired, even if you >> want to use CoreData in the client, it's still very hard to do. You have to >> have two identical models (one for the server, one for the client -- often >> in different formats) and keep them in sync as you add/change features to/in >> the app. You also have to generate NSManagedObjects from the data you >> receive from the app server and save them back when the objects modified. >> AFIncrementalStore helps, but it could be even easier. > > Yeah, I don’t think CoreData is the right tool for that kind of job. In my > day job I work on a data sync engine (Couchbase Lite) that uses a REST-based > transport protocol, and the app API it provides is lower-level than Core > Data; but on the other hand it’s a lot simpler. The world the developer sees > is one with a local database, one that may change asynchronously as the > background replication task pulls in new revisions from the server. This can > result in conflicts (just like a “git pull”, say) that need to be resolved. > It’s a pretty nice way to work, since it lets you ignore the network and > think in terms of JSON objects and revisions instead. > > —Jens > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/cocoa-dev/alex%40webis.net > > This email sent to a...@webis.net Alex Kac - President and Founder Web Information Solutions, Inc. "To educate a person in mind and not in morals is to educate a menace to society." -- Theodore Roosevelt _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com