Scrivener for iOS: Syncing

Note: This post is part of a series that looks at features of our upcoming iOS version of Scrivener.

In my first post about our upcoming iOS version, I thought I’d get some important nuts and bolts out of the way: syncing. Scrivener for iOS syncs with the Mac and Windows versions using Dropbox. Here’s how it works:

  1. In the iOS version, you set up sync by tapping the sync button and then choosing to link to Dropbox (you’ll need a Dropbox account for this).
  2. Once you’ve linked to your Dropbox account, Scrivener will prompt you to choose a subdirectory of your Dropbox folder. Scrivener will download and sync any files you have placed into this folder on your Mac or Windows machine, and it will upload any files you create in the iOS version. Like most apps that sync with Dropbox, the default folder used for this is Dropbox/Apps/Scrivener, but you can choose any folder in Dropbox that you wish. (Just be aware that everything in the folder you select will be synced with your device, so it should be a folder you use to store only Scrivener projects.)
  3. Once you’re set up, any time you create a project in the iOS version, it will ask you whether you want the project stored on Dropbox or only locally.
  4. Any time you want to sync, you just hit the sync button anywhere it appears in the app, and Scrivener will upload all local changes to Dropbox and download all changes from Dropbox. (So you do not need to be online to work with your Dropbox projects.)
  5. You are free to leave the project open on your Mac or Windows machine while you use and edit it on iOS. After you sync, the changes will be detected and incorporated into the project.

Which makes the thousands of lines of code that went into this sound easy!

Note that you don’t need to sync your projects with Dropbox. If you don’t have a Dropbox account, you can transfer projects between your desktop and iOS device by copying them back and forth via iTunes.

Dropbox allows you to sync between your desktop and your iOS device.
We’ve had great feedback from beta-testers on this system, and it seems to be working brilliantly. Let’s address that elephant-shaped cloud in the room, though: iCloud. Sadly, Scrivener 1.0 for iOS will not support iCloud syncing. Part of the reason for this is that we have both Mac and Windows users, and iCloud is still much more associated with the Mac. That’s not the main reason, however: as much as we love iCloud, current limitations in and difficulties with iCloud mean that it is not at present best suited for the sort of complex, package-based file format used by Scrivener. A boring technical explanation follows…

Every Scrivener project is really a folder full of files and subfolders. This is different from most apps, which more commonly use “flat” file formats – a single text or XML file, or a zip package. This package-based format means that Scrivener doesn’t have to read into memory the entirety of a project containing a gigabyte of research materials upon opening it; Scrivener only ever reads into memory the files you are working on, and it releases them from memory if it no longer needs them or if memory usage gets too high (a particular concern on iOS). This format makes Scrivener’s unique features possible—but it’s not a format that plays well with iCloud. (iCloud does seem to have improved in this regard over the years, and Apple mentions in its documentation that it can work with file packages, but so far there is very little documentation on this beyond using very basic file packages that do not need to do the sorts of thing required by Scrivener.)

It’s not just the format itself, but how it is used. Because Scrivener projects comprise many files, it’s important that any given project is synced in its entirety and not piecemeal. If an updated binder structure is downloaded, it’s not much use if none of the new files it references are yet available, for instance. Dropbox gives us the control we need in this regard.

This is also the reason that the sync needs to be invoked manually rather than continually happening in the background. With background sync (which iCloud always uses), there is no control over which files appear when, meaning that important structural files could download without the files they refer to or vice versa. This is an even more serious problem when the connection is lost part-way through a sync. All too easily this could put a project into an inconsistent state that could wreak havoc, and we’d rather have users complaining that they don’t like manual sync than that they have just lost four hours of writing or structural changes!

I’m aware that the lack of iCloud support will be a disappointment to some users, but please rest assured that we will continue to monitor iCloud’s development. Apple are improving it all the time, and I hope that one day, when Apple enhances the frameworks and extends the documentation to more advanced uses, or perhaps if we can find a coder with expertise in this area to help me, we might be able to support it. (We’re not the only ones who have run into these problems, by the way: OmniFocus and Notebooks have had to omit iCloud sync for similar reasons.)

Right now, though, Dropbox sync is working smoothly and allows Mac and Windows users alike to work between their desktop machine and iOS devices: edit the project on your desktop, tap sync on your mobile device, make changes, tap sync again, and carry on editing on your desktop. By the end of July, you’ll be carrying your book around with you in your pocket, ready to type whenever inspiration strikes.

Scrivener for iOS: It’s Time to Talk

This month is something of an anniversary for us: it was ten years ago that we launched the Literature & Latte website and forums, after a few months of beta-testing on a temporary Proboard forum. I say “we” – back then it was just me. I was beavering away on Scrivener for Mac, wondering if anyone else would find the writing tool I’d always wanted useful. I never for a moment expected so many would.

Ten years on and I’m making the final bug fixes to Scrivener for iOS. I’m still the sole Mac (and now) iOS coder, but there are now a dozen of us: these days, L&L has a Windows team and a support team that do an amazing job and who make it possible for me to go on spending every day coding Scrivener for Mac and iOS. Everyone here came to be on the team through a love of writing and Scrivener, and we are incredibly excited about what we have in store over the next few months, which will be some of the biggest for Scrivener since its inception over a decade ago.

We have some fantastic things in store for our Mac and Windows users (which we’ll start talking about soon), but first up–at long last!–is our iOS version. Yes: it’s nearly here.

Next month, we will be submitting Scrivener for iOS to the App Store for release. In the run up, we’re going to post a series of short pieces on the blog telling you all about it, so that by the time it hits the store, you will be able to dive right in. In this first post in the series, before we go into more detail in later posts, I had intended to list some of the features you can expect. But then I thought: nah. Show, don’t tell. So here’s a video we made instead.

We’ve been blown away by the response of our beta-testers so far. Here’s what they’ve been saying:

I spent the first hour looking at the app with my jaw on the floor… It is amazing.
Scrivener for iOS is, for me, the deal-maker for iOS.
iOS Scriv exceeds my highest hopes. By far the best iOS app I have ever used.

Scrivener will work on any device running iOS 9.0 or above. You could tap out a whole novel on your iPhone, or spread out on an iPad Pro. It will cost $19.99, and will be coming to an iPad or iPhone near you in late July (App Store review times depending).

Guinea Pigs Wanted!

UPDATE: All beta slots have been taken up for now – they went quicker than we expected! Many thanks to everyone who volunteered. We may open up more slots soon, depending on how things go.

^^^^^^^^^^^^^^

Scrivener for iOS has been in closed beta with around 75 people for the past month. We’re now looking to expand the beta group, so are throwing open the doors to volunteers. If you’re interested in helping test Scrivener for iOS, read on!

The word “beta” has been watered down a little in recent years, with Apple and Google making available early “betas” of their software to everyone. As a result, the word has almost become synonymous with “getting it early”, with little expectation on beta testers to do much in return. Ours is a true beta, however, so the most important thing to bear in mind is that you shouldn’t sign up if you’re just after early access to Scrivener for iOS. We’re looking for testers who will be active in helping us track down bugs and find problems, to help us ensure the final product is as stable and great to use as possible.

We only have a limited number of beta testing spots available, and right now we’re looking to add between 200 and 250 new people to the pool. The spots will probably be taken up quickly, and we expect to receive more applications than we can accept, so please don’t be disappointed if you miss out, or if you apply but don’t get asked to participate—we may well scale up the beta further a little later.

You don’t have to be a techie to apply—you just need to be ready to use Scrivener a lot on your iPhone or iPad (iOS 9.0 or above is required).  Crucially, you need to be prepared to encounter bugs and to spend time trying to reproduce them so that you can write down the steps we need to take so that we can see them for ourselves and fix them. If you don’t have time to spend repeating the same sequence of actions over and over again in an attempt to trigger a bug you’ve spotted, then beta-testing isn’t for you—you should leave others to act as Guinea pigs and wait to reap the rewards of their frustrations when Scrivener for iOS is officially released instead!

Does this sound overly negative and “Here be dragons?” I hope not. The beta so far has been going great, with beta testers using Scrivener for iOS every day without any real problems. And now you can too—if you’re happy to get stuck in and haven’t been put off by any of the above, follow the link below to sign up. (Please make sure you use this form and do not email us directly; we’ll only be picking beta testers who have submitted the form. Thanks!)

Click Here to Apply to be a Beta Tester

From Alpha to Beta

Next week, I shall—at long last—be submitting Scrivener for iOS to Apple’s TestFlight beta-testing program. It has spent the past month in alpha-testing in-house (I am writing this blog post in Scrivener on my brand new iPad Pro 9.7”, in fact), and we’re now ready to open up testing to a slightly larger group. We’ve had a lot of users emailing us asking if they can beta-test, so in order to be entirely open, I thought I’d explain how we are going to approach the beta-testing process.

We’re going to run the beta in two rounds. For this first round of testing, we’re using a private group of testers on an invite-only basis. That sounds a bit clique-y, but actually there’s no favouritism or secrecy in how this group is selected: we’re always on the lookout for users on our forums, social media pages and through our tech support channels who seem particularly good at finding and reporting bugs (perhaps because they are very patient when tracking down a gnarly issue or because they are good at communicating problems—or maybe they’re just good at breaking things). We ask such users to help with early betas of our software when needed (I’m sure there are many, many users we have missed, though). These are our Guinea pigs, in other words, and we know that they won’t shout at us when their work blows up because of a typo with a semicolon on line 956 of the Dropbox syncing code.

After the initial round of beta-testing with the closed group, once we’re happy there are no obviously nasty data-loss or sync bugs that might cause issues for a larger group, we will throw the doors open, make the beta public, and ask for volunteers. We won’t be able to accept everyone, because there’s a limit to how many users we can add as beta-testers via Apple’s TestFlight program, but all of those of you who have been so enthusiastic about getting your hands on it will be able to put your name in the virtual hat. We’ll put up a form on our site where anyone can apply, and we’ll provide information about what you will need in order to be a beta-tester (which mainly just comes down to patience and being prepared to come across and report bugs). I’ll post information about that here, on the forums, and via our social media sites, when the time comes.

Full screen - not much to see here...
Full screen – not much to see here…

Alpha testing has been a fun process, by the way (apart from the awareness that every day in alpha is another day the software is late, of course!). If beta-testing is where you sand down all those rough edges and fix the broken parts, alpha-testing is where theory meets practice and you realise that as great as your sketches and notes for feature X looked, something about it feels awkward to use now that it’s there in front of you on your iPad.

For instance: Scrivener’s binder was originally a solely drill-down affair. Tap on the Draft folder, and a list of its subdocuments slide in; tap on “Chapter One” inside the Draft, and its subdocuments slide in. That seemed like a very iOS way of approaching it on paper, and a great way of viewing sections in isolation. In practice, however, it’s not so great when you want to get more of an overview of your manuscript, and it means a lot of drilling down and hitting “Back”. So, during the alpha, I added the ability to expand and collapse folders and groups just like on the Mac (but in an iOS way), providing the best of both worlds (because you can still drill down too).

Another “for instance”: To begin with, the inspector on iOS always appeared in a floating panel. But this meant you could never have it open directly alongside the editor or corkboard. So during alpha-testing, we came up with another solution for this, keeping things simple and “iOS-like”, but allowing for more flexibility.

Not only that: during the alpha period, Compile was massively improved, the import and export formats were expanded, corkboard images were added, and much, much more—other features we’ll start talking about soon. I don’t want to waffle on about all the great features while there’s not a release date, though, as that will just cause frustration (understandably). Right now, I’m excited that we are finally going into beta. Look out for the call for volunteers in a month or so, and we’ll start talking about the software, and posting screenshots, once the larger beta is in full swing and we’re close to release.

Oh, before I sign off, some answers to questions that come up a lot in the comments:

  • Scrivener for iOS will run on most iOS devices – the only requirement is that it can run iOS 9 and above.
  • It runs on iPhones as well as iPads (although certain features that require more space—such as the corkboard—are iPad-only).
  • It supports the multi-tasking features of the iPad Pro.
  • Scrivener for iOS will not support iCloud (at least for now) – syncing will be done via Dropbox. I’ll write a post explaining why soon. (You’ll be able to leave your desktop project open while you’re off using it on your mobile device, though.)

think that covers the most popular questions I got asked in the comments last time, but I’ll do my best to answer any other questions in the comments here.

Thanks again for everyone’s enthusiasm and support—the response to the last post was overwhelming in its positivity, and we all at Literature & Latte hugely appreciate it.

We Found That New iOS Developer, By The Way… (Me)

I know we’ve been quiet about the iOS version recently, and some users have been wondering if it’s still in development. After all the problems we’ve had with it, I took over development myself last year and rewrote it from the ground up. I had originally planned not to develop it myself so that I didn’t have to divide my time between the Mac and iOS versions, but in the event, coding our iOS version turned out to be a lot of fun, especially with the introduction of the iPad Pro. Adapting Scrivener for iOS felt like going back to the beginning and remembering why I built Scrivener in the first place.

I’ve now finished the rewrite and it’s in internal alpha-testing, which is going well – in fact, I was on holiday last week, and wrote exclusively using Scrivener on my iPad Pro. As soon as it’s in beta – which shouldn’t be too far away now (really, this time) – we’ll start bringing you more news. We’re incredibly proud of how it’s turned out, and I can’t wait to tell you more about it, and to get it into the hands of our users at last.

Thank you for your patience, your support, and your enthusiasm while Scrivener for iOS has been undergoing its long gestation.

— Keith (Scrivener designer, Mac and now iOS developer)

Looking for another iOS developer

We’re looking for another iOS coder to help speed things along with getting our iOS app finished. Full details can be found here:

http://literatureandlatte.com/workwithus.php

If you’ve got the right sort of experience and skills, and are interested in working with us, please drop us a line.

(A note to our users who have been waiting on this for far too long now: the iOS version has been feature-complete for a month or two but we are incredibly disappointed to say that it is still not ready for public beta testing – as we had hoped it would be by now – because of a number of outstanding issues. We are thus looking for a talented developer to help us get it ship-shape.)

A Quick iOS Update

We have a lot of people asking after the iOS version given that I haven’t posted much about it on here recently (although I have been giving incremental updates over on the forums). The lack of updates isn’t intended as a slight against our very valued users; it’s just because we’ve had our heads buried in code and haven’t been coming up much for air.

The good news is that our iOS version is (at last!) feature-complete and is currently in internal beta-testing. We’re in the process of smoothing out the rough edges we find through use and fixing bugs before we make it available to our wider beta-testing group. Having taken so long to get to this stage (we know), we don’t want to fall at the last hurdle and rush beta-testing. After all, the sync code is complex (it was a three-month job in itself) and we want to ensure it’s never going to cause any data-loss in the real world (it is holding up well in testing so far, though). Once it’s out with our wider beta-testing group, I’ll start posting some screenshots and showing off the features. Given past debacles, I’m hesitant to talk about release dates, but we expect a summer release, though whether mid or late summer will depend on what is thrown up during beta-testing, of course.

To answer some common questions we’ve had about the iOS version:

  1. Version 1.0 will sync with the desktop version using Dropbox. The sync code has two components, the Dropbox-specific code, and the code that handles merging all the changed files between platforms and dealing with conflicts. This second part of the code has been designed for reuse with other sync clients, so we plan on adding support for sync solutions other than Dropbox post-1.0 (Cubby is one that has been requested several times, for instance).

  2. There is no iCloud syncing in 1.0 because iCloud does not work well with package-based file formats such as Scrivener’s. We were hoping that iCloud Drive would provide a solution, and are still looking into it, but the APIs don’t seem to provide the flexibility we need on the iOS side. (The reason syncing is more complex with Scrivener than for most apps is because .scriv files are really folders, which is how we can allow you to import any sort of research file and only load files into memory as they are viewed in the app.)

  3. You can also transfer projects simply using iTunes, of course.

  4. When the iOS version is released, there will be simultaneous updates for both Scrivener for Mac and Windows that provide sync features. So don’t worry, Windows users, we have no plans of leaving you unable to sync!

  5. Version 1.0 will not have any dedicated screenwriting features, but scriptwriters will be able to sync their scripts using Fountain syntax for paragraphs.

  6. Scrivener for iOS is a full-featured writing environment – the binder, corkboard, outliner, full rich text editing (with comments, internal links and so on), import, export, reference to other documents (including images, PDFs, media files) – all the core features of the desktop version are there in the iOS version, but with a UI designed from the ground up for mobile devices.

  7. Scrivener will require iOS 7.0 or above.


It’s been a long journey, but at last the light at the end of that proverbial tunnel is in sight. I can’t wait to start showing you screenshots and talking about it properly.

It’s not all about the iOS version, however: our heads have been buried deep in code working on serious and extensive (and exciting) updates for our existing platforms, too. But we’re not yet ready to talk about those, and we want to get the iOS version out first.

EDIT: We’ve had a lot of users ask about how to get involved in beta-testing the iOS version (thank you!). In the past, the way we have always selected beta-testers has been to look out for users on the forums and social media pages who know their way around Scrivener, are good at reporting bugs or giving constructive feedback, or who post useful information on using Scrivener for fellow users. We continue to look out for new beta testers that way, and from that, we already have quite a large pool of testers for the Mac and Windows versions to whom we’ll be sending out iOS beta invites to begin with. Once we’ve got a better idea of what the numbers are like, and when the time comes, I’ll post more information here on how to apply to become a beta-tester for anyone else interested. Please note that it’s not a good idea to apply to beta test if you just want early access, though – the beta-testing stage is where we find the most bugs, so you have to be prepared for crashes and even possible data-loss (obviously we hope to have ironed out data-loss bugs by the beta, but beta-testing is where users find the things we’ve missed and we cannot guarantee that there won’t be hideous bugs lurking – beta-testers are guinea pigs). Beta-testers also have to be prepared to spend time trouble-shooting and providing us with detailed reports on every issue they find. We’ll provide more details once we’re nearing the end of internal testing.

The Vapour Trail of Scrivener for iOS

We’re over halfway through 2014, so I wanted to give our users a quick update on the progress of the iOS version of Scrivener. We receive emails and forum posts daily asking how it is coming along, and because of how long it seems to have been in development, we’ve even had users assume that it has been abandoned (we’ve even been accused of lying about it being developed at all, but I promise that’s not the case, even if we have continually underestimated the time involved).

The short version – the “tl;dr” version as the cool kids say – is that we still expect it to be finished this year, but now very much doubt it will be released until next year (2015) because of the amount of testing we need to put it through before letting it loose on the world. Don’t misunderstand – we are closing in on the final stages of development right now. But these final stages can still take a while, and I’d rather tell users now, in the middle of August, that we might be pushing into 2015, rather than keep my fingers crossed that we can squeeze it into 2014 and then only announce a delay at the last minute when we realise we aren’t going to make our target. Thorough testing of the iOS version is crucial, because it is designed to sync with desktop projects, and syncing can be a dangerous process – we want to ensure that any bugs that could cause data loss or corruption are truly ironed out before putting it into users’ hands.

I’m aware – if only because we’ve had it pointed out a lot! – that we have been saying “later this year”, then “next year” for two years now. Naturally, users wonder how so many delays can be possible. For a start, there’s a fairly obvious rule of software development: software development takes time (and developing good software takes a good amount of time). And then there’s the corollary to this rule: software programmers always underestimate how much time it will take (myself included).

Take the sync code, for example. Most iOS apps can take quite a simple approach to sync, using the built-in features that Apple provides for iCloud. Or they can use the Dropbox API to manage uploads and downloads. Nothing is so simple for Scrivener. One of Scrivener’s main features is that it allows you to bring in research files – photos, PDF files and so on – so that you can view them next to your text and keep everything together in a single project. In order to achieve this, Scrivener requires a file format quite different from most writing software. Scrivener, in fact, is something of a hybrid between a document-based program and a shoebox app.

Most writing software packages are document-based programs. A document-based program allows you to create, open and save documents, showing different documents in different windows. They use single, flat files that contain all the text and any graphical data for each document. These files are loaded entirely into memory when opened, and written out in their entirety as completely new files when saved.

A “shoebox app”, in contrast, usually has a single window that allows you to interact with many different files, opening them inside the one window. There will be a single folder on disk storing all of these files, but you usually won’t touch that folder at all. iTunes and iPhoto are examples of shoebox apps.

Scrivener is a bit of both. As a user, you interact with your Scrivener projects as though they were documents – each project is opened in a different window, and you have a .scriv file on disk for each project. But those .scriv files are really folders containing many different files – they are not flat files at all – and you navigate between them in the project window via the binder. This means that Scrivener doesn’t have to read these files entirely into memory on opening them, or save the whole file when saving. This is very important for projects that have a lot of research in them – you don’t want Scrivener storing a gigabyte of PDF files in memory while you are typing, or having to write all of this data to disk every time auto-save kicks in. This file format allows Scrivener to load into memory only the data that the user needs for a particular session, and it only ever needs to save what has changed (which also reduces the chances of catastrophic data loss caused by file system save errors).

The only downside to this file format is that whenever Apple introduces new technologies – Versions, iCloud, Handoff – it only provides out-of-the-box support for simple document-based apps. All of which to say: we have had to put together, from scratch, our own syncing solution so that our iOS version syncs with our desktop version. (We will use the Dropbox API, and hopefully other syncing APIs as time goes on, but all the conflict resolution handling has to be done by us.) Over the past couple of years, we’ve spent a great deal of time discussing how this could work, hashing out various ideas and solutions that could deal with the conflicts that will inevitably arise if someone works on both the iOS and desktop versions while offline so that the changes become out-of-sync. (Everything has to be considered: what happens if the user edits scene A on the mobile version but then also edits it on the desktop before there has been a chance for them to sync? What if the user’s kid opens up the app on the iPad and hammers away at their precious novel? How can we tell the difference between a scene that’s been deleted from one device and one that’s been added on another? And so on.)

Once most of this had finally been hashed out, it then took me a month to write out the design document that covers how the code will work (a design document is necessary for our Windows team to follow as well as for me and our iOS developer). And then yet another month to write the code itself, cross-platform for Mac and iOS (our Windows team will need to write this code separately). This has been what I’ve been doing for the past couple of months, and there is still work to do on getting all the sync components that have been written into place on the Mac and on iOS and then thoroughly tested (then testing on Windows).

So, that’s between three and four months on a single (but integral) feature. (And while I’ve been doing this, Tammy, our iOS developer, has been adding various “smaller” features that had to wait until late in development – printing, basic compiling, import and export, statistics, split and merge, find and replace… The sort of features that it’s easy for users to forget when suggesting that Scrivener for iOS should just be simple and only have the basics, but without which, Scrivener for iOS would feel crippled. And even some of these smaller features can take a couple of weeks each to implement, of course.)

The trouble is that it’s not only non-programmers who (understandably) don’t appreciate how long seemingly simple things can take to code – we do it ourselves. We’ll often think that a feature will only take us a day or two to complete, then find ourselves growling at the screen, desperate to have done with it, two weeks later. (This is no doubt why software and games are so notorious for being delayed throughout the industry.)

In a program as complex as Scrivener (even on iOS it requires a degree of internal complexity if it is to work with the desktop version), where various features can take a month or more to implement, the time creeps up on you and suddenly two years have passed… There are certainly programs out there that can be written in three or four months, but sadly, Scrivener isn’t one of them.

Not that “development takes time” is the whole picture. Something like Scrivener can easily take a couple of years to develop properly, but it has now been two and a half years since we started work on it; we had hoped it would be finished by now as much as anyone else – we don’t enjoy frustrating those of our users who write on mobile devices. The other big factor for us has been scaling up. Scrivener started out as a hobby – the software I wanted for my own writing. I wanted it so much that I taught myself how to code in order to create it. For the first couple of years, L&L was a one-man operation, and we are still a very small team. I work alone on the Mac version, two programmers work as a discrete unit on the Windows version, we have a couple of other full-time team members who write and maintain the manual and tutorials and handle all QC testing and some support, and we have a couple of part-time support staff. We have no central offices but are scattered across the world (the UK, US, Australia and Bulgaria). None of which is unusual for shareware, “artisan” software such as Scrivener.

The wonders of the information age make it easy for geographically-scattered teams to stay in constant touch and work together, but as a small company with such a setup, it meant that it was not possible for us just to hire some programmers and stand over them until the iOS version was finished. I was always adamant that I would not write the iOS version myself, because I’ve seen too much Mac software suffer as its developer has spent all his or her time working on iOS, and that would have been unfair to our existing user base. (Moreover, the Mac version is where I live for my own writing, and Scrivener is always going to be predominantly a desktop program.) So it was key to find someone self-motivated, with a good understanding of Scrivener, who could develop Scrivener for iOS and keep on developing it into the future, beyond version 1.0.

As I announced last year, unfortunately our first developer had to step away from the project because of family health issues, which had also stalled development progress throughout the eighteen months she had been working on it. We were very fortunate to find Tammy Coron, an experienced iOS developer and Scrivener user, to take over development. When she took over, she made the painful decision to rewrite much of the existing code, in part because of new technologies that had been introduced with iOS 7.0 (a rich text system at last!). Which means that while our iOS version has been in various stages of development since the end of 2011, the form it is in now has only been in development for just over a year.

We are really looking forward to releasing the iOS version – in many ways it’s become the proverbial albatross around our necks.* But it is getting there, and we hope the subsection of Scrivener users who are eager for an iOS version will be patient for a little while longer. We are genuinely grateful for your enthusiasm. I’m not known for great reserves of patience myself, so I do understand the frustration of some users who are more vocal in their eagerness, but to those I would say, please do try to remember that we want to get our iOS version into your hands as much as you want it. We’re a tiny company but we have put a lot of energy and resources into the iOS version (and for all we know it could be a loss-making venture), and we think Scrivener users will be happy with the final product.

I’ll post later in the year more on what sort of features to expect, but suffice to say that it has full rich text editing, a corkboard, an outliner, an inspector and, on the iPad version, the ability to view research alongside your text as you type. It is, essentially, Scrivener on iOS.

P.S. For anyone interested, I’ve uploaded a sort of developer diary for the iOS version here:

A Scrivener for iOS Developer Diary

If nothing else, it should show at least that the iOS version has been in continual development, hitting snags along the way, even if progress has seemed glacial to the outside world.

[*] “Way I remember it, albatross was a ship’s good luck, ’til some idiot killed it. Yes, I’ve read a poem. Try not to faint.”

An Update on the iOS Version of Scrivener

Given the number of tweets and messages we get enquiring after the progress of our iOS version (thank you everyone for your enthusiasm!), I wanted to give everyone a quick update, since there have been some important developments recently.

As many of you know, development started on Scrivener for iPad and iPhone early in 2012, and we had hoped that we would have it ready for the end of that year; we later revised that estimate to the first quarter of 2013. And, as many of you have pointed out to us, here we are in April – so where is it?

 

 

I’ll provide the information you are most likely after first: it will still be a little while–certainly much longer than we had hoped. We can give no firm release date yet, and given that past estimates have been wildly off, I’m not even going to make a guess at this stage. We very much hope it will be out this year, in time for National Novel Writing Month, but we’re not going to make any promises at all until we know for absolutely sure that we can keep them.

The frustrating part for us is that, for the past four or five months, we have had a version of Scrivener for iPad that is in many ways so nearly there and yet still not ready for beta-testing. We hit snags with the rich text system (or iOS’s lack of one) and building the synchronisation code is incredibly complicated because of Scrivener’s package-based file format, but we had most of the other basics in place and felt we were really making good progress.

 

 

Unfortunately, however, owing to unforeseen and serious health problems in our iOS developer’s immediate family, over the past few months our original developer has been unable to spend the time on the project that is required to get past the final roadblocks and finish it. It’s been a difficult time for everyone as we tried to work out the best way to proceed, all the while hoping things would get back to normal even as time slipped by, especially since she has done such an amazing job so far (the iOS versions of the binder and corkboard are a joy to work with). It gradually became clear, sadly, that our iOS developer had no choice but to officially reduce the time she could dedicate to the project so that she could concentrate on her family, and that we would need to find someone else to step in. But because we’re a small company with limited resources and no headquarters or offices, it’s not as though we could just throw money at the problem by hiring a bunch of developers and supervising them until it is done; we’re not Microsoft, Apple, or even Omni. We needed to find another iOS developer not just passionate about coding, but passionate about creating an iOS version of Scrivener in particular.

 

It is with great pleasure and some degree of relief, then, that I can now announce that we have found a new developer to focus on getting Scrivener for iOS completed. (The original developer will continue to work on it too, as much as her current circumstances allow.) The new developer is Tammy Coron, an experienced iOS coder who is also involved with Nickelfish and developed the iMore app. She’s a dedicated Scrivener user and, like many of our users, is desperate to have the iOS version for herself. (It’s not just our users eager for this–I want to be using the iPhone version as soon as possible too.) There’s an interview with Tammy available online for anyone interested here:

http://www.imore.com/debug-10-tammy-coron-nickelfish

Tammy can also be found on Twitter @Paradox927 (which is the same user name she uses on our own forums).

Tammy has been getting up to speed with the project for the past fortnight and has now started diving into the code proper. We hope to provide more news over the coming months, but we’re all excited to have her on board and to once again be forging ahead with getting our iOS app completed.

 

 

To those desperate to have an iOS version as soon as possible, we are very sorry for the delay, but remember that in the meantime Scrivener for Mac already has some great ways of working with mobile devices (e.g. via external folder sync). We know we’ll get a bunch of angry emails and tweets over this, but I hope that most of our users continue to find Scrivener one of the best desktop writing packages around, and that the iOS version will be worth the wait when it is eventually in everyone’s hands. We also hope that everyone will understand why we haven’t wanted to say too much about what has been holding up development until we really had to and had already got a solution in place.