projects

Inkling and the Modern Book

It was in the Fall of 2010 when I received an interesting email. It was from a recruiter looking to fill front-end developer positions for an early stage startup that was building interactive textbooks for the iPad. I had never heard of the company and at the time what I’d seen of tablet publishing was uninspired.

August 12, 2012

When I got home that evening I downloaded the Inkling app onto my girlfriend’s iPad and took a look at the pre-installed demo book, The Elements of Style. I was immediately impressed. Craig Mod, writing for the popular A List Apart blog in early 2011, summed up my initial reactions well (albeit more articulately) in his article A Simpler Page:

Inkling … is one such example of a reading application that straddles the new and old—chunking content in an intuitively predictable and consistent manner within and across chapters, thereby grounding the user via thoughtful navigation. And doing so beautifully, with a confident awareness of the container.

The application had clearly been polished with a strong sense of design and a well-thought-out set of user interactions. It balanced the need to convey traditional textbook content with a new yet natural navigation and page-less pages. With such an elegant solution to the digital format and a clear vision for the product how could I not be interested?

Screen shots highlighting (left) the user’s location and the figures available in the table of contents and (right) a section page showing the note taking and social functionality that’s provided in all Inkling titles.

The Tech Behind the Inkling App

One of my first questions was: “How does it work?” As beautiful as it is, are the books just big Cocoa apps that benefit only iPad owners? Turns out the content is created and maintained using open formats, HTML and XML, that interact with other media like audio, video, and 3D. We treat books like software: multiple collaborators adding to the code base, finding and fixing “bugs” across different content types, and utilizing all manner of automated proofing tools to quickly identify issues. As Rob Cromwell explains in The Art of Content Engineering this architecture opens the door to other platforms:

In software engineering, the build is usually the output of a compiler. A compiler generates an executable binary from the source code, and targets a specific platform like Mac OS X, Linux or your iPad. The compiler and target are very important abstractions. They enable the same source code to run across different platforms. Inkling content has been structured in the same way.

To tie the native application and HTML/XML together we use a Javascript layer, rooted in MooTools. With it we’re able to change states and provide feedback to the user while passing along data about their highlights and notes to other parts of the system. These seamless effects often feel “native” yet operate in way that can still perform outside the context of the native app.

Screen shots of two of Inkling’s enhancement types. The first is a Test Yourself, where students can hide and show labels to quiz themselves at their own pace, and the second highlights the multiple animated steps of a Guided Tour.

Working at Inkling

Aside from the great benefits, easily the best aspect of Inkling is getting to work a with group really smart people. As a startup decisions have to be made quickly and technical plans executed at breakneck speeds. Out of this environment I’m continually amazed by what’s produced, and the cooperation between different groups with members often working outside their comfort zone is, at least for me, unprecedented.

A quick example: A colleague of mine in a non-technical role, who has no formal technical background, recently wrote a long list of complicated regular expressions to help her complete some tasks. Regular expressions, as anyone who’s ever battled with them will know, are often not trivial to write. Because of her work we’re integrating it into other tools that, ultimately, will benefit the whole team.

Come Along

We’re working on some really interesting problems so if you’d like to join take a look at our job listings.