App Store Updates: PocketBible 1.4.0 and RomansRoad 1.0.3

This posting has been edited to reflect the fact that PocketBible 1.4.0 and RomansRoad 1.0.3 are now available on the App Store. Comments prior to the afternoon of 24 June were posted before the apps became available for download.

Both PocketBible and RomansRoad have been updated to account for new features in what Apple calls iOS 4 — version 4.0 of the iPhone OS.

What this boils down to is that the app saves its state when it is notified that the user wants to switch to another app, then restores its state when the OS notifies it that the user has switched back to it. These hoops would be completely unnecessary if Apple implemented “multitasking” the same way Windows, Windows Mobile, and even the Mac OS implements it. That is, your app doesn’t have to do anything special to run at the same time as other apps on those platforms. Leave it to Apple to reinvent the wheel — and the axle, differential, drive shaft, and engine.

The new version of PocketBible also implements several changes related to notes, highlights, bookmarks, and synchronization with the server:

When saving notes we used to convert “special characters” like emdash, left- and right-double-quotes, bullets, etc. into HTML character entities. This is unnecessary and can be confusing the next time you open the note.

When synchronizing notes with the server, we’re doing a more consistent job of handling those special characters.

Previous versions made sure all the Toolbox panes were kept up-to-date even when they were not the active pane. As a result you could spend a lot of time waiting for a list that you never look at to be updated. The new version only updates panes when they are active or become active. This should speed up launching and updating the screen after synchronizing with the server.

We sped up synchronization of large data sets by making some changes on the server but also by changing the algorithm that iterates over the notes on your device. This also sped up searching of notes.

We gave you the ability to change the length of time the program will wait for a response from the server when synchronizing your data. This mostly affects users with a large number of notes, highlights and/or bookmarks (say, greater than 1000 of any of these).

We optimized the case where you’re not really searching your notes but just asking for a list of all the notes in a particular Bible. This affects how quickly the Find Notes pane in the Toolbox can be updated.

A previous version of PocketBible broke the rotation lock function on the iPhone. It is fixed in this version.

We still have a couple features we’re working on that take advantage of some iOS 4 features. If we can get those to work, they’ll be in 1.4.1.

21 Responses

The way I understand the so called “Multi-tasking” in iOS4, it had to be done the way it was done to avoid unnecessary drain of the battery, right? So I suppose in essence, when you switch to another app, the one your switching out of isn’t really running in the background, it’s just sticking to it’s place. Which in most respects, that’s really all you want it to do anyway so when you come back to it, you’re where you left off. From a laymen’s (non programers) point of view, I can understand this. In most cases, there really isn’t anything for most apps to be doing anyway when your not actually using the app. But, it sure is a pain when you leave one app to jump into Bento to retrieve a registration number or login password, and you have to retrace your steps on the original program to get where you left off.

I didn’t realize that made additional work for the programer though. I guess I was thinking that was just something they (Apple) needed to change with the OS itself. So, I applaud you guys for getting that implemented so quickly. And, I can’ tell you how excited I am to know that my soon to be 1000 plus notes will be loading faster in the IPad version! I understand that a very few users have been affected by this since most people don’t have near that many notes. But, I’ve never been an ordinary users of software and I’m encouraged to know that this problem will soon be a thing of the past. Thanks again Craig and Jeff!

I agree that battery life is an issue. You wouldn’t want a game running in the background doing all kinds of animation and whatnot that you can’t even see. But for many/most apps, when you’re not using them, they’re not doing anything.

For example, right now I have TextWrangler and the Keychain Access program running on my Mac in addition to Safari. TextWrangler has two files open, but it isn’t doing anything. It’s waiting for me to type. When I switch to it and type something, the OS will notify it that there’s a keystroke available, and it will come to life and handle it. What’s important is that it doesn’t realize that it’s not the only thing running on my Mac — it doesn’t need to know that. All it needs to do is fall into its quiescent state, just as it does between any two keystrokes. If I was on a MacBook running on batteries, TextWrangler would be consuming no power. Ditto Keychain Access. It’s waiting to be notified that I’ve clicked on something.

The way the iPhone works is that you get notified that you’re about to be suspended. This would be a “don’t care” event except for the following very nasty detail: If the OS has to terminate you and reclaim your memory, it will do so without telling you. So when you’re told you’re being suspended, you have to act as if you’re terminating so that if later you are terminated without notice you won’t lose any data. Since most of the time you won’t be kicked out of memory, what really happens is that you burn more battery life by repeatedly saving your data unnecessarily when you switch between apps.

Windows Mobile does it the right way: You get asked to give up memory if you can, then if things get real bad, you get told you’re being terminated. You can then save your data if needed. But if the user momentarily goes to use another app then comes back to you, you won’t ever know they were gone. So this requires no changes to your code to support “multitasking” and you arguably use a lot less power because you’re not doing unnecessary saves every time the user switches from your app.

The desktop platforms are even better: The OS simply doesn’t terminate apps. It’s up to the user to manage memory and battery life by closing apps that he’s done with. For some reason (I blame Palm) that is verboten on phones. Apps don’t have red X’s in the corner so they can be closed by the user.

I understand that it’s different depending on the app. If you are a navigation app, you probably should stop updating the screen and stop (or at least reduce the frequency of) your access to position data when you get swapped with another app. But PocketBible doesn’t do anything when you’re just looking at it. So if you switch to your text editor or Web browser while using PocketBible, we really wouldn’t have to do anything — except for that nasty problem of being terminated without notice.

Anyway it’s not that big of a deal. It’s just annoying that we even have to do anything to support “multitasking”.

Don’t get your hopes up with respect to your large data set. We’ve made some incremental changes that will affect speed. Hopefully it’s enough to make a difference. We’ll see.

One thing that frustrates me about PocketBible is the start-up speed – even on the iPad.

Multi-tasking hasn’t been required for me for many other apps because the start-up time is effectively non-existent. For example, if you switch back and forth between Safari and the Notes app, it’s almost as good as alt-tabbing because they launch so quickly. By comparison, in church when the bible is read, the start-up time of PocketBible is excruciating, while my wife has already found the passage in her plain old paper bible.

The new version will improve start-up speed. In general there are a couple things you can do:

1. Don’t install more books than you need. When PocketBible launches it has to do an inventory of all your books so it knows what it has to work with. The more books that are there, the longer it takes to launch.

2. Don’t leave more books open in each pane than you need. This isn’t super critical, but again, the less work you give it to do, the better.

3. Don’t leave something in the note search field (or the regular search field for that matter). Any word or phrase you leave in the search field will cause that search to have to be performed when the program launches.

PocketBible is probably the most complex application you have on your iPad. It’s actually not surprising that it takes a while to launch. The fact that the OS terminates and re-launches every app every time you exit and run is unfortunate. That’s why most OS’s don’t work that way.

Paul: When PocketBible (for iPhone) is re-launched after being suspended, it goes directly to where you left off. Since it isn’t being launched but rather just “activated”, it doesn’t display the splash image.

Of course PocketBible for iPad starts up the same as it always has since iOS 4 is not yet available for iPad.

Hmmmmm I’m wondering if iOS4 (when we get it for the iPad) will elevate the problem we have with the iPad taking so long to load all of ones notes? I now have 699 and growing. I mean it wouldn’t be so bad if it was only slow on the initial startup of the app as long as it didn’t have to re-load all of my notes every time I switched in and out of the app? Any thoughts on that Craig?

Paul, I hate to say it, but I can’t use PocketBible on my Pad at church, it’s just too slow. PocketBible on the pad has become more of a home study Bible for me when I know I’m not going to need to be jumping in and out of the app. Therefore at church, I use a different Bible app on my pad because Im always needing to jump in and out of the Bible to other apps like Evernote. But, I keep all of my Bible reference notes in PocketBible so, if I feel I need to access them, I’ll use my Phone which doesn’t experience the same problem because it handles notes differently. For a while there, I was trying to add my notes to both PocketBible and the other Bible app I use on the iPad, but that just got to be too much duplicating of efforts. Since PocketBible is far superior to any other Bible app, (especially when it comes to syncing notes) I just decided to make PocketBible my main study/reference Bible. Again, maybe that will change once iOS4 comes out for the iPad. Okay, this is kind of funny, the Anti-spam word Im required to enter to submit this post is the word “slow” lol.

The thing that takes time when launching the app is populating the search results in the Find Notes pane in the Toolbox. It helps a little bit if you are careful to leave the search field blank. That is, after searching your notes, clear the search field and do a search for nothing. This has the effect of simply listing all your notes.

The new version (1.4.0) does not populate the search results unless the Find Notes pane is active. Since you will most often be in the Notes pane, your Find Notes pane may never need to be updated. I think in your particular case it may resolve all of your speed issues.

1.4.0 does two other things related to note searching. First the “search for nothing” described above has been optimized so that it no longer loads every note in turn into memory. Second, we changed the order in which notes are searched to use a sequence that is more optimum to the way the database is organized.

All of that is without any benefits from iOS 4. With iOS 4 when you suspend the app to use another app, then come back to PocketBible, we won’t have to do any initialization at all. So even if you left the app looking at the Find Notes pane it won’t have to re-populate it because it will still be in memory from the last time.

I think it’s only fair to point out that your decision not to use PocketBible in church is based on your personal desire to jump around between several apps on a device (the iPad) that is not optimized for that activity. I use PocketBible all the time in church for note-taking and following along with the sermon and I don’t have any trouble. And sometimes I use an external outlining app and don’t have problems with delays because I’m not trying to keep several hundred notes IN PocketBible AND similar notes in an external app.

“I think it’s only fair to point out that your decision not to use PocketBible in church is based on your personal desire to jump around between several apps on a device (the iPad) that is not optimized for that activity.”

I thought I made that clear? Actually it appears to me that it’s PocketBible on the iPad that’s not optimized for that activity, not the iPad itself. I have no problem jumping between my other iPad Bible app and other apps (although I only have 182 personal notes in that other Bible app versus the 699 I currently have in PocketBible). It doesn’t make any difference if it’s “several other apps” or just one other app that I want to switch between, it only takes one other app to be extremely annoying. There are some other very good apps designed to research scripture and to be offended by the thought that others might use other such apps is quite biased of you in my opinion.

You don’t seem to take criticism very well do you Craig? I hope you and jeff don’t take it personally, because it’s not meant to be. It’s my opinion that PocketBible is the best Bible app available for both the iPhone and the IPad. Especially considering the way you allow us to freely sync our notes, bookmarks, and highlight with all of our devices. No one else does that. However, it’s also my opinion that PocketBible for the iPad is flawed in the way it handles or loads notes. You made the remark once before along the lines that it’s abnormal for anyone to enter more than about 50 notes into PocketBible. Actually, I was a bit offended by that. You even sort of hinted that it was abusing the application. If you didn’t design the note feature to be used by anyone that wants to input more than 50 notes, why did you bother to design it at all? The least you can do if you can’t redesign and fix the problem is admit that is was an oversight in the iPad design. I seriously doubt that Paul and I are the only one’s that’s having to deal with this issue. Perhaps we’re just more outspoken then everyone else. That doesn’t mean we don’t appreciate your hard work, we do!

Hopefully the next version of PocketBible (version 1.4.0) will take care of the problem before too many other users discover and or otherwise have to deal with it. If not, we’ll look forwarded to seeing if iOS4 for the iPad will alleviate the problem, then we’ll never have to ever discuss the issue again! But for now, I can’t use PocketBible on my iPad at church or at any other time when I have the need to access other apps. Although PocketBible is one of my most utilized apps, I didn’t buy the iPad exclusively for PocketBible. (haha, now the Anti-spam word is “fast”. 😉

Like Craig I only use PB for all my reading and note taking at church. I find that there is simply no other programme to compare with it. The only small issue for me is the time for the splash screen to load up. We are all so accustomed to ridiculously fast speeds that we are in danger of failing to appreciate all that bible software can do for us (unless it does it instantly). To have a full library of bibles, commentaries, dictionaries; intant cross ref., note taking, highlights and bookmarks (all with full search capacity) on a mobile device is simply staggering. Over the years I’ve paid thousands of £’s on desktop software. I can have nearly all that on my iPad for a fraction of the price.
I don’t just want a programme that does a function. I want to experience the JOY of using it.

Thanks, Paul. Apple displays the splash screen immediately when you launch our app. They do their initialization for a couple seconds, then they give control to us and we do ours. The thing that drives loading time most is the number of books you have installed, because we have to take an inventory of those books so we can populate the various lists in the program. During the last second and a half or so while the splash screen is fading out, we are building the user interface on the screen. For most people, by the time the splash screen fades, the app is ready to go.

Ron, this is a moderated forum. I have to approve every comment that gets posted here. If I didn’t take criticism well, I wouldn’t post your comments at all. I was only pointing out to those reading your comments that for those of us who use PocketBible during church to read along with the scripture and take notes it’s perfectly fine. It’s the iPhone OS that forces us to completely exit our app and completely re-launch it every time you want to jump out into a different app for whatever reason. If you’re the kind of person that hops around like a Mexican jumping bean between iPad apps during church, then you’re going to have to wait while each of those apps exits and re-launches. That’s just the way the OS works. You’ve found it’s weakest point and you’re repetitively exploiting it, then complaining about it. However, if you’re the kind of person who listens to a sermon, follows the cross references, and occasionally takes a note or two, you’ll be fine.

Of course I didn’t say that you were abusing the app because you have a lot of notes. I was only pointing out that your experience with PocketBible is not that of the average PocketBible user.

The note feature was implemented on the iPhone where it works fine with a large number of notes. Then we did a quick port to the iPad and one of the things that ended up not working well was the edge-condition where a person has a very large number of notes. Despite having about 50 beta testers looking at it, it never came up. So as soon as we figured that out, we fixed it in the update that is currently at the App Store undergoing the approval process.

“You’ve found it’s weakest point and you’re repetitively exploiting it, then complaining about it. However, if you’re the kind of person who listens to a sermon, follows the cross references, and occasionally takes a note or two, you’ll be fine.”

Okay, now “THATS” just not fair nor is it accurate. Things are NOT fine. I can NOT even enter notes on the iPad while in Sunday School or a preaching service because every time I do, it acts just like I’m loading the app up from scratch because it wants to reload ALL of my notes AGAIN. I have given up on trying to enter notes via the iPad PERIOD because when I do it task 45 seconds to a minute before the pad can catch up and function properly. I’m sorry Craig, I can’t comprehend how you can classify that as acceptable?

Ron, please re-read my comment. I was drawing a comparison between your experience with 700 notes and that of a person who does not have 700 notes. I was saying that your experience with 1.3.x is unacceptable but for the person who does not have 700 notes, it is acceptable.

I want to further re-reiterate again once more for another time that you need to wait for Apple to approve 1.4.0. Any further comments on this subject are pointless until we see if 1.4.0 solves your problem. I believe it will. Or at least it will help.

Paul, please excuse me for referencing your communication about problems with the iPad. It was Neville Ridley-Smith’s comments that I was actually referring to as he seems to be having the same problems that I am experiencing, not you. Very sorry.

Just downloaded PocketBible 1.4.0 from the App store this afternoon. Craig, Jeff my hats off to you guys and the rest of the team. PocketBible appears to load much faster on the iPad now. I haven’t had a chance to play with it much yet, but it certainly looks like my complaining days are over and I just wanted to be the first to say, Nice job and thank you!

So tell me, with this updated version, is it still better to insure the tool box is not set to FindNote when ever I exit the application so when I load it back up it doesn’t have to load all of the notes? I believe that is what you were saying at the top of this blog post but am wondering if that only pertained to the previous version?

Whatever Toolbox pane you leave open when exiting the program will have to be re-loaded when you launch the program. 1.4.0 will load the Find Notes pane faster than 1.3.x did, but if you have lots of notes it would still be better to exit with the Notes pane active instead of the Find Notes pane.

Wow. I just upgraded my version of PB for iPad last night. I too am one of those users with a huge list of notes and was finding the slowness of PB on the iPad to be a problem. When I read the comments that this newest update addesses a number of issues including better performance for handling notes, bookmarks, etc, I was hopeful, and I have NOT been disappointed! What a difference. Thanks for the improvement and step function improvement in PB’s performance for a user with several years’ worth of notes. Great job! Thank you.

Craig, this question is a little off-topic here, but your June 18th, 2010 at 3:45 pm made me curious about Android (as an ex-software developer). Does it also behave the same way as these other OSes, or does it follow the standard Linux/Java way of “you don’t have to care about multitasking, the OS and VM cares for you”? I know Android isn’t really “pure Java” so I wouldn’t be surprised if it behaved in a similar way that Windows Mobile and iOS do. Thanks,
Fabio