WWDC 2014 update?

iCould Drive doesn’t solve any of the problems inherent in syncing a file format such as Scrivener uses, so no, it won’t allow you to work on the same project if it is open in two places any more than Dropbox. It does, however, offer an alternative to Dropbox.

Swift has no effect on the production of Scrivener for iPad. Swift is an entirely new programming language in which you can create Cocoa apps. I’ve been playing with it, and it looks like a very nice language, but it won’t speed anything up for programs such as Scrivener which already have a large codebase, but rather, in the short and medium term will slow things down. I expect Objective-C will be around for a fair few years to come, but that Swift will ultimately replace it, which means that over the next few years we’ll have to start transitioning code to Swift. That is a huge undertaking (there’s something like 200,000 lines of code in Scrivener).

The 2014 changes will have a massive impact in the long-term, but in the short-term we have to keep using Objective-C in order to get the iOS version out without interruption. I also have to complete the modernisation of Scrivener’s code to all the latest Objective-C conventions for a major future version, which is the first step on the way the bringing in Swift. We’ve been hindered in doing this in the past because of our support for older OSes, so we plan to drop support for older OSes with our next major update so that we can completely modernise the codebase (something already begun).

We are looking into technologies such as Continuity and Handoff to see if they are feasible for us given Scrivener’s file format. Unfortunately, most of Apple’s new technologies work out-of-the-box for simple, flat file formats, but are unsupported for “shoebox” formats such as Scrivener’s, which are designed to hold all sorts of files. This is always our major hurdle when it comes to new syncing technologies (and a hurdle we can’t jump without removing Scrivener’s ability to import images, PDF files and such).

The changes introduced are ultimately exciting for users and for the future of the platform, but in the medium term are depressing for developers such as myself, not because they are bad, but because of the amount of work that is going to be involved in transitioning an establishing and stable codebase. It will involve months of work where nothing else can be done (but it will not be done all in one block, but rather intermittently over several years).

All the best,
Keith