Direct verse addressing in 0.7

One of the problem I found in 0.6 is that it is very slow to go to different parts of the Bible. You have to select the book from the dropdown menu, type in the chapter number using the on-screen keyboard (or hardware one if you have one), click the verse and type the number again.

So in 0.7 I want to release something very useful (at least for me): just type the verse address, something like “1 pet 3:16” or, even better, “1 pe 3 16”, “1p3 16”, “1p3.16” and other alternatives must also be accepted.

So with God’s grace I managed to write a quite complicated logic to recognize those patterns. At first I wanted to use regular expressions, but I’m afraid that I will get stuck somewhere.

Jumping to John 3:18

Another feature is bookmarks. You can hold on a verse and a popup menu will be displayed. From there you can add bookmark. When you select menu -> Bookmarks, the following appears. The bookmark stores the verse address, a snippet of the verse, and the date it was last added (since duplicates will update the date stamp).

Bookmark screen

Something big is missing: search! How if I remember some verse about Jesus building church on the rock but I don’t remember where it is?

I think that’s another big thing, but I can’t do it for this version. It’s too risky.

Preparing for 0.6 from user feedbacks

I received many feedbacks from both the program interface and my friends when I see them operating the program. There are several things that I learned.

The Go To interface for navigating is too small for fingers! I didn’t know this until I really try it on a device. This is the first time I learned that touch screens needed some special handling. So here is the improved version of the Go To screen. The finger now can touch the chapter and verse numbers easily.

Bigger buttons everywhere!

Then, I changed the text display from a single TextView to ListView items. Surprisingly it is much, much faster to load a new chapter, because only items visible need to be rendered.

Almost useless about screen. The number after the version is the internal versionCode.

A new thing in this version is the brightness of the text that can be selected on Settings. I used this as the basis. Thanks for sharing the code.

Text brightness in percentage of maximum

First update of published app (0.5)

Here is the first update to the published Bible application.

We don’t need the chapter address on the title bar. Instead, I moved it to the bottom, to the button that allows you to move to different parts of the Bible.

Main interface

Simple setting screen. You can change the size of font (just a 7-item selection list), the font (serif/sans/monospace) and to bold the font.

Setting screen

I really want to get some feedback of the program, hence I popup this message every time the program is opened. I got quite a lot of feedbacks which encourage me to develop it more and more.

Feedback popup

The first version and this version lasts for 2+ months in Android Market, getting 252 downloads, so in average there are 4 downloads per day. I am very happy with this ^^

Time to Publish! (0.4)

After some more development as I am more accustomed to Android development, many bugs are fixed, and the Bible software are finally usable and for the public! I need to pay Google USD 25 for publishing, but I think that’s acceptable compared to Apple’s USD 99 fee for new developers.
The slowness of the previous version happens to be the use of java.util.Scanner that reads the information about index of chapters and number of verses of each Bible book. Although the class performs fast on desktops, on Android device without a JIT it suffers a lot. I modified that book information to use binary instead of textual numbers and prevent using java.util.Scanner altogether. The result: book information are read in less than a second, and it is even faster on my friend’s HTC Hero.
A conclusion: always be reminded that (Android, non-JIT, non-optimized JVM implementation) devices are much slower than desktops.
Another thing I learned is that Android emulator is much slower than real devices. That’s a good thing, in a way ^^
Main interface. It now has a prev/next chapter button on the bottom.
Now the Go To screen also has the book selection drop-down. It was painful to select the book and the chapter:verse separately.
There is this “warning” message when the program is opened. It says:

This program is unfinished, there are many defects and items that are not completed. I am putting this into Android market because I think there are people who needs Alkitab (Indonesian Bible) on Android handsets. Please make sure you update this program when a new version is available! Please send messages, suggestions, encouragements, and ideas to (my email). OK?

When “No!” is clicked, the program closes ^^

Bible Text is Shown (0.2)

Finally we have some Bible text displayed on screen. The text was taken from bibledatabase.org site, where unformatted (plain-text) Bible data are available for download.

Bible text of Genesis 1

The controls are very limited: left and right buttons to change chapters; select menu -> Book to change the book, and select menu -> Go To to change the chapter and verse number.

What was interesting about the text display is that it is a single TextView, with some formatting using the setSpan calls on a SpannedStringBuilder object. Actually I wanted to have the verses appear not in a new line every verse, but continually to the right of the previous verse. However, on some chapters, the text entirely disappears! After some frustation, it is that the TextView cannot handle a very long line.

Start-up time is very long, why…? It takes about 5 seconds on the emulator (I do not have any Android device).

Anyway, this is when I select menu -> Book to select the book to display:

Book selector. The number is the chapters available.

The Beginning

I am seeing the potential of devices running Android OS will be more and more. I have some friends who have Android phones (mostly HTC) and I feel like having it too. My current phone, Nokia 3250, has accompanied me for more than 3 years, and I am satisfied, except for that it is really hard to program a software for Symbian S60 devices.

While I explore the development process for Android, I was enlightened that Android development seems much easier than Symbian. It uses the Java (“language”), and the SDK seems so modern that it just makes sense. During the course I learned about Activities (as opposed to processes) that more practically define what applications are “running”, among other things.

From my friends I know that the Holy Bible in Indonesian language is not existant. I think it would be beneficial for me and for the others if I start to develop the Bible application for Android containing the Indonesian text. One of my friend showed an Indonesian Bible application he develops, and that motivated me to do the same thing, lest he ceased the development. (He really stopped the development, so I more confidently continue my development).

And here is an unversioned, unreleased experimental Bible app that I develop:

Supposed to be the main screen where the Bible text is displayed
The screen to input the chapter and the verse number (no book selection!)

Surprisingly, the interface of inputting the chapter and verse number coincidentally is very similar to my friend har‘s application for iPhone! We didn’t discuss and I didn’t see the iPhone app beforehand.