FDX Reader and the Bridging the Mobile Web App Divide

FDX Reader and the Niche

The new iPad app FDX Reader (see thehilarious age rating on iTunes) makes the FDX-format filescreated by the niche screenwriting app Final Draft consumable on theiPad.

The ostensible goal of the iPad application is to provide atext-scalable, flow-layout alternative to fixed-layout PDFs. PDFsapparently being the traditional way of distributing scripts tonon-Final Draft equipped devices. Aside from the scrolling issue,PDFs present an annoying workflow step that requires care andversioning to create a secondary output.

Isn’t This What Web Apps Are For?

This app piqued my interest because the functionality seemedelegantly delivered but incredibly simple. It seemed like exactlythe niche that a web app could fill.

So last night, after the kids were put to bed, I hacked out aquick prototype mobile web app to do just that. The FDX file formatis a perfect example of the benefit of XML, its verbose structurebeing largely self-evident.

The functionality easily attained in such a quick and dirty webapp is-

  • Work offline using an HTML 5 manifest. Noconnection necessary to launch the app and use thefunctionality.
  • Store the library of FDX files in localStorage. Theapp works offline, and the content can be local.
  • Store the queryable metadata about those FDX files, local orremote, in Web SQL,with a failover to IndexDB for Firefox.
  • Add additional local files using a normal “upload” control andthe FileAPI.
  • Pull remote files using XMLHttpRequest.
  • Parse the source XML files using the DOMParser,imperatively generating the page layout DOM (alternately XSLT couldpainfully applied)
  • Paginate, navigate, use custom web fonts (depending uponbrowser), custom styling, search, expand/collapse, bubble notes,etc.

All trivial. In a very short period of time a little mobile appwas working in Firefox, Chrome, Safari, and Android (tested in bothGingerbread and Honeycomb) and presumably the iOS ecosystem, withminimal functionality variance, yet with an automatic accommodationof the abilities of the device (whether touch or mouse controlled,big screen or small).

The app allowing the user to pull, save, display and navigateFDX files, with infinitely varyable styling. With a bit of effortit could allow for pop-up production notes, scene lists withalternative navigation techniques, by character lists, and soon.

This is the bread and butter of web apps. It is exactly what itshines doing.

Apply some design chops and it could look fantastic. CSStransitions — hardware accelerated on many devices now — allowfor a gorgeously interactive interface with page curls and swipesand fades.

Not All Is Perfect in the Land of Web Apps

It isn’t all roses, however. There are some serious issues withthe mobile web app platform as it exists today (though some ofthese may just be ignorance on my part).

  • It’s close to impossible to monetize a cross-platform web app,outside of obnoxiously packaging a webview just to push it throughan app store. This is 99% of the reason so many pay apps getdelivered as native apps when they’re actually glorified webpages.
  • System integration is limited. This web app provides a viewerfor FDX files, yet there is no way to tell the system to registerit as a handler such that if someone were to long-press an FDX filein Dropbox or from an email message it would open in the web app.Instead they need to save the file somewhere on their file systemand then “upload” it to the web application.
  • Many mobile devices disallow such local “uploads”. Androidprior to Honeycomb is missing the FileAPI, while iOS in all forms,to my knowledge, simply doesn’t allow the use of the uploadcontrol. So that local file functionality is just annihilated forthose important devices.
  • The remote file pull ability is limited by the same-domainrestriction of AJAX. In an ideal world you could register a dropboxaccount or random URL and it would pull the file, but in the realworld the files have to exist at the same domain as the sourceapplication.
  • Not all mobile browsers are created equal. Where scroll istwitchy or animation is stuttering, the general response is toblame the web app or the technology stack, when really it’s just abrowser implementation detail. If that native app can scroll a longlist quickly there’s no reason the browser can’t do the same.
  • Create a cross-platform app and you lose the buzz: The entireApple fanbase was talking about this niche app, though I suspect ifsomeone made an FDX web app that worked across the board it wouldhave seen little attention.

I enjoyed the exercise, and if anyone is interested in theproduct just email me. Expanding this to a service-based scriptfacility is a straightforward, obvious endeaver.

It was a fun exercise to demonstrate what is actually possibleon mobile web apps. It’s a remarkably exciting field that is onlystarting to be exploited, such as the fantastic new Twitter mobileweb app.