Hi Becky, the app sounds like a nice idea (my wife could be a beta tester, she does a lot of knitting and crochet).

Regarding the sync + local issue, this is very similar to the kind of thinking I went through when starting work on Findings (an app for scientists). I wanted a storage that works locally, and that also worked when used on Dropbox from multiple devices (or iCloud drive, or Google Drive, or etc), but in a way that would be completely transparent to the app: a file is a file is a file, and whatever Dropbox/iCloud/GoogleDrive is doing, it should just keep working. This is what led me to the ‘PARStore’ format (I gave a Blitz talk at NSConf 5, and see: https://mjtsai.com/blog/2014/05/21/findings-1-0-and-parstore/). A Findings library is now a collection of PARStore files, with a library manager layer on top that keeps track of modified files and builds a cache for indexing and for parts of the UI (see another Blitz talk at NSConf 6) . The foundation was quite a bit of work, but has been rock solid and this strategy brings a lot of flexibility to the way a document can be stored, shared, synced and merged.

If I were to start an app like yours, I’d copy of lot of my Findings code, but I can see how the above might be a lot of work (and maybe overkill?). I’d stay away from CoreData sync, though, and look into Ensembles indeed.

Charles