I have plans to set up a website where people can create an account and create their own content. This content consists of text, images and likely audio.
Users should also be able to download an iPhone, iPad, Mac or even a Windows app that syncs with their online content, so they can view their content offline, possibly make changes to it, then sync with the online service again at a later time.
I'm having a hard time coming up with a decent architecture for the syncing part. What is the best way to communicate between the server and the apps? Should I use JSON, XML, or create my own file format? Then what about images and audio? Should I just zip everything then unpack it on the devices? Does anyone have experience with a service like this, and what was your approach?