11 December 2014

Google Play Books: Last Android App Version Slowness [Solved]

Recently, I reported slowness with Android Google Play Books app when reading a fixed layout ePub. The problem is under investigation by Google.

Google Books Partner support reference: 0-8666000005666.

Since the last Android Google Play Books app version (3.2.21 - 12 November 2014), because of the new “page preview” feature (called “skim mode” by Google), it is very slow, when reading a fixed layout ePub, to go directly from one page to another if there is a lot of pages in between. For example, it can take 5 minutes to go from page 1 to page 200, in place of only some seconds with the previous app version (3.1.49) which did not have the “page preview” feature. The new app has to “build” all the previews / caches of the pages in between page 1 and page 200, which takes a lot of time. Once done, it is fast to move in between pages 1 and 200, but once you leave the book, the cache is again lost.

  • Producing a fixed layout ePub with a lower image resolution (e.g. 72 dpi in place of 150 dpi) does not influence the speed. The slowness is only caused by the text rendering. And fixed layout ePub files have usually “very heavy” HTML/CSS/fonts code to render the text at its exact position and exact formatting. The rendering of such pages takes between 0.1 second to more than 2 seconds per page, depending of the page complexity (and the device power). 
  • Such problem does not happen with PDF files (image only). 
  • The iOS app does not have the problem, as the “page preview” feature is not (yet) available. 
Example: Jacques Pépin New Complete Techniques, by Jacques Pépin. It takes 1 min 20 sec to go directly from page 1 to page 75! (1 sec/page) The book has 736 pages.

Going from page 1 to page 41: the previews are not yet displayed.

Going from page 1 to page 41: the previews are displayed after about 45 seconds.

Page 41 (44-45) can be selected and displayed.

Solution: One possible solution would be that once you select the “page preview” of the page you want to read (even if the rendering of the previews is not yet finished), the app will start to render the selected page immediately (without continuing to build the previews of all the preceding pages).

UPDATE (2 MAY 2015): The problem is solved in version 3.3.41 (released on 16 April 2015), or maybe in a previous version already.

Google Play Books: About a Bug with SVG Vector Images [Solved]

Recently, I reported a bug regarding SVG vector images in Google Play Books. The bug has since been corrected by Google.

Google Books Partner support reference: 5-2966000005478.

When you upload an ePub file to the Google Books Partner Center, it takes some hours to be processed. The following steps have to be checked once all the treatment is finished:

GPB: Google Play Books (Google Play store)
GB: Google Books

1. GPB app reader (Android): is the eBook displayed fine?
2. GPB app reader (iOS): is the eBook displayed fine?
3. GPB web interface: is the downloaded ePub file displayed fine in an eBook reader? 
4. GPB web interface: is the downloaded PDF file displayed fine in an eBook reader?
5. GPB web interface (web reader): is the eBook displayed fine?
6. GB web interface (web reader): is the preview of the eBook displayed fine?

Vector images are composed of paths. A path can have a stroke and/or a fill. The bug I reported was concerning steps 4, 5, and 6, for ePub with SVG code (vector images) embedded in the XHTML code. The vector images were displayed fine in the Google Play Books app, but not in the PDF file and in the web reader: the stokes were not displayed! After Google solved the problem, the web reader is displaying the images correctly (but it looks like there are using the fallback from vector/svg to bitmap/png).
Left: the path with a blue stroke and a red fill.
Right: the path with the stroke not displayed.

I reported a similar problem with the open source software Scribus (desktop publishing):

The fill of a curve with only two nodes is not exported in the PDF (Solved in Scribus 1.5)