E-book Readers, the Android Way

Introduction

With the inevitable, if postponed and not particularly popular, transition from Nokia’s Maemo to Google’s Android OS, I’m once more in the market for a portable e–book reader. While I quite adore my Sony PRS–650, it isn’t much for slipping into a pocket and taking on the subway.

Caveat

What is written here is verified to the best of my ability at the time I wrote it. With the nature of the Internet, all bets are therefore off.

The example book used is «The Hound of the Baskervilles» by Sir Arthur Conan Doyle, created in–house from a text–only copy taken off of Project Gutenberg, and enhanced with (a few) illustrations from The Strand Magazine. This was done so that I could have complete control of the structure and formatting, thereby pushing the readers to their limit. It was not done to circumvent any lingering copyright on images or text.

For this reason I’ve also elected to test EPUB readers, a decision which sadly leaves the Kindle–for–Android application out in the cold. I’ll include screenshots for a MOBI version, converted by way of Calibre. With some luck we’ll soon see a Kindle supporting both.

This review is, by necessity, a western–oriented thing. I neither speak nor read any of the right–to–left languages, nor any language using picto– or idiographs.

Tests, and screen–shots, are made on a Sony–Ericsson Xperia ARC running Android 2.3.4. The background/theme has in each case been left to the default rendering. If a screen–shot is missing, it is normally due to some circumstance making it impossible to take — certain applications change state when attempting to capture the screen, for example.

Note also that the applications tested are, without exception, the free versions.

And, finally, on the issue of lead: yes, paragraphs in this sample book use both empty lines and first line indentation for visual separation. This is done to test the text–indent and margin–top CSS properties, as well as adjacent selectors. If this makes no sense to you, simply trust that the author does actually know what she’s doing :)

The Readers

One advantage of Android versus Maemo is the number of available e–book readers. A disadvantage is the number of available readers. When so many exists, a comprehensive review of them all becomes near impossible as a hobby project. Subsequently I’ve made a more–or–less random selection based on popularity:

Prerequisites

In order to test how well a reader manages EPUB structure and layout, I have added some peculiarities fairly rare to e–books: embedded fonts, CSS only drop–caps, NCX table of contents, a colophon page with a discrepancy between the XHTML title and the EPUB guide title, as well as numerical entities for proper quotes.

There are also CSS used for the layout, such as paragraph lead and indentation, header size, and so forth.

Embedded Fonts

The ability to load font definition files on–demand was introduced in the CSS level 2 specification. As no–one cared to implemented it, CSS 2.1 removed the required properties, and CSS 3 put them back in.

EPUB 2 — which is what I in effect am testing — supported a subset of CSS 2. EPUB 3, in contrast, support parts of CSS 2.1 with some modules from CSS 3. It’s all rather a mess.

Regardless, the EPUB 2 specification do support embedded fonts. I’ve used four in the reference book: Linux Libertine, GNUTyperWriter, HiLo–Deco and DecoCaps; all open–licensed and in the TrueType format.

CSS Only Drop–Caps

Drop–caps are quite common in some types of publications, typically those with a certain old–fashioned flair. They can be created in a variety of ways, but the easiest is to use the CSS :first–letter pseudo–element in combination with an adjacent selector, thereby referencing the first paragraph after a header, and adjusting the size and font–family of the letter as suits look and feel.

The EPUB 2 specification makes both pseudo–elements and adjacent selectors mandatory for compliant reading systems, but as we shall see support is spotty at best.

NCX Table of Content

The «Navigation Center eXtended», a concept created by the DAISY Consortium, is an XML–based format for structuring a table–of–content in a machine–readable way. It is part of the EPUB 2 specification as a more organised way of including a ToC.

Numerical Entities

In order to preserve proper typography, the production process I use replace things like single– and double quotes with their equivalent numerical entities — subsequently a left opening quote is rendered using «&#x201C;», a horizontal ellipsis by «&#x2026;» and so forth.

This is part of the XHTML standard, and should reasonably be supported by all EPUB readers. As we’ll see later, that’s not the case.

Reference Rendering

The reader application which, so far, comes closest to the intended rendering is the Calibre ebook–viewer program. This is subsequently used for reference rendering, with screen–shots included from a 90 dpi monitor. My apologies for the low quality.

I would prefer to use the Sony Reader for this, but its built–in renderer, based on Adobe’s Digital Editions, lack :first–letter support. Alas.

There are three reference screen–shots. From left to right: the title–page, the first chapter start page, and a page containing an embedded image:

The test show that Calibre does well: all four embedded fonts are rendered, the drop–cap is in the right position, the embedded image is rendered and positioned correctly as a left–floated illustration, each paragraph save the first is given a slight first–line indentation and a .8em head, and all entities are in place. It also deal correctly with the table of contents, and render the title specified in the REFERENCE element.

Readers: Head to Head

In the following section I’ll go through each reader in turn, and describe their overall functionality.

Aldiko

The Aldiko Reader was created by namesake Aldiko Ltd., a — as far as I can tell — Hong Kong based company, and support the EPUB and PDF formats exclusively. Two versions exist — the «pro» at 2.99 USD, and the ad–supported free version. Only the «Store» view show ads, and they are unobtrusive.

Aldiko comes complete with a clean, modern user interface design, configurable online book catalogues, and support for Adobe DRM. Most of the things you’d expect are here — a «bookshelf» view showing covers, search function, book sort, layout settings and so forth.

However, this bookshelf view takes up far too much space. On the 480x854 Arc device, nine (9) books show in cover mode; a mere four (4) in list mode. This is not a good way to manage screen real–estate; pretty, yes, but quite impractical.

The reader claim support for publisher styles — ie. CSS embedded in the EPUB file — and score reasonably well. All but :first–letter appears to be supported, as shown in the below screen–shots.

There is no way to mix local and embedded styles, sadly, so the minor bits that are unsupported cannot be easily corrected without turning off all support. Overall the reading experience was quite pleasant despite such details.

Bluefire Reader

The Bluefire Reader is a product from Bluefire Productions, a company based in Seattle (US). As Aldiko, it sport a thoroughly modernistic user interface, which yet again show a weakness in the use of screen real–estate. In cover view you can «see» nine (9) items; in list view a mere five (5). Graphically the interface is iOS–inspired, and subsequently not entirely suited to a small screen.

It is quite visually pleasant though.

The application tend to open slow, and has several times claimed «no books» even tho the library–view show them as normal. I have found no reason for this behaviour, but it is at worst a minor bug.

A neat detail is that the user–guide is available as an EPUB book, making it easily accessible. There are a few small discrepancies between the manual and common grammar, but nothing to worry about.

One design decision which could be considered a serious flaw, on the other hand, is the lack of a setting to define which directory to import books from. As it is, only a specific folder will do. I would suggest changing this.

Rendering is very good, with support for embedded fonts, CSS, covers, images, and ToC. A small minus for the lack of :first–letter handling, and a plus for Adobe DRM–support in EPUB and PDF–files.

Captionary eBook Viewer

Captionary has presented a unique challenge among the tested readers. It is the only application to not recover more–or–less gracefully when the EPUB–file is removed from disk whilst still being read.

This would be understandable — and the reader supplies the quite correct «Cannot read the book» error — if not for the fact that the entire application is now broken: the «library» menu option does not take me to the library, but instead repeat the aforementioned error message and leave me with an empty screen.

Presumably this could be fixed by uninstalling and reinstalling the application, but that is out of scope for this review.

With ads present, a requirement to import books one by one, no cover shown from the EPUB, and very, very little CSS support, Captionary can sadly not get much in the way of score.

Another problem is the poorly managed screen real–estate: when reading a book, two page turn icons are permanently placed at the bottom. They are both distracting, and reduce the effective page size; a particular problem with large fonts.

I also ran across some difficulties when reading EPUBs in which some of the content files had names starting with «0–». This may or may not be a bug; further testing is halted due to the lock–up.

CoolReader

CoolReader, by Vadim Lopatim, is a free, donation–supported, and GPL (2) licensed EPUB/FB2/etc. reader. It can be found on Linux, Windows, Android, Symbian and a variety of e–ink devices and may be the single most broadly ported application in the review.

It also sport a surprisingly well–implemented TTS (Text–To–Speech) module. While the voice is very much artificial, the speed and volume is adjustable, and regular text — including questions — are handled well. Exclamations leave something to be desired.

The UI is somewhat confusing, as it consist only of a list of five options: «Recent Books», «SD Card», «Online catalogs», «Find books» and «Books by author». There are no shelves, yet with a minimum of practise the interface feels efficient, and is certainly clean. Less space is wasted as compared to most of the other readers.

CoolReader does not, as far as I can tell, support embedded formatting at all. There exists a «Enable document internal styles» option, but checking it appears to achieve little. This is surprising, given the extensive, and detailed, CSS options offered.

With these localised options available, it is quite possible to make CoolReader render pages very, very well indeed. Every book, however, will look much like any other.

A fascinating detail is the «Font Gamma» setting; a rather brilliant little option which makes quite a difference to the reading experience.

This might just have been my favourite reader, had the embedded style support been better.

ePub Reader for Android

ePubReader for Android, by Graphilos Studio, is an EPUB–only reader application. It takes little space, is ad–supported, and sports a very, very simplified user interface with four options: «Continue reading», «Downloaded books», «Import from SD» and «Browse free books». No frills, nor wasted space.

There are not a whole lot of settings either; only the bare minimum and only font size adjustment in terms of rendering. That said, the embedded CSS support is superb, and it score full on our tests. Embedded fonts, CSS, drop–caps, letter spacing — it does it all.

Except for one detail: on the first load of a page, the entire thing is shifted to the right, outside the screen of the device. This flaw cannot be corrected on the title page, but others will render properly as soon as they are visited, left, then revisited.

It is also possible to scroll horizontally by swiping left and right. The end result is not a pleasant one, alas.

Nor is it able to run in full–screen. This comes very close to being a perfect light–weight e–book reader, save for the rather nasty rendering bug. See also screen–shots below.

FBReader

FBReader is an open–source project, and implementations of this e–book application exist on several platforms. The avid reader may recall my review of the N900 version. This FBReader is based on a less capable Java–implementation, and lack the exceedingly wide format support of its big brother.

Sadly it is also less capable in terms of rendering — not by lack of ability, for as with CoolReader there are extensive and detailed formatting options, but for the lack of support for embedded CSS. From what I can tell it is simply not there.

This said, when set up to your preferences the rendering is very good, the UI simple, sober and efficient, and the library handling well adapted for large numbers of books and management of secondary storage. No import required.

Another feature is missing from the Android version: the ability to rotate — and lock — the display 90, 180, and 270 degrees. In other versions of FBReader, this option made it far easier to use by left–handed readers.

FBReader for Android is thus not as capable as its big brother for Maemo, but it does have an amazing flexibility in specifying rendering details, very good sort mechanisms, and an import–free way of dealing with books.

In addition you can download a small plugin to enable Text–To–Speech capability. Personally I find the implementation a remarkably good one.

Foliant

Foliant is an altogether simpler application than the other readers. The interface is clean, simple, but also limited. No shelf view exist, tho this is compensated for by the use of list views. These are not, however, a good use of screen real–estate as they show generated book covers as opposed to those embedded in the EPUB–files.

The ability to create your own themes — called «profiles» — is an interesting solution, and compensate to some degree the quite complete lack of CSS support. In this manner different books, or types of books, can have different styles. A plus for this simple but innovative solution, and a minus for the absence of embedded style support.

Opening books take quite some time in Foliant, up towards thirty seconds. The reason is unknown. My test book also suffers the fate of having most of the first chapter dropped, again for reasons unknown.

Foliant is created by Yuri Batora.

The application must import books, but can do so recursively. It also support catalogues, tho only the ones built–in. One serious flaw exists in the file management: Foliant cannot add EPUBs to its library if the path to the file contain whitespace. This is most curious, and suggest the author has implemented his/her own filepicker.

There are no full–screen mode, no themes, orientation lock or support for embedded CSS.

Kindle

The Kindle–for–Android application, by Amazon Inc., is the odd bird out in this review, as it has no support for the EPUB format at all. The old Mobipocket e–book format, MOBI — or AZW in Amazon terminology — is the primary form of books in Kindle. I’ve converted the testbook by way of Calibre, but there are plain differences in terms of rendering.

As this review focus on EPUB–readers, I’ll say nothing more about the Kindle application.

Kobo eBooks

The Kobo reader requires an online account. No further testing made.

Mantano Reader

The Mantano Reader is a product of Mantano SAS (France), and support EPUB and PDF, both regular and «protected» by Adobe DRM. It is one of few readers in the test which has both bookmarks and notes, and so a good choice for the professional reader — students in particular might appreciate the combination of notes and dictionary–support.

The interface is, in a word, green — the colour that normally would be called «Chartreuse». Some days I do wish they’d take the CoolReader path and include UI themes. The free version has a rather annoying ad on top of the screen, between the tabs for «bookshelf», «notes» and «bookstore» and the filter options — these include «by last access date», «by addition date», and so forth.

As the other modern applications, Mantano has a space–wasting «shelf» view which, at its worst, show two full and two cut–off cover images. That said, as opposed to the others, you can configure the view: in «small thumbnails» you’ll fit twelve (12) covers on one page. Compared to the competition, this is excellent. A list view is included, showing seven (7) books.

The application can be slow to load; the cover view similarly slow to scroll. It is difficult to say why. This reader has quite a few features, and it may just be too heavy for the Xperia Arc. Time will tell, as it is likely to be my personal choice.

Rendering is excellent, with embedded CSS scoring high — if not quite full: there is no support for :first–letter pseudo–elements. All other details are complete.

Mantano, as CoolReader, has support for text–to–speech, but for some reason is not quite as clear through the Xperia’s speakers.

Moon+

Moon+ is a somewhat differently designed application. Your first view is normally a one–shelf shelf view, so to speak, with three books included. You can then elect to see, for example, «All Books», at which point you’ll be shown a shelf with one book per, well, shelf, complete with metadata.

Selecting «By Authors» will show a text list of authors in–between these two steps. Scrolling through 200+ e–books becomes somewhat of a chore with this setup. The list view shows four–and–a–half (4.5) covers at a time.

The reader supports online catalogues, using a Calibre server, local styles and themes. You can sync books through Dropbox, but there are no bookmarks, and no notes — although the story is not as simple as that.

CSS embedded in the EPUB is supported, and when turned on score full – including fonts, drop–caps and letter–spacing. However, the option to turn this support on is difficult to find. It is, if you’ll study the third screenshot above, the white icon with the «go back» arrow just to the right of the page turn slider.

This turns on «preview» mode. Outside of preview mode, bookmarks, notes and highlights are all available, but no embedded styles are shown. Inside preview mode, CSS is used, but there are no bookmarks etc.

The two cannot be combined as far as I can tell.

Nomad Reader

Nomad Reader is a Russian product, and support EPUB only. It has the now common shelf–view for showing off books, but uses only one line – and three (3) covers one that line — for the job. Going through a large number of books is subsequently very time–consuming indeed.

Books must be imported, but luckily the application can do so recursively. Not all covers are shown; I have yet to determine why.

The application has settings for local styles, and does not appear to support embedded CSS at all.

What is worse is that it doesn’t support numerical character entities. The rendering of, for example, quotation marks is absolutely horrendous.

Support for full–screen reading depends on turn off header/footer separately; no notes, bookmarks or ToC handling was found.

Wordoholic Reader

The Wordoholic Reader presented me with yet another challenge: it require the specification of a directory from which to import books. Once this was done it automatically attempted to import all 284 books, but claimed some of these were corrupted.

When trying to read books, none could be opened without the exact same message: «The book is corrupt». As this included the test–book, I could do no further testing.

Add to this experience the fact that the help–screen tended to pop up at more–or–less random intervals, and it was, in conclusion, not a particularly nice way to read …

StarBooks

StarBooks is by Lantean Studio, and the second application in this review clearly inspired by Apple’s iOS. It support EPUB only, but include online catalogues. The UI is clean, yet tend to clash with some Android design standards. More worrying is the fact that this reader is the single one to show ads — in the free version — while reading. This alone make it not fit for purpose in my eyes. I accept the ad–financed free versions, but not when as intrusive as in this case.

As with other «modern» layouts, screen real–estate is wasted on elaborate «shelf» views, here with the added problem of yet more ads. Nine (9) books are visible in this view, with six (6) showing in «list» mode.

Rendering tend to start with an empty page, but CSS support is very good, including embedded fonts and :first–letter. Some oddities can be seen in the handling of line–height in text with complex font faces. This may be due to a lack of sensible defaults, but only further tests would tell.

Another possible bug exist in that some, but not all, images will load. The reason is unknown, and rendering was not otherwise impacted. Finally we encountered a serious bug in the in–book menu: the various functions such as ToC, display settings, and so forth are present as icons, but cannot be activated. This would likely be a showstopper for most users.

Further testing was subsequently impossible to do.

Conclusion

Arriving at a conclusion has been difficult. The e–book market is, in itself, not yet stable and mature, and a certain amount of «format war» is on–going.

Few who use the Internet have missed out on the relative success story of the Amazon Kindle, and it is impossible to deny that in the early days of 2012 the MOBI format is a tentative winner.

At the same time, the more standardised EPUB is gaining ground. While formats are battling it out, so too are devices; the dedicated e–book reader, represented by the Kindle, are popular, but many users prefer to carry reader applications on their smartphones. The new Kindle Fire can run, with jailbreaking, the applications reviewed here, as can the Sony PRS–T1.

As primarily a reader, my hope, of course, is for a standardised format which can be read on anything that support it. This might yet happen. FBReader, tested above, support both MOBI and EPUB, for example.

The amount of reading applications on Android make any sort of comprehensive review a tough nut to crack. First of all, however, let me say that as could be expected the quality of readers vary greatly. This is particularly clear in the area of rendering, but also with regards to error handling and management. An e–book reader which cannot handle the physical removal of a book will not receive a good grade from me.

Secondly, the variety of user interfaces and options continue to surprise. I’ve seen some imaginative solutions during this test – including options to set text gamma for improved readability, text–to–speech integration, user–definable profiles, note– and highlight possibilities, Dropbox–support and configurable online catalogues.

I’ve also seen some spectacular failures, among them the inability of some readers to change pages with hardware keys, the waste of screen real–estate by attempts to mimic real–world bookshelves, and lack of integration with Android’s TTS functionality.

For a long time I’ve been a fan of FBReader — and it is unique in that it support both MOBI and EPUB. The Android version, however, does no justice to the rendering and play poorly with EPUBs.

CoolReader was a surprising new acquaintance — it’s a damned nice reader, with even more settings than FBReader. And, again, it is combined with poor CSS support. This can be a good thing, as far too many e–books today sport shoddy formatting. Few attempt to really take advantage of what EPUB have to offer. Yet the complete lack of support is an annoyance: those books that are well set ought render that way.

On the other hand, Moon+ is the best renderer in my test, yet sport a quite impractical user interface, and an odd combination of preview/non–preview modes.

At the end of the day I am settling for the Mantano reader. It does everything I want, renders well, and support both TTS and ADE. The UI can — important — shrink that darned shelf–view, as well as give access to both bookmarks and notes.

One item of worry is the import functionality, as this may require more disk space; a curious and regrettable design decision if so. Time will now tell.

Reading

In the following, ‹ToC› refers to «Support for a ToC explicitly defined in an EPUB NCX file»; ‹fullscreen› means rendering a book page without any distracting elements such as the Android notification bar, page turn icons, and so forth.

‹Swipe› refers to «swiping a finger across the display left–right or right–left to turn a page», ‹Tap› means «tap on the display left or right to turn a page», and ‹Keys› involve pressing a hardware button – normally the volume rocker — to change pages.

Finally, ‹TTS› stands for «Text to Speech», and indicate whether or not the application can read the text out loud; a useful feature for several groups of users.

Name

Fullscreen

Turn page

Bookmarks

Notes

Orientation Lock

Themes

ToC

TTS

Aldiko

yes

Swipe, Tap, Keys

yes

no

yes

no

yes

no

Bluefire Reader

yes

Swipe, Tap

yes

no

yes

yes

yes

no

Captionary eBook Viewer

no

Swipe, Icons

yes

no

no

no

yes

?

CoolReader

partial

Swipe, Tap, Keys

yes

no

yes

yes

yes

yes

ePub Reader for Android

no

Swipe, Tap

yes

no

yes

no

yes

no

FBReader

yes

Swipe, Tap, Keys

yes

no

yes

no

yes

yes

Foliant

no

Swipe, Tap, Keys

yes

no

no

no

no

no

Kindle

yes

Swipe, Tap, Keys

yes

no

Kobo eBooks

—

—

—

—

—

—

—

—

Mantano Reader

yes

Swipe, Tap, Keys

yes

yes

yes

yes

yes

yes

Moon+

yes

Swipe, Tap, Keys

yes

yes

yes

yes

yes

yes

Nomad Reader

no

Tap, Keys

no

no

no

no

yes

no

Wordoholic Reader

—

—

—

—

—

—

—

?

StarBooks

no

Swipe, Tap

yes

—

portrait only

—

yes

no

Note: The Moon+ Reader has TTS functiality only in the commercial version. FBReader require the download of a free plugin for the same.

Style/Layout/Formatting Support

In the following, ‹CSS› refer to «Layout/Formatting defined in the EPUB file using CSS». ‹Local› means «Layout/Formatting is set using in–reader options/settings». ‹Local override CSS› state whether locally set readings override those set in the EPUB.

‹XHTML› tells whether or not the reader actually support the markup embedded in the EPUB–file.