Developing a new EPUB3 reader for Android

Helicon Books, my company has been marketing the first EPUB3 reader for Android, however due to business dispute with the original developer, we stopped working with them and stopped marketing this reader.

In July 2013 we started to develop a brand new EPUB3 reader, based on Readium. We decided not to write our own engine and leverage the power of open source technology. Those who know me, know that I always support free software and try to use it wherever possible.

EPUB3 is a complicated standard, some say too complicated, therefore building a display engine for EPUB3 is not an easy task. Even readium which is developed by some of the major IDF members does not fully support the standard. We have decided that for the first version we are going to support reflowable books only, no fixed layout and not media overlay. After all most of the EPUB books today are reflowable.

So I started the search for a decent Android developer, it did not take long to decide to work with Omer Zak a deaf software developer, I have seen some of his past work and knew him from his activity at the Free and Open Source Software community in Israel. The main reasons I chose him where mainly because he is working with open source tools and is part of the free software community.  He is also working alone and not part of a bigger company and I like to encourage small businesses. The fact that he is deaf did not disturb mainly because I knew the main communication will be email written communication so the fact that he can’t hear me, should not make a difference.

So I contacted him and asked if he would like to take this job. He asked for  more materials to learn the subject. He knew nothing about digital books and EPUB. Digital books are not very common in Israel so most people have no idea what EPUB reader is.

I supplied him with a specifications I wrote along with introduction to the EPUB3 standard. After reading it and reading more about Readium, he began to like it and decided to take this project. I am happy that he shared the enthusiasm I had for this project.

We both thought that it would take about 2 weeks to develop since the Readium project supplied the main reading engine and we just have to write the bookshelf, user interface etc.

Unfortunately, this was not the case. We found out that Readium is not easy to implement, the documentation is poor and also had many bugs. At first we thought about fixing these bugs but found out that not only that the EPUB3 standard is complicated, the Readium software seemed to be more complex and it even seem it was done in purpose.

However we managed to show something working within two weeks. It did not have a bookshelf yet, did not remember the last position in book etc.

During all the  process, Omer did the software development while I supplied EPUB3 standard consulting (after all this is my job now) I built the surrounding environment such as GIT repository, bug tracking system etc. (All built using free software tools using a Linux server). I also devised the user interface, supplied icons etc. So I practiced all my graphical skills.

I also wrote the help screens, about screen and opening screen (displayed when no book is loaded).

At first I thought that all work would be done by email or chatting since Omer couldn’t hear what I say so meeting would be fruitless. However when development was almost done, Omer suggested that we meet in order to close some relatively simple bugs. At first I was reluctant to do it, I did not know how to communicate with a deaf person and I have no idea of Israeli sign language or sign language at all.

I finally decided to accept Omer’s invitation and we mat at his house. I wanted our meeting to be near his computer with his development environment so it would be easy for him to fix any bugs we discuss.

Even though it wasn’t easy to communicated, the meeting was fruitful and we did fix few bugs and documented a solution to other bugs. Immediately after the meeting Omer could solve all the bugs we discussed and few more.

All the communication was done by writing even at the meeting. Omer brought a bunch of papers and pens so we could write. I hate writing on paper and have not done so for a long time so it was hard for me. At the second meeting I opened a text editor on my tablet and instead of writing on paper I wrote it on the tablet’s text editor. This proved as a better way of communication.

I must say that even though we communicated by writing during all the development process, somehow meeting was much better and I think we will continue meeting for the next phases of development.

I am happy to announce that on September 8th the first version of the application (Ver. 1.0B) was uploaded to google play. We call it 1.0B since we still feel this is beta only. Although I did not see any major bugs yet and use it daily to read books and test books that I convert for our customers.

The application features direct connection to OPDS enabled digital book stores for direct downloading or purchasing of digital books. It has the simplest user interface I have seen in other applications and also support easy reading of books from mail messages or websites.

You can download it from Google play

Following are some screenshots of the application in both Hebrew and English user interface.



Posted in books, Computers & Software, Digital publishing, Free software, IDPF
One comment on “Developing a new EPUB3 reader for Android
  1. Sophie says:

    Hi IDAN,
    I am also looking for a open source solution for epub3 reader, and readium seemed to be a possible one. However I found your blog and since you talked about readium’s problems such as the bugs and lack of documents, I am not sure if I should use it.
    Not being very familiar with the epub3 spec, I started to study it just a while ago. I also found that it’s complicated. A programmer told me ‘it’s just html’, and I really can’t agree with him. Anyway, our manager asked us to develop an epub3 reader in a short time. After studying the spec I thought it’s not possible. However what I know about epub3 isn’t enough for me to evaluate precisely. In your opinion, how much time it takes to write an epub3 reader which fully supports the spec?
    Hope I am not bothering you too much with my question. Thank you so much for your help!!


1 Pings/Trackbacks for "Developing a new EPUB3 reader for Android"
  1. […] יחד עם זאת, בעברית היה צורך באפליקציה מתקדמת יותר שתאפשר לקוראים בישראל לקרוא ספרים בעברית, עם תמיכה בפונטים בתוך הספר ודיפדוף מימין לשמאל. לכן בשנת 2013 החלטנו לכתוב אפליקציה חדשה שהפוקוס העיקרי שלה הינו ספרים בטקסט זורם בעברית ובשפות אחרות. לצורך זה גייסנו מפתח אנדרואיד שלדעתי הוא אחד הטובים בארץ שהתלהב מאד מהרעיון שלנו לאפליקציה ועד היום עובד איתנו על פיתוח הגרסאות החדשות לאפליקציה. המפתח הוא חרש והעבודה איתו מוכיחה כמה קל לשלב בעלי מוגבלויות בעבודה. בבלוג שלי באנגלית כתבתי על פיתוח האפליקציה ועל העבודה עם מתכנת חרש. […]

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>