About 15 minutes of minor changes and Ibis Reader is the first ereader on the iPad. App developers have to wait for approval, and even Apple has to to wait for the release of the actual hardware. If you have access to the iPad simulator, you can use it right now.
If you access the site on an iPad today, you get a different block of content on the home page:
The link provided is the same one that we direct all HTML5 devices at. Here are some screenshots from the experience:
Book table of contents
Obviously there are some stylistic changes we’ll want to make:
- Making the margins in reading pages wider
- Enlarging the size of cover images
- Making better use of space on list pages
Here are a few things we had to change to get it working:
On Android and the iPhone, touchstart and touchend events are fired when the user touches the application, followed by onclick. We preferentially use the touch events when reading a book because of some quirks in Android.
The iPad doesn’t seem to automatically fire the onclick event after a touch, so I had to make it manually trigger that for anchor links.
The iPad simulator doesn’t fire the orientationchange event when the simulator is rotated. We don’t know yet whether that will be true of the device, so at this time Ibis Reader won’t correctly re-paginate after an orientation change.
The iPhone doesn’t report its height/width correctly, and doesn’t report it differently when rotated. We have these values hard-coded in the app.
Happily, the iPad does seem to report the correct value, both when the URL bar is visible and when it’s not (because the app has added to the home screen). We don’t yet know about rotation since we’re unable to detect that.
HTML5 database size
There’s a bug in the current iPhone OS (3.1) in which the user won’t be prompted to increase an HTML5 database after the webapp has been added to the home screen. This means that Ibis Reader users on the iPhone can’t ever add more than the default 50MB worth of books. This bug appears to have been fixed in the iPad OS.
(Android does not prompt the user to increase a DB, but does increase it automatically if there is space available on the device.)