About

My name is Jonathan Goode and I am currently doing an MSc in Advanced Computer Science at the University of Aberdeen — I will be finishing my degree the beginning of next month (September 2009) so I am in the final stages of finishing an assignment for my last course.

For this course I have to complete a single project, which I chose to do on developing a   Java ME application as part of one of my lecturer’s research themes. This application had to be capable of downloading, formatting and storing books from Project Gutenberg on a mobile device so that anyone could enjoy the pleasures of reading a book without the need of using anything more than the phone in their pocket — this meant I had to create an eBook reader mobile application. Along with the application, I created this website in order to provide a place for anyone to try out the beta version of my application and provide me with valuable feedback — this feedback will then be incorporated into the testing and evaluation section of my dissertation. The application is also posted on GetJar.com and BetaVine.net to provide me with further feedback.

Presentation |Dissertation

The application works by integrating with backend PHP scripts in order to search, retrieve and format, books from Gutenberg. To format a book, first the text file of that book must be downloaded from Gutenberg — only then can it be cut up into smaller, digestible chunks and sent back to the user as a page of the book. The formatting process centres around the screen width of the phone, provided at the time of the request. The URIs for almost all of the books available from Gutenberg are stored in a database — this same database is used for providing the search functionality within the mobile application. Tera-WURFL is also used behind the scenes, for discovering the capabilities of a device making a request and to record which phones are using my application. After trying out many UI technologies for J2ME, I decided to go with J2ME Polish for manipulating the interface of my application. I chose it because it’s lightweight, free and one of the most favoured in the industry. Once a page is sent back to the phone from my script, J2ME Polish is further utilised to render the page according to the configuration set on the user’s device for displaying a book. The page of the book is then saved to their own private library, which the user can view and modify whenever they want. Caching is done automatically on the device in the background so the user doesn’t have to wait to open the next page. Caching is also done server-side incase a user requests the same book and page that matches their configuration and has already been cut up into chunks — it’s done when a user opens the page of a book assuming they are going to want to open the next page — and it’s further done when a user performs a search assuming they are going to want to open one of the books returned from the search.

Download

Project finished.

Contact

Feel free to contact me regarding any bugs or issues.

Statistics

The pie chart below illustrates the different manufacturers of phones using this application, in real time, according to what’s been beamed back.

W Series 43.09%, K Series 33.7%, C Series 9.39%, G Series 8.29%, Z Series 2.76%, F Series 0.55%, R Series 0.55%, S Series 0.55%, T Series 0.55%, V Series 0.55%

Video

Below is a short video (with no audio) demonstrating how to use this application in order to download and read books from Project Gutenberg on your phone.

 In the video the simulator asks each time for network access. However, on most phones this can be set in your application manager to “ask first time”, or something similar, so you are only asked once upon starting the application.