---
title: WaffleTodos - An app for the Kindle Touch
date: 2011-12-12 19:30:40.000000000 -08:00
type: post
parent_id: '0'
published: true
password: ''
status: publish
categories: []
tags: []
meta:
  _publicize_pending: '1'
  _import_original_date: 12/12/2011 07:30:40 PM
author:
permalink: "/2011/12/12/waffletodos-an-app-for-the-kindle-touch/"
---
<p>I had a nice long plane flight to mess around with the Kindle Touch today.&#160;</p>
<p>Its an interesting beast. Much of its user interface is built in HTML5. (The browser &quot;application&quot; itself is just some JavaScript, HTML and CSS wrapped around the platform&#039;s built-in WebKit rendering engine running full-screen in X11.</p>
<p>Yesterday, Yifan Lu (http://yifan.lu) released a tool to allow Kindle Touch owners to gain root access to their devices. This tool took&#160;advantage of the fact that the MP3 player app on the Kindle Touch&#160;renders the titles of .mp3 files as HTML.</p>
<p>I spent a bit of time poking around my Kindle Touch last night - I found all sorts of neat stuff. One item stood out - &quot;waf&quot;, the Kindle&#039;s client-side Web Application Framework. &#160;Amazon have used it to build their updated on-device Kindle Store, as well as some other bits and pieces.</p>
<p>On a lark, I cobbled together enough bits to run the &quot;Todo list&quot; demo that ships with bootstrap.js. It ran. It even ran reasonably well.</p>
<p>Using Yifan&#039;s &quot;Musical Launcher&quot; technique, I&#039;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&#039;s internal filesystems is to add three required entries to an application registration database. I don&#039;t believe that this is likely to brick your Kindle Touch. If it does, please email me and I&#039;ll see what I can do. Bear in mind, however, that I may not be able to help you out and won&#039;t replace your Kindle if something goes wrong.</p>
<p>This package consists of two pieces:</p>
<p>&#160; &#160; music/Todos.mp3 - Drop this file in your Kindle&#039;s &quot;music&quot; folder.<br />&#160; &#160; WaffleApps - Drop this file in the toplevel directory on you Kindle</p>
<p>After that:</p>
<ul>
<li>&#160;Disconnect your Kindle from your computer &#160;&#160;</li>
<li>Click the &quot;home&quot; button &#160;&#160;</li>
<li>Click on the &quot;menu&quot; button &#160;&#160;</li>
<li>Select &quot;Experimental&quot; from the menu &#160;&#160;</li>
<li>Select &quot;MP3 Player&quot; &#160;&#160;</li>
<li>Click on &quot;Launch Todos&quot; &#160;&#160;</li>
<li>Get stuff done</li>
</ul>
<p>The actual Todos app is the backbone.js clientside Todo list app demo, prettied up a bit for the Kindle. There&#039;s nothing really fancy there. But this should make a decent starting point for more ambitious app development.</p>
<p>You can download the binary package from github:&#160;<a href="https://github.com/obra/waffle/downloads" target="_self" title="https://github.com/obra/waffle/downloads">https://github.com/obra/waffle/downloads</a></p>
<p>If you&#039;re interested in building other HTML5 apps for the Kindle Touch,&#160;<a href="https://github.com/obra/waffle" target="_self" title="https://github.com/obra/waffle ">https://github.com/obra/waffle</a> wouldn&#039;t be the worst place to start.</p>
<p>&#160;</p>
