Site & development update

I kept meaning to write a post after 2.1 went into production, but kept forgetting… so now we’re already at the point that first beta of 2.2 is live :)

We also have a new look for the site, made necessary by a WordPress update… I kind of like the new look though :)

The 2.1 series is now up to 2.1.4, which looks to be nice and stable… responses have been positive, especially concerning the addition of TextToSpeech.

We’re working hard on the 2.2 version now, with development focusing on 2 things:

  • Text selection with highlighting and notes
  • CSS support

Both have been implemented and are working, so now it’s a matter of ironing out the problems and getting it working smoothly.

I’ve released a beta of 2.2 on Google Play, if you’d like to try it please join the Google Plus Group.

If you would like a non-Google Play build of the beta, drop me an e-mail and I’ll put one online.


Starting Beta testing for PageTurner 2.1

All the new features for PageTurner 2.1 have been implemented, and right now we have 1 open bug…

So, it seems like a good time to start the first round of beta testing :)


Update: we are now on RC3.1. It can be found here:

This version hasn’t been translated yet, so if you have your device set to a locale other than English, you will see some English text mixed in with your own language.

Please, give it a try and let me know if it breaks. I’d especially like to hear from user that have a Nook Simple Touch, since this version should support your device completely.

If you need an access key to test this version, e-mail me at

Crowdfunding for OSS?

There is an interesting story on Slashdot today about CatInCan, a Kickstarter-like site where open source developers can propose features and get them crowd-funded.

It looks like it could be interesting for PageTurner for some of the big stuff like CSS or PDF support.  On the other hand, I could probably do the exact same thing by just putting a pledge on the site…. so, good idea or bad idea?

Slow going…

Sometimes I feel like our little friend on the left here… making progress, but it’s slow going.

I figured I was way overdue for an update on PageTurner development, so here’s a bit about what’s going on.

TextToSpeech: this has cost me much more time than I had originally planned… I really love it as a feature, since it fits the “read anytime, anywhere” mindset of PageTurner so well. I’ve been using it to get an extra 30 minutes of reading time in the car when driving to and from work.

I managed to get it to integrate nicely with bluetooth headsets and carkits, so that you can use the play / pause button on them to pause and resume the TTS playback. It also has a nice GUI:

This allows you to skip back a bit and also allows you to play / pause the playback.

Right now it still has 2 major issues though:

  • It takes long to start
  • If a sentence extends on to the next page it isn’t read nice and fluidly

I have fixes in mind for both, but it will take some more time to implement… considering the time I already invested I’m wondering if I should fix it now, or release it as-is for now and improve it in the next version. It’s functional, it’s just not as good as I want it to be yet.

Improved catalog: I’ve mostly been fixing bugs here and cleaning up the code structure… it still needs some work. This is completely functional right now, but I would like to add some nicer functionality for configuring your own Calibre OPDS server.

I find that this can be a big challenge for users, since the current app requires you to get the URL exactly right, which leaves a lot of room for error. I did improve the feedback, but ideally I’d want to offer a more guided way for users to add the different kinds of OPDS servers out there, while still allowing power users to just add a raw URL.

Unit testing: This isn’t really something that is directly visible for end users, but I’ve also been spending time on getting automated testing up and running on the PageTurner sources. For the past year it was generally easier to just test through the UI, especially since a lot of the functionality was still maturing and getting fleshed out.

We’ve gotten to the point where I’ll need a proper set of unit tests to get us ready for the coming year and the ones after that. Don’t worry, I don’t intend to spend the next couple of months just writing tests without adding functionality… but I am adding tests whenever I encounter a bug or change some code.

Anyway, I appreciate your patience and I’ll do my best to keep you all updated on the progress… in the mean time: keep reading :)


PageTurner has been downloaded 25,000 times in the Google Play Market now!

For those of you keeping count, this means our download speed is still going up :)

As always, a big thank you to everybody that helped this project to get where it is today… you guys rock!

What’s cooking?

Time for a quick update of stuff to come… I’ve been working on a number of dev branches, in various states of maturity….

Here’s a quick overview:


  • Improved OPDS catalogs: the Download Books screen has been completely updated to offer more download sites out of the box, but more importantly it allows you to add an unlimited number of your own sites. this one is pretty much ready for release, it just needs more translations.
  • TextToSpeech: lets PageTurner read a book to you while you drive your car, soak in the tub, etc. The basic functionality works, but it needs better UI before it’s ready to be released.
  • Improved rendering: I’m adding support for things like <font> tags and right-aligned text, so that things like poetry can be better rendered. The rendering itself works, but it needs extra Preferences (and translation).
  • Hebrew support: allows you to read right-to-left, and adds a better font for Hebrew books. Pretty much works, but needs to be translated.
  • Nook support: ProjectGus, a PageTurner user from Australia managed to get PageTurner running on the Nook and has been doing some awesome work in adapting the app to work well on e-Ink screens. I hope to have his changes integrated in the 2.1 release.

I haven’t set a release date for the 2.1 version yet… so I might include some other stuff as well. Text selection and highlighting are still on my to-do list as well, but I have to tackle some issues before I can implement those.


2.0 is out there

As you have probably seen by now, the 2.0 version has been released… Unfortunately it hasn’t been received as well as I’d hoped.

Rushing it out before Christmas led to some bugs, and the Market comments pointed out some usability issues. We’re at 2.0.3 now and most of these things have been corrected.

Still, I’ll repeat the Android developer’s mantra: if something doesn’t work or you have issues, please e-mail me before posting bad reviews in the Market. I’ll do everything in my power to help you and correct your issues.

OK, all that remains then is… Merry Christmas and happy reading in 2013









Dev update

I’ve been doing a lot of coding the past weekends, and I have been lucky to have the help of some awesome people that invest their time and effort to help clean up code, fix bugs and just plain brainstorm.

I’d like to thank everybody that has helped so far… you all rock :)

Now, what can you expect from the upcoming 2.0 release?

  • Text search: often requested in Market comments, and now implemented with a bit of regular expression magic :)
  • ActionBar: older versions used a “fake” actionbar, but the 2.0 release now uses ActionBarSherlock. It also uses the modern theme on platforms that support it.
  • Page numbers: probably requested even more often than text search. It does take some time to calculate page numbers, but it only happens the first time a book is opened. Since it might be a performance hit on older devices I did make it a preference with a default of off.

There are more small changes, but these are the major ones… if you’re interested in a full list, check the 2.0 milestone on Github.

I also enabled text selection on newer devices, and in the 2.1 release I plan to add highlights, annotations and notes.

If you’re interested in helping beta-test the 2.0 release, please drop me a line at


A sneak-peek at PageTurner 2.0

I already posted these on Facebook, but ofcourse I’ll post them here as well :)

I’ve had a busy weekend getting PageTurner updated to use the ActionBar and Android 4 look and feel on devices that support it… here are a few pics:

Right now there are some issues with dialogs not looking right on Android 2.3 and earlier, but I hope to have those fixed soon.

On open, Free and libre…

This is an (updated) repost from my blog at

Update: there is now a planned feature on Github to make the server-address configurable in the Preferences.

I have undertaken a bit of an experiment in releasing PageTurner: it’s free as in speech but not as in beer.

I’d like to share my reasoning behind it and the results so far.

Currently there are 3 versions of PageTurner:

  1. OSS Version: Available for download on my site or by building the source yourself. Also downloadable through the excellent F-Droid app-store. Free both as in beer and speech.
  2. Ad-supported version: free as in beer and available in the Android Market
  3. Paid version: available in the Android Market for 2 euros, or $2.49.

Now, you might have noticed that though this app is completely Free (libre) and open source, it actually looks like every other commercial, closed-source app in the market with an ad-supported version and a paid “pro” version.

What is free software?

Before I get into my reasoning for going with this pricing scheme, I’d like to take a little side-trip into my views on the benefits of free software.

Often people think it just means “software available at no cost”, leading to the distinction between free as in beer or free as in speech. In Dutch we translate it as “vrije” software, meaning it grants you (the user) freedom. But how does it do that?

  1. You (or someone you trust) can inspect the software by reading the source code to make sure it doesn’t do anything you don’t want it to. If the software sends your data to some marketing agency or tries to take over your machine, it will be there in the code.
  2. If you want, you can adapt the software to your needs and change its behaviour to better suit you.
  3. You can learn how the software works and use it as a basis for your own work. Some restrictions may apply here.
  4. You may share the software with your friends, both in the original version or with the changes you have made.

The first point might sound esotheric since you probably don’t want to go through the hassle of checking and building the software. You don’t always need to though. The F-Droid Market I mentioned earlier make it their business to check apps and build them from source so that they can be 100% sure that no nasty stuff creeps in there.

OSS/Free Pricing

Now, as you might have noticed, none of the points about free software say anything about price. By now you’ll probably be saying: “yeah, true but every single open source app I know is downloadable free of charge!”, and you’d be absolutely right. The reason for that of course is mainly point 4: it doesn’t make much sense to charge people to get your software if they’re then allowed to give it away for free. In a sense you’d be competing with yourself.

Applied to PageTurner

It is my personal belief that people aren’t unwilling to pay for things they like, as long as you make it easy and convenient for them. In fact, they’re generally willing to pay to save themselves some work. On the other hand there’s also a group of people that will gladly put in some effort if it saves them some money. I decided to try and accommodate both groups, while still honouring all the ideals behind free software and hopefully recouping some of the expenses I incur in running the backend-services for PageTurner.

So, how does it work? PageTurner really consists of 2 parts:

  • An Android reader app
  • A back-end server to store sync-points

Both of these components are Free with the source code available on my Github page. That means that if you want to you could easily:

  1. set up your own back-end server
  2. change 1 line of source code in the Android app
  3. Compile/package the android app and install it on your devices

You’d be up and running with 100% functionality without having to pay anyone, except perhaps for the server.

If however you’re like most people you will not want the hassle of setting up your own server. That’s why I also run a back-end server and my builds of the Android app point towards this server. If you get a build from the market, it will be able to connect to this server out of the box.

If you get the OSS version from any place, it will require an Access Key to connect to the server. Right now I’m giving anybody who contributes to the project in any way (donations, translations, testing) a free key.

You can also buy a key through PayPal here on the site for the same price as the Pro version in the Market.

All 3 versions of the app are functionally identical. The only difference is that the OSS version has a preference where you can input your key, and this field is missing from the Ad-supported and Pro version. The keys are checked by the server against the keys in its database and depending on that your requests will be processed or refused.

I believe this gives users the full spectrum of freedom ranging from setting up everything yourself and keeping your wallet closed to having someone (me) take care of everything and paying for that either by watching ads or through a small one-time fee.

The Big Question

To me this seemed like a good way to find a balance between generating some revenue from my app and honouring my belief in Free Software. I have seen very little apps try anything similar though, so I’m very curious to your opinion about my strategy.

So far responses have been positive, but I invite critical thinking. Just keep the language nice :)