Hacker News new | ask | show | jobs
by stevenwei 4829 days ago

  iCloud can resolve this problem by letting your users edit data offline and 
  resolving any merge conflicts automatically (and in the case of iCloud Document
  syncing, giving you some options to get feedback from the user to help resolve 
  the merge conflicts). If this worked seamlessly, it would add great value to
  your product. 
If it worked seamlessly, which it doesn't. Conflict resolution is very application specific, I'm not convinced that a one-size-fits-all automated solution will ever be able to handle the edge cases as well as the original developer, who has intimate knowledge of the problem domain and the structure of the data to be synced.

  App Store Features: you might get featured by Apple on the App Store for using
  their latest, greatest technologies.
Don't think this is relevant for iCloud anymore. Besides, Apple has featured tons of apps that do their own proprietary sync or use Dropbox for syncing. (e.g. Evernote, Omnifocus, 1Password). The quality of the app is much more significant than the APIs it uses.

  Future Plans to move to Android / Web: a legitimate concern. But why not wait
  till your iOS product has grown big enough to have substantial demand for
  Android and/or Web, and develop your custom back-end solution then?
Migrating your user's data off iCloud one year later is going to be a massive, massive pain to deal with. And database syncing is not like file syncing, it won't be trivial to integrate another syncing mechanism into the application. Things will start to get quite messy if you also want to interleave iCloud in there for backwards compatibility.
1 comments

Good points, though I'll just say this:

- using Apple-sanctioned technologies might improve your chances of getting featured by Apple. Of course, well-known popular apps get featured regularly by Apple, but this is one of the factors that goes into their calculations of who to feature. This is not a reason per se for using iCloud, but an added incentive (as I mention, it really didn't pan out for me!)

- Exporting data out of iCloud shouldn't be any more complicated than importing data into iCloud is. You can easily walk through the Core Data object graph and do whatever you want with the data. And with NSIncrementalStore, you can easily keep the core of your application the same and utilize some other web service to power the data for your app.