Skip to main content
Massively Parallel Procrastination

WaffleTodos - An app for the Kindle Touch

I had a nice long plane flight to mess around with the Kindle Touch today. 

Its an interesting beast. Much of its user interface is built in HTML5. (The browser "application" itself is just some JavaScript, HTML and CSS wrapped around the platform's built-in WebKit rendering engine running full-screen in X11.

Yesterday, Yifan Lu (http://yifan.lu) released a tool to allow Kindle Touch owners to gain root access to their devices. This tool took advantage of the fact that the MP3 player app on the Kindle Touch renders the titles of .mp3 files as HTML.

I spent a bit of time poking around my Kindle Touch last night - I found all sorts of neat stuff. One item stood out - "waf", the Kindle's client-side Web Application Framework.  Amazon have used it to build their updated on-device Kindle Store, as well as some other bits and pieces.

On a lark, I cobbled together enough bits to run the "Todo list" demo that ships with bootstrap.js. It ran. It even ran reasonably well.

Using Yifan's "Musical Launcher" technique, I've polished up this todo list demo to the point where it should run fine on any Kindle Touch (rooted or not). The only changes it makes to the Kindle's internal filesystems is to add three required entries to an application registration database. I don't believe that this is likely to brick your Kindle Touch. If it does, please email me and I'll see what I can do. Bear in mind, however, that I may not be able to help you out and won't replace your Kindle if something goes wrong.

This package consists of two pieces:

    music/Todos.mp3 - Drop this file in your Kindle's "music" folder.
    WaffleApps - Drop this file in the toplevel directory on you Kindle

After that:

The actual Todos app is the backbone.js clientside Todo list app demo, prettied up a bit for the Kindle. There's nothing really fancy there. But this should make a decent starting point for more ambitious app development.

You can download the binary package from github: https://github.com/obra/waffle/downloads

If you're interested in building other HTML5 apps for the Kindle Touch, https://github.com/obra/waffle wouldn't be the worst place to start.