PocketBible 4.18.0 Uploaded to App Store

Introducing AI Insights in the Autostudy Feature

November 9 Update:
PocketBible 4.18.2 was approved on November 9. Additional bug fixes noted below.
PocketBible 4.18.1 was approved on October 31. Fixes a couple bugs in the earlier 4.18.0 release.

Version 4.18.0 was approved for distribution on the App Store on October 28.

The main motivation for this update was to fix several little problems that had shown up in PocketBible as the result of recent iOS updates.

While we were in the code, we took a look at the bug list and squashed a few of the bigger ones. And while we were doing that, we moved some code back into the iOS/macOS codebase from the new Windows app in order to gain functionality. This turned out to mostly affect the Advanced Feature Set features — Autostudy in particular.

Here’s an annotated list of fixes in version 4.18.0-4.18.02

Autostudy

Most of the work in this version turned out to be related to the Autostudy feature.

  • Letters with accent marks could break word and verse Autostudies. This was a fascinating bug to fix, only because it turned out to be a minor problem with code that has been in our apps for Pocket PC, Palm OS, Windows, macOS, and iOS since 2004. It had just never been invoked in exactly the right way to expose this bug. The fix was simple once we found it.
  • Changes to the verse, word, or date being studied weren’t always recognized. If you changed the verse without closing the Autostudy window and starting again, PocketBIble might not recognize the change. Another easy fix.
  • While the link on the word “Note” at the beginning of verses with notes was not there, the word “Note” was there. One of the advantages of being me (Craig) is that when you’re doing your own Bible reading and spot something annoying, you can fix it. So I did.
  • Word Autostudies now support phrases, not just words. This was added in the Windows code then ported back to the macOS/iOS codebase where it came from.
  • Better algorithm for discovering sources of cross-references. We took some time during the Windows project to come up with a better algorithm for this. We look for commentaries that cover a high percentage of the verses in the Bible, that have a large number of links per entry, and in which links are a high percentage of the total text in the book.
  • Bible verses in date Autostudies can now appear in devotional order instead of date order. As you know, I’m a fan of doing my daily reading in chronological order. I tend to use resources like the One Year Chronological Bible or my own 7-Minute Bible for Bible reading. When using the OYCB, Autostudy would put the verses in biblical order instead of leaving them in chronological order. This defeats the purpose. This feature fixes that.
  • Navigation buttons at the top of Autostudy reports. This feature was borrowed from the work we did on Autostudies for the new Windows app. It puts a row of navigation buttons at the top of your Autostudy reports to make it easier to navigate those long files.

AI Insights in Autostudy

This one deserves its own section. We’ve integrated ChatGPT into PocketBible to generate custom commentary, original language insights, devotional thoughts, and other useful information. This feature requires an active Advanced Feature Set subscription. It is not available to users still relying on the old “permanent subscription to the legacy AFS features” from version 3 of PocketBible.

Before you dismiss this innovative and useful feature, you need to give it a try.

As you may know, ChatGPT is a large language model that is able to give in-depth, human-sounding answers to natural-language questions. The key to using ChatGPT effectively is to craft the appropriate query (or “prompt”). We’ve spent a lot of time over the last year and a half designing prompts and instructions that cause it to give responses that are Bible-based and Bible-first. It avoids dogma and denominational bias and favors what it clearly reads in the Bible. It uses biblical terminology where political correctness would prefer non-biblical alternative language.

ChatGPT is trained on virtually everything that has ever been written about everything. As a result, it brings to your study deep knowledge of biblical languages, of biblical and secular history, and of the geography, politics, and culture of the lands and peoples of the Bible. We call the articles it writes for PocketBible, “AI Insights”.

AI Insights in Verse Autostudies

  • Bible Commentary — Scholarly, accurate Bible commentary that is written at the level of an average Bible reader. Includes historical/cultural context, information about the author and original audience of the passage, the role of the verse in the surrounding passage, and practical application. The article will cite its sources if it refers to other Bible passages.
  • Cross-References — A list of cross-references for the topics in the verse or passage, organized alphabetically by topic.
  • Theological and Doctrinal History — Discusses varying interpretations of the passage or concepts covered by the passage and how they have been debated throughout church history.
  • Hebrew and Greek Insights — Lists key Greek or Hebrew words used in the passage, along with their meanings, usage in other contexts, and nuances that might affect the meaning of the passage. To make these articles more accessible, words are transliterated rather than spelled out in the original languages.
  • Sermon or Lesson Title with Outline — Produces an alliterated outline (or a close approximation thereof) and a suggested sermon title for the passage.

AI Insights in Word Autostudies

  • Bible Dictionary — An article about the word or phrase being studied, including a definition of the word(s), key Bible verses that use the word(s), and insights from the Greek and Hebrew words that are often translated using this word.

AI Insights in Autostudy Today

  • Inspriational Thoughts — An inspirational reflection on today’s Bible passage(s). The attributes, promises, and commands of God are emphasized. The goal is enriched worship and prayer, and a deeper personal connection with God.
  • Commentary — Basic Bible commentary on the passage(s), including background information, historical context, and explanations of key themes. Important Hebrew or Greek words are defined and their implications discussed.
  • Applying Today’s Verses — The focus is on the practical application of today’s passage(s). How do the teachings and principles in the passage(s) guide the reader’s behavior, decisions, and relationships as they live out the commands and promises of God in practical ways?
  • Today in Christian History — This article is different in that it is not about the Bible passage you’re reading but is about what happened on this date throughout Christian history. The emphasis is on known dates, not dates when events are traditionally celebrated, and on people and events, rather than on holidays and commemorations.

Other Features and Fixes

  • Some apps had trouble pasting text from PocketBible. PocketBible has been putting formatted text on the clipboard (actually called the “pasteboard” in macOS and iOS) since the first day it was supported. (You probably have forgotten that the first two major releases of iOS did not even have a clipboard. The clipboard wasn’t introduced until iOS 3.)

    When apps put text on the clipboard, they have to identify the format of the text so that the receiving app knows what it’s looking at. Somewhere around iOS 17 or 18, certain apps stopped recognizing the original identifiers for some of the rich-text clipboard formats, and as a result would misinterpret text placed there by PocketBible. We’ve resolved this in a way that maintains compatibility with the past while adopting the newer identifiers.
  • Punctuation in selected or entered text could confuse search, look-up, and Autostudy features. We do a better job of filtering punctuation than we used to. Note that 4.18.0 was too aggressive about removing punctuation and introduced a problem that has been fixed in 4.18.2.
  • AFS subscription management on the menu was linking to the wrong URL. Apple changed the URL for subscription management and we didn’t notice it until recently.
  • The space after a trailing apostrophe was missing in certain Bibles. Instead of “Jesus’ disciples”, you’d see “Jesus’disciples”. The fix for this in 4.18.0 and 4.18.1 introduced other problems. 4.18.2 fixes it.
  • Searching for non-existent words at the beginning of phrases could fool PocketBible. Searching for “grafted in” in a Bible that does not contain the word “grafted” would give the results for “in” instead of saying that the phrase doesn’t occur.
  • Wildcard searches were broken by changes in 4.18.0. Fixed in 4.18.2.
  • Wildcard searches were inadvertently omitted from the User’s Guide. The User’s Guide was severely lacking in detail when it came to the search features. We updated the User’s Guide for 4.18.2, adding information about certain types of search patterns that have been in our apps for 10 years but have just never been documented.
  • The “toggle play/pause” button on certain headphones didn’t work with the synthesized speech feature. This turned out to be a complete oversight on our part. Sorry about that.
  • Text would scroll some random number of pages up or down when the height of the window changed. This was usually the result of showing or hiding the toolbox on the iPad version of PocketBible. Apple changed the order in which certain things were done when resizing the window, which caused our attempt to keep the text at the same location to be defeated.
  • Link previews in notes might not be able to be dismissed, or, when dismissed, would close the note viewer. Fixed in 4.18.2.

There is a small number of other fixes that aren’t worth mentioning.

PocketBible for iOS Updated – Version 4.16.0

On Friday, October 6, 2023 we uploaded version 4.16.0 to the App Store. Apple approved the new version the next day.

This version was released primarily to make PocketBible for iOS compatible with our latest changes to our Bible format. These changes allow us to include data with each Bible that tell PocketBible how Bibles should interact with each other. This data used to be included in PocketBible itself, but that meant that we often had to update PocketBible on all platforms simply to release a new Bible. These changes will help us avoid having to do that.

In addition, several new features, enhancements, and bug fixes were added:

NEW FEATURES

  • Added a “direct keyboard entry” go-to-verse style to better support hardware keyboards on iPad.
  • Added press-and-hold link previews for most types of links in the note viewer.
  • Added ability to link to document fragments in notes. (Use plain text editor to add id= attribute to a tag; link with href=”#id” syntax.)

ENHANCEMENTS

  • Do a better job of managing the toolbox size when using a hardware keyboard attached to an iPad.
  • Support more types of link previews in book and Bible text. Change the way they are displayed to take up no more of the screen than required.
  • Accommodate more types of links being pasted into notes from PocketBible books and Bibles.
  • Added VoiceOver labels and hints to many more buttons.
  • Slight visual changes to the shape and borders of book panes to provide better definition when panes are displayed in tiles.
  • Added the version numbers of the Bible reference data in a Bible to its “About This Book” screen.
  • Users Guide is automatically re-installed on request if accidentally deleted.

BUG FIXES

  • Changes in the way the iOS speech synthesizer handles empty strings passed to it would cause PocketBible to sometimes repeat a verse or paragraph when reading it.
  • Duplicate notes could be created while changing the name of a Journal note. (AFS)
  • Links to websites in notes could fail if the URL contained spaces.
  • Text in alert dialogs was difficult to read when using a light color scheme while the device is in dark mode or a dark color scheme while in light mode.
  • Book, chapter, or verse numbers could get truncated in the “spinner” go-to-verse style.
  • The “spinner” style go-to-verse dialog wasn’t being displayed the first time it was invoked after having been selected in Settings.
  • The app could crash when a shortcut key was used to open the “today” menu on an iPad with a hardware keyboard.
  • Long-press on a toolbar button in landscape mode on an iPhone activated the wrong button.
  • Long press on go-to button to see list of recent verses would not display correctly if the active book was not a Bible.
  • Selecting a recent search caused the search to be performed but the results were immediately dismissed.
  • Login/Create Account screens now have dark background when dark color scheme is active.

Note on Account Deletion

Apple initially rejected this version of the app because it doesn’t provide a way for users to delete their account. This is a new requirement and we knew about it but didn’t realize it had taken effect. Apple was gracious enough to approve the app, but we’ll have to add account deletion in the next update.

The reason we don’t currently have this in any of our apps is because it is “dangerous”. Consider that account deletion will do the following:

  • Your entire account is removed from the server, including your transaction history. As a result, PocketBible is affected on all platforms even though you’re doing the removal from an iOS device. You won’t be able to download books or have access to Advanced Feature Set features on Android, macOS, or Windows when you delete the account. This cannot be undone.
  • All of your notes, highlights, bookmarks, and devotional reading progress are permanently removed from the server and from your device. This cannot be undone.
  • All books, Bibles, and AFS features are removed from your device except those that came bundled with the app.
  • Since your account and transaction history is deleted, no refunds can be issued for products purchased in the last 30 days that would otherwise be eligible for refund.
  • All settings and user preferences are removed from the device. All search and navigation history is removed. The app will restart and will believe you are running it for the first time.

Even though we plan to give you more than one opportunity to cancel the deletion sequence, once you confirm it twice, we will proceed and it can’t be undone.

We’ve always made account deletion something we do by request to tech support. If we see that a user has a lot of books or a not of notes/highlights/bookmarks, we’ll give them the opportunity to change their mind before automatically continuing. We’re sure we’ll have more than one unhappy user as a result of this Apple requirement.

Fun fact: PocketBible allows you to view your Cloud Library download account even if you refuse to log in. That’s because a few years back there was a reviewer at Apple who could not figure out the difference between “shop for Bibles and books” and “access your download account”. He told us the user has to be able to shop without logging in, then he showed us the error message he gets when he select “access your download account”. We pointed out how to get to the built-in store but he wouldn’t budge. So when you go to the Cloud Library screen without logging in, we give you the opportunity to log in, but if you choose not to, we show you an empty list. That made the Apple guy happy and they approved the app. 🙂

Serendipitous Programming

Today I’ve been working on a new feature for PocketBible for iOS and one thing led to another, and, well, I ended up implementing a feature I didn’t know I was working on, and didn’t realize how much of it was already sitting there, waiting to be exposed to the user.

So the new feature I thought I was working on is the ability to “rename” your highlight colors. That is, you’ll be able to assign a topic to each color. Then when you highlight a verse, instead of seeing a list containing “Khaki”, “Cornflower Blue” and “Hot Pink”, you’ll see “Salvation”, “God’s Love” and “Prophecy”. We’ve been wanting to implement this for a long time. While we were upgrading our cloud synchronization protocol over the last few months, I added the ability to sync highlight color names with the server and we took advantage of that in PocketBible for Windows Phone and Windows Store. The plan has always been to roll that into other platforms as we have the opportunity.

While looking through the code that shows you your list of highlight colors (which I’ll have to modify to show you your user-defined names for those colors) I stumbled into a bit of code that Jeff wrote years ago but then “commented out”. (If we have code that we’d like to retain for reference purposes but don’t want to actually have the computer execute, we turn the code into a “comment” so it will be ignored by the compiler but still be there if we want to see it.)

Those of you who have been with us for a while know that Jeff was my programming partner for 27 years before his death from cancer in May 2012. It’s been a bittersweet year as I’ve had to deal with his passing while surrounded and immersed every day in code that he wrote. I keep running into little things that remind me of him, make me want to give him a call to talk about a problem, or give me a chuckle. So it’s always interesting when I run into a piece of code like this.

What this particular piece of code did was add three additional highlighting styles to the list of colors you can highlight with. These are “underline”, “strikeout”, and “underline+strikeout”. Those look like this, this, and this, respectively.

Now, why would you ever want to strike out a verse? That’s a good question and takes me back fifteen years to the days of the Palm operating system when cameras were cameras, phones were phones, and “portable digital assistants” were all the rage. In those days, color displays were luxuries that cost money, size, weight, and battery life. So most of those devices had monochromatic screens.

On color screens, we could highlight a verse with a background color. But what could we do on these black and white screens? Since our text was coded in HTML, and since HTML offered simple styles like bold, italics, underline, and strikeout, we decided to use those. We ended up not using bold and italics because they could cause the text to re-wrap when they were applied, and in those days of wimpy processors, it just took too long and was disturbing to see. That left us with underline and strikeout, so that’s what we used.

As time has gone on, we’ve gotten to where we don’t even include these underline and strikeout highlighting styles in our programs. They’re not in PocketBible for iOS, and we weren’t planning on implementing them in PocketBible for Android. Unfortunately, some of you who were around back then and have sync’ed your highlights from your Palm PDA to PocketBible for Windows to our server and to PocketBible for iPhone expect to see those underlines. So we have to at least be able to display them if they exist, but we don’t let you create them (because we don’t want to proliferate a bad idea).

What I discovered today was Jeff’s original code for being able to create underline, strikeout, and underline+strikeout highlights in PocketBible for iOS. His comment said he had taken them out because the display engine (my code) didn’t support them. Sometime between then and now I implemented those highlight styles but we just never went back into Jeff’s code and turned those choices on.

On a whim, I enabled those lines of code and what do you know — they worked! That put me in the awkward position of trying to decide whether or not to leave them in. I never liked the idea of striking verses from the Bible, and even once you get over that, it makes the text hard to read.

About then it was time for dinner and I set the laptop aside to meet my wife and get something to eat. On the way there it occurred to me that we now have some better styling options that we had back in 1998. New versions of HTML with CSS support dotted and dashed underlines.

When I got home I spent about 30 minutes and implemented the styles you see here. These new styles replace the old styles rather than adding to them. So where you had strikeouts, you’ll have dotted underlines. And where you had strikeout+underline, you’ll have dashed underlines. I think this is a nice way of making your legacy data from your Palm days more usable and it gives you three more highlighting styles to use in PocketBible for iOS. (If you’re having trouble making out the dots and dashes, click on the screen shot to see the original size image.)

One of the cool things about this is that the underlying data storage and cloud synchronization already supports it. We’re not changing the data we save, but rather the interpretation of the data. So nothing changes in any of the other platforms nor on the server.

What I think is special about this — even though it’s not a life-changing feature — is that Jeff left it behind and it only took a little extra work to make it useful. And I like that all the infrastructure both for storing the new highlight styles and displaying them was already there.

Tomorrow I’ll get back to work on naming your highlight colors. But this was a nice little one or two hour detour to give us an unexpected new feature in PocketBible.