-
iCloud and the future of collaborative editing
I have some experience with iOS development, and I’d read the iCloud developer docs a while back. But it just clicked for me today how directly relevant some of iCloud’s capabilities are to FCP X.
Do I mean to say we’ll all be using iCloud to sync events and project files? Well… maybe someday. But what’s more immediately applicable here is not iCloud, the Apple-hosted service, but some of its underlying support technology.
iCloud has these things called ‘ubiquity containers’. A ubiquity container is a sort of magic box. An app can put a document in one, and that document is available to other instances of that app on all the other devices connected to the iCloud account. Apps can use this for regular documents. But where things get really interesting is when apps use it with Core Data documents. See, there’s some additional magic with those.
For those who aren’t familiar, Apple describes Core Data as a “an object-graph management and persistence framework”. In slightly more accessible form, that means that developers can use Core Data to represent the various pieces of data their apps work with (that’s the object part). Core Data provides a lot of capabilities for defining how one piece of data relates to other pieces of data (that’s the graph part). And Core Data also provides an easy way for apps to save all of this out to disk and load it back in later (that’s the persistence part).
iCloud, though, can provide an additional service to apps that use Core Data — syncing. Not passive Dropbox-style syncing, where if you have a text file stored on Dropbox open on two Macs, and you edit it on one of them, you won’t see the changes on the other until you close and reopen the file. Active syncing. Of the live object graphs in whatever apps are using the Core Data document in question. This means live updating — make a change on one computer, see it on the other a few seconds later.
As for the relevance to FCP X, guess what FCP X event databases and projects are? Yup. They’re Core Data documents.
Add Core Data syncing to FCP X, and you’d hypothetically get seamless live syncing of projects and events. This means you could literally be watching the event viewer update as another user tagged clips, or watching clips move around in a timeline as another user edited — and you could also make changes yourself, which would be propagated the other way. Mix in some shared storage, so you can all actually access the same media files as well, and you’d have an absurdly powerful collaborative editing environment.
Now, actually syncing this stuff over the Internet to Apple’s iCloud servers may or may not make sense. It’s actually not as implausible as one might think, because iCloud’s Core Data syncing does incremental updates. Once the initial document is uploaded, only changes need to be sent. But even if that isn’t practical, Apple could simply package this same technology into a locally deployable, re-imagined version of Final Cut Server.
When might we see this? It’s hard to say. I haven’t written any code that uses Core Data syncing myself, but I’ve read that it’s still rather buggy. And using it as I’ve described in FCP X would be by far the most ambitious use anyone had tried to put it to, as far as I’m aware. But it’s hard to believe something like this isn’t somewhere in FCP X’s future.
—
Digital Workflow/Colorist, Nice Dissolve.