PocketBible for Windows Progress Update #10

Since the last update we wrapped up work on managing bookmark categories (add, rename, delete, etc.).

One of the things we’ve been working on are various display-related settings. “Settings” is not something you implement all at one time as a separate task. We have been doing them as we need them. One of the tasks we’ve undertaken in the last month or so is to make sure we’ve remembered all of them and that we’ve saved them so they can be restored the next time you run the app. This task will continue in the next month or so to make sure we have everything on the toolbar and menus that you’ll need.

In-App Store

One of the background tasks that has been going on here for some time is a revamping of our website. I could write a whole series of blog articles on that task, but suffice to say that the new design separates the data (like all the “catalog text”, screen shots, and book previews for each product) from the way it is presented. We’ve been able to use people who know Web design to do the “front end” development that the user sees, and use database developers to write the “back end” that provides all the data to the front end. It does this through an API (application programming interface) running on the server.

The initial plan for the in-app bookstore in this new version of PocketBible was to do it the way it’s done on Android, iOS, and macOS. On those platforms, the app has an embedded website viewer that opens a mini version of our website inside the app. As we contemplated how to do that in the Windows app, we had a different idea. Instead of making a little website and figuring out how to get it to interact with the app, we could use the existing API for the new website. All the code and user interface would be inside the app. It would use the API to get the data it needs.

The problem with doing it this way comes up when considering how to handle payments. Securely handling your credit card and PayPal transactions is hard to get right. (Unlike most other e-commerce sites that use third-party shopping carts, Laridian has a custom solution that interacts directly with the credit card processor and PayPal.) Doing it from inside the app creates security issues that we didn’t want to take the time to solve. So instead, when it comes time to check out, we securely transfer you to our website through your existing browser. You finish the transaction there then come back to the app to download your purchases. It all works pretty smoothly and it drew a nice boundary around what we had to implement in the app, saving us some time.

Accessibility

As our customer base ages we have heard more and more about the necessity to think about being able to control font sizes throughout the app. That means in menus and dialog boxes — elements normally controlled by the operating system, not PocketBible — in addition to book and Bible text. Each operating system on which we run presents us with different challenges. Most handle accessibility very badly. The way it’s done in iOS, for example, makes it virtually impossible to create any kind of data input form. If we adopt iOS’s way of doing things, we don’t really know how big any text is. They just take over and make it as big as you ask them to. It creates a real mess for every app.

Because of the development environment we’re working in, we have significantly more control. But with great power comes great responsibility. We have to be thinking about accessibility — especially text size — constantly. The problem is that there is a lot of text in a lot of places in the app — window/pane titles, button labels, section labels, instructive text, dialog boxes, and more. Rather than giving you control over the size of text in every context, we’ve decided to tie what we think of as “user interface text” to the sizes of your book text. You have one control that sizes the text in your book window and we base the size of other text in the app on that choice.

To demonstrate both the in-app store and accessibility features, I put this little video together. I don’t normally record video in the office because we get a lot of background noise from the restaurant below us and the street in front of our building. And because our offices are in a 19th century building with brick walls, original wood floors and 14-foot ceilings, there are a lot of echos. But I got here before anyone else this morning and thought I’d give it a try. 🙂

PocketBible for Windows accessibility demo.

One of the fun things about the way we develop here is that it is very iterative and nothing is ever final. While making this video I discovered that the range of font sizes I was allowing both for books and for user interface text was not wide enough so I made some adjustments. I also realized that it was hard to tell which switches on the preference page where you set the font size were on and which were off. I made a couple small changes so now switches turn green when they’re on.

PocketBible for Windows Progress Update #9

Search words highlighted in the note viewer.

Note Editor

We reported extensively on the note editor in progress update #8. We spent a little more time on that task, in particular as it relates to when we save the changes you make to a note. First, we wanted to make sure that your edits get saved when you exit the app, so we provided a notification to the note editor that the app is about to exit so that it can save your work. (You probably think that just “happens” — and it does — but somewhere there’s a programmer who wrote the code to detect the fact that the app was closing and made sure that your work got saved.)

In addition we took more control over exactly when we sync an edited note to the server. When the note is open for editing, our other apps periodically sync to the server to make sure your changes get saved. This is potentially important on a mobile device where you might drift out of Internet coverage or the battery might die at any moment.

On the desktop, we can be a little more patient. We wait until you are done editing the note (say you switch to the viewer or the other editor), then we save all your changes to the server at that time. Of course locally we save your work every few seconds so that you don’t lose anything if the power goes out. But by waiting to sync with the server until you’re done editing, we make certain problems easier to solve when you have the note open on more than one device at a time.

Finally, when linking to a note from search results, we now highlight the searched-for word(s) in the note viewer. This may be a first for PocketBible. I don’t recall doing this in previous releases, though some of you with memories that extend back to the last century more clearly than mine do might remember it differently.

Note Search

Note searching is similar to book searching except there are no indexes and of course the text comes from a completely different place. The overall structure of the code is the same except for when you get down to actually looking for the word or words in the text. Book text comes from an LBK file which has a lot of indices to support searching, but notes come from a database with no indexing. We’re able to use exactly the same code until we get to that last step, where it branches depending on the source of the text being searched. As a result, a lot of the logic of searching was already done.

The display of note search results is similar to displaying book search results. What we didn’t realize going into this was that it is so similar that it can actually share the code. So the Note Search, Book Search, and Journal Search panels are just 3 instances of the same chunk of code (we call it an “object” rather than a “chunk-o-code”). So we spent some time throwing away some work we had done on separate panels for Note and Journal searches and adapted the existing book-searching code to account for notes.

Similarly, the Journal is just a collection of notes, so the work we do for regular note searches and note editing automatically applies to the Journal. So even though the Journal is an Advanced Feature Set feature, we’re doing the implementation now as we work through the general notes feature. (Other AFS features will likely be put of until work on the standard feature set is done.)

Note search showing note excerpts in results list and highlighted search words.

On the other platforms, when you do a search for a word in your notes, the search results will show an excerpt of your note, but it’s just the first couple of lines. You don’t see where the thing you’re searching for actually occurs in the note. In the Windows version, we’ve made it so that search words are highlighted in the note viewer and are also highlighted in the search results. And we’ve added a smart “excerpt” function so that if the word you’re searching for occurs later in your note than the first couple of lines, we’ll show you the portion of the note in which your word occurs.

Since the book search, note search, and journal search all turned out to be the same/similar code, when we added excerpts with highlighted search words for notes and Bibles, we were also able to add them for non-Bible books.

Study Panel

As a result of working on the note editor, we learned more about how to better handle layout of other panels. This is particularly related to the re-layout that happens when you resize the Study Panel or the entire PocketBible window. Previously we had been doing a lot of manual calculations to position buttons and text appropriately. It turns out there were some easy ways to allow that to happen more automatically.

Bookmarks

We’re just wrapping up work on managing (add, rename, and deleting) categories. This gets tricky when you’re syncing all that data to other devices, so we’ve had to do a lot of testing of the entire synchronization path from Windows to the server and from the server to other devices.

Book Display

We happened to notice while doing our own devotional reading that the book pane was not getting refreshed when you change the start date of a devotional. So now it gets refreshed to update the dates you see in the text.

PocketBible for Windows Progress Update #8

Quite a bit of progress since the last report. Some of it (note editor) was re-implementing something we thought was already done, but that has to happen every once in a while.

Copy Passage

One of the major accomplishments of the last month has been what we call the “Copy Passage” feature. It allows you to enter a verse or passage reference and select a number of options for how you would like the text to appear, then press a button to copy it all to the clipboard with all your options.

With this feature in place, you can use Ctrl+C to just copy the selected text, Shift+Ctrl+C to go to the Copy Passage dialog to choose options, or, once you have the options configured the way you like them, Shift+Alt+Ctrl+C to immediately copy the selected verses with all the formatting options you’ve chosen.

Both the current Windows versions have some limited implementation of this feature. The implementation in the new Windows version is based on the macOS and iOS implementations, which have more features.

Note Editor

Writing a rich text editor for notes is not easy. Back when we were at Parsons Technology doing something similar for QuickVerse 5, we paid someone $200,000 just to implement this one feature.

A few years ago, the people who define how the Web works created technology that is present now in every browser that does a lot of this work for us. It’s far from perfect, but it’s pretty good. Since we use HTML (the “language” of the Web) throughout PocketBible and render it with built-in HTML functionality that is part of the underlying operating system, it wasn’t hard to integrate this functionality into PocketBible for Android, iOS, and macOS.

When we originally started looking into re-writing PocketBible for Windows, this was one of our concerns — would we be able to use this built-in feature for editing notes? We discovered that Microsoft’s development environment was sadly deficient in this area and it became one of our main reasons for going with the Electron system I talked about in update #3. Electron includes Chromium, the guts of the Chrome browser, to provide HTML rendering in every Electron app.

The HTML editing that is built into Chromium can be difficult to use. So initially, we implemented the note editor using a free component we found called TipTap. TipTap is endlessly reconfigurable and seemed like it would meet all of our needs. We even reported that note editing was complete back in update #4. But after we got digging into this, I realized that there were little things that weren’t working at all. For example, if you copied Bible text with superscripted verse numbers into a note, TipTap would remove the superscript. If you had a note that included a table, the row and column information about the table would be removed and you’d only see the text, all run together in a blob.

Turns out TipTap was “easily reconfigurable” but required custom programming to support every single HTML feature. So there was a custom plug in required to make text bold, another one for italics, one for superscript, and another one for tables. But on closer inspection it turned out that they were sorely lacking. For example, you could create a table, but you couldn’t put borders around the table cells. And TipTap would intercept all our Bible verse links, launch a browser, and try to direct you to a site like “http://John 3:16”, which of course didn’t work. Further, if you were reading a note that you created on another platform, like PocketBible for Android or iOS, anything that TipTap didn’t recognize would be stripped from your note.

At first it looked like we just needed to update TipTap from version 1 to version 2, but that didn’t fix anything. So we bit the bullet, removed TipTap entirely, and wrote our own HTML editor based on what we’d done for other platforms. This ended up working fairly well. It’s done except for wringing out the bugs at this point.

One of the little things we noticed that turns out is a problem no matter what platform you’re on is that if you use the note editor to change the color of your notes then choose a color scheme that causes the note editor to have a dark background instead of the traditional white background with black text, you may not be able to see your notes. So the new version has an easy way to switch to a light or dark background color in case you need it to accurately view your notes.

Registration

In update #6 I said we had implemented the ability to log into your account, which is true. But we didn’t prompt you to register when you first launched the app. So that’s been implemented. You can now log into an existing account or create a new one. And the account screen in PocketBible settings/preferences will show you your Advanced Feature Set subscription status and give you options for synchronizing your notes, highlights, and bookmarks.

Current Tasks

We’re currently working on some polishing of the bookmark feature. We previously had implemented the ability to set and clear bookmarks, but not create new categories, remove categories, or rename categories. We’re well into that now. We need to do similar work with respect to highlights.

We’re also testing and tweaking the features mentioned above. While doing one thing we often discover better ways to do things that affect other parts of the program. For example, over the last couple of days I’ve revisited the “go to” pane and significantly streamlined the way it works based on work we did while implementing the note editor. This has made it more reliable by removing a couple hundred lines of code that just gave it more places it could go wrong.

We’ll soon move from the note editor to implement note searches. We have the basic user interface in place; we just need to implement the actual searching.

One behind-the-scenes task that is happening is getting us positioned to be able to create what we call a “release build”. When we build the app in its current state, it’s really suitable only for development use. It has additional panes and windows that show our developers the internal workings of the code for debugging purposes. The version you get (the “release build”) won’t have those features, of course. I want to be able to create a release build sooner rather than later so that we have time to work the bugs out of that process and get set up for beta testing.

What PocketBible really looks like during development. The large window in the upper left is the main UI thread with developer tools open in the right half. The smaller window in the lower right is a search worker thread that won’t have any user interface in the release build. Behind all this (and usually on its own monitor) is source code and output from the build process. When I screenshot this for public consumption, I maximize the upper left window and close the developer tools so it looks more like what you will see.

Construction Project

I see it’s been over 3 months since I updated you on the view out our front windows. As you recall the city completely shut down and rebuilt the main street through town, which passes in front of our building. At the same time, the strip mall across the street was torn down and a new combination retail/residential building is going up in its place. Our entertainment for the last 9 months has been watching (and listening to) the construction.

The street re-opened around Thanksgiving. Work on the building continues. The exterior appears to be completely framed. Windows are being installed and bricking has begun. Something is happening on the roof but we can’t see it well enough to tell what it is — perhaps an insulation layer that goes down under what I assume will be a rubber membrane style roof. On the inside we can see electrical work being done and also fiberglass tub/shower inserts in each apartment.

A similar build is being behind this one, which will have parking underneath and 2-3 floors of apartments. We won’t be able to see that one being built

PocketBible for Windows Progress Update #7

Christmas break and some changes in the availability of team members have taken a toll on productivity, but work continues on the app.

A lot of time has been spent implementing what we call the Go To Tab in the Study Panel. It’s where you go to navigate through a Bible or reference book. There are 3 different configurations of this pane. For Bibles, you have the ability to enter a Bible reference or choose book, chapter, and verse from drop-down lists. In addition, a list of your most recently visited verses is displayed.

For devotional books, the main interface is the ability to navigate to the first unread reading, previous and next readings, and to the reading for a specific date. A list of readings that are highlighted to indicate whether or not you have read them is displayed. Functionality is provided to “start over” on a devotional by setting the start date and clearing your existing reading progress data. Related to the implementation of the Go To Tab for devotionals is the ability to click on a heading over the reading for a given date to mark that readings as “read” or “not read”.

For all other books, a hierarchical table of contents is displayed, and your current position in the book is highlighted.

Study Panel and Toolbar Position and Size

While we were working on the Study Panel, we made it so you could have it positioned on either the left or right side of the screen. (You’ve seen it on the left side in every screenshot to date.) We also save the width of the Study Panel and allow you to double-click on its border to rotate between its minimum width, the width you’ve set it to, and its maximum width. This is in addition to being able to either show or hide the panel.

Related to the position of the Study Panel, we also made it so you can display the toolbar either at the top or at the bottom of the screen. We think this might be handy when using PocketBible on a Windows tablet. While doing that, we made both the toolbar position and contents persistent (saved in your user preferences).

Showing the Study Panel on the right and the toolbar on the bottom

We spent some time on a rough implementation of what we call “navigation history”. This is the data that lies behind the “back” and “forward” buttons on the toolbar. This is significantly more difficult in PocketBible than in something like a browser. In a browser, your back/forward buttons take you through the history of the current browser pane or window. PocketBible can have multiple panes and multiple books open in each pane. The history database needs to keep track of all of that.

We call this a “rough” implementation because there are a lot of places in the code where we need to “capture” history because the position is about to change. Further, there are a lot of places where we don’t need to actually capture history but we need to somehow mark the book or pane as “dirty” and in need of being saved. We believe we have identified most if not all of these places. Further testing is required.

A Few Smaller Things…

The ability to highlight a word and right-click to look up its definition is implemented.

The search field now displays a list of recent searches.

You can specify a range of verses to search when searching a Bible.

The range of font sizes you can select has been expanded.

We spent a lot of time (and continue to spend a lot of time) working on internal, non-user-facing elements of the code. Some of these are to accommodate updates to third-party libraries used by the app. Others are to flesh out implementations that were started with the idea we’d finish when we knew more about what they needed to do. Some are tweaks to the user interface that we’re getting around to as we pay attention to different aspects of the program.

Schedule

I have a hard time coming up with different ways of saying “we’ll be done when we’re done”. We go through periods where we make a lot of progress and others where we have a problem we just can’t figure out and get past. As I’ve said before, we don’t work with a specific release date in mind. We just keep working our way through the list.

A few of you have offered suggestions. We appreciate but can’t always implement those. That being said, the reason the toolbar can be moved to the bottom of the screen is because a PocketBible user asked us if we could do it. We had one false start that led us to believe we couldn’t, but then we backed up and took another run at it and the result is what you see above. So if you have suggestions, feel free to pass them along either here in the comments or to tech support. We are locked into some decisions but will always think and talk about good ideas, regardless of the implications.

Does It Matter Where Your Bible App Comes From?

DumpsterTrevor McKendrick is an atheist who wrote one of the top-selling Bible apps for iOS. A former Mormon, McKendrick saw an unserved niche market on the App Store and created a Spanish audio Bible to fill it. Now he’s banking over $100,000 per year selling the app. He compares the Bible to Harry Potter and describes Christians as people who learn the spells in the book and try to use them to heal their children. He compares them to people who teach The Lord of the Rings as real history.

Does it make any difference whether or not the people who create the products you use for Bible study agree with the materials they publish?

When I started writing Bible software in 1988 there were very few other products on the market. I purchased the King James Bible from Public Brand Software, a distributor of freeware and shareware programs for MS-DOS. While browsing their catalog (paper catalog — this was before the Web) I saw a Bible program called WordWorker and picked up a copy of that, too.

WordWorker was pretty impressive compared to other programs available at the time. My problem with it was that the programmer who wrote it was associated with The Way International, which denies key teachings of historic Christianity and adds a few of their own. They encourage severing ties with family and friends and living with other “believers” instead, which many argue qualifies them as a “cult”.

Coincidentally I had been unsuccessfully recruited by a member of The Way while in college. Noticing a strange-looking guy observing me playing pinball at the student union, I struck up a conversation and bought him a couple games (he had never played pinball). He invited me to join his “twig fellowship”. As a brand new Christian with very little foundation in the Bible, I struggled with figuring out if this was God’s direction or not. Fortunately I dodged that bullet, and got involved with a local church that had a strong emphasis on the Bible and Bible study, which is what eventually led me into developing Bible software.

It was difficult to get excited about using WordWorker because I felt like I was supporting a cult. Even if it coincidentally met my needs, it was hard to recommend to others or even use enthusiastically because I knew where it came from. One benefit of using Bible software that comes from a person with whom you share a common faith is that you don’t have to feel guilty about supporting something with which you disagree. You and I may not agree on every fine point of doctrine, and we may not share a common worship style preference, but I bet we’re closer to agreeing with each other on the fundamentals of the faith than you would be with an atheist.

I originally wrote my Bible study software as a tool for myself to use. Its features were designed to meet my needs, which I obviously knew well. I didn’t have to do any research to figure out what people who read the Bible wanted; I wrote what I wanted.

I took my Bible program (QuickVerse) to Parsons Technology in 1988, where, over the next ten years, I employed a couple dozen different programmers. Not all of them were practicing Christians, but they were good programmers. Jeff Wheeler (who would later leave Parsons with me to start Laridian) and I led the development of the program. Both of us were Bible-believing Christians who were not just developers, but users of the program.

Having real Christians write your Bible study app guarantees that it is designed to meet the needs of someone who really studies the Bible.

Parsons Technology was not a “Christian company”. It was a plain-old software company that happened to have a Church Software Division that published church management and Bible study software. Parsons was eventually purchased by Intuit (1994), which sold us to Broderbund (1997), which was purchased by The Learning Company (1998), which was purchased by Mattel (1999), which sold the Church Software Division to a dormant company that was rumored to have previously been a booking agency for Las Vegas acts (2000). During those years we were faced with a number of demands from our pagan overlords that compromised the quality of QuickVerse. They saw “unserved niches” on store shelves and wanted us to create products that were just old versions of QuickVerse with a new cover. They weren’t interested in meeting needs, but in making money.

This was the final straw for me. When it got to where creating Bible software was about duping people into buying old versions of our program at a cheap price because BestBuy or Costco was looking for 25-cent CD-ROMs to fill an end-cap, I bailed out and started Laridian in 1998.

Our goal has always been to focus on our customers and our product, not on creating a company to sell to the highest bidder. The features and reference materials you see in PocketBible come from customer feedback (and from our own needs as our product’s first customers). We bristle at doing things like renaming our product “@Bible” so that it pops up first in alphabetic search results on the App Store, or calling our program “Bible App” to cause it to come up first when you do a generic search for a Bible app, or seeding the store with identical products, all with different names, so it appears more often in your search results. This is what marketeers do to trick people into buying shoddy products. We aim for letting the quality and usability of our apps speak for themselves.

So another benefit of having real Christians write your Bible study app is that they’re not just seeing you as a rube who will spend their hard-earned money on a quickly thrown-together, shallow product, but rather they are committed to creating not just one download but an ecosystem of products that will meet your Bible study needs not only today, but for years to come.

I don’t have a doctrinal test for people with whom I do business, but I expect my Bible study materials to come from people who are as firmly committed to the Bible as I am. It’s not that they’re the only ones who I can trust to create useful products, but it is at least more likely that they’re doing a better job.

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.

PocketBible for Mac OS: Design Principles

PocketBible for Mac OSWhile it may not be evident from the outside, there are certain philosophies, both of Bible study and software design, that strongly influence each of our Bible study apps regardless of platform. While we’re not at a point where we can give a concrete demonstration of PocketBible for Mac OS, we can talk about how those philosophies will influence our work.

In no particular order:

You should spend most of your time in PocketBible wrestling with the Bible text, not with your Bible software. This means that frequently accessed functionality should be immediately available, and that you shouldn’t have to deal with overlapping windows that obscure the text you’re trying to read. You shouldn’t be thinking about how to arrange things on the screen or how to access basic functions like navigating to a verse or creating a note, but instead be thinking about what you’re reading and how it applies to your life.

While we should consider specific use cases and how they are served by our design, we shouldn’t design around the use cases. We think a lot about all the things you might want to do with your Bible software, like search for a word, compare Bible translations, and view a commentary on a passage. This list of ways that you use our software defines a set of “use cases” (or “user stories”).

Informally, a “use case” or “user story” is a combination of a specific goal (“User must be able to search the text for a given word or phrase”) and a description of the steps or interactions with the program necessary to meet that goal. Programmers use these use cases as part of validating that their solution meets the user’s requirements.

Some Bible software companies make the mistake of creating new user interface elements for every use case. In these programs, when you’re in “search mode” the program looks and behaves differently than it does while just browsing through the text. When you want to compare two translations of the Bible, the second one pops up in a window that may obscure a portion of what you’re reading, and which doesn’t have all the functionality you have in your “main” Bible. And the only way to view a commentary might be to split your Bible window to show a commentary beneath it, with no consideration given to how you might open a second commentary or that you might not want to lose space for Bible text when viewing a commentary. And while you might consider “commentaries” and “dictionaries” to be just “reference books” and expect them to work similarly, the program might display dictionaries in the form of pop-up windows when activated for a particular word, covering other text and behaving differently than commentaries, devotionals and other reference books.

We will try to create a flexible user interface where, for example, search results, bookmark lists, lists of notes, and other “lists of verses” share a common user interface component or pattern, and where opening a Bible to compare to the current one is no different than opening a dictionary, commentary, devotional, or any other book. There’s less to learn and there are fewer surprises.

PocketBible for Mac OS should not necessarily look like PocketBible for Windows, PocketBible for Android, or even PocketBible for iOS. While it should share a lot of design, algorithms, and even code with those platforms, it should look and feel like a Mac app, not a Windows app ported to the Mac or even an iOS app ported to the Mac. We like to take the best features of all our previous apps and combine them with fixes to the mistakes we made in previous apps and wrap them in a user interface that is consistent with the other apps on the target platform.

Mac users should not feel like they are being accommodated, but rather that Laridian considers Mac to be a primary platform for its products, and PocketBible for Mac a flagship product. We confess that we treat certain platforms as second-class citizens. For example, both our BlackBerry and webOS apps were “Bible only” apps, and neither shared the LBK file format used by our other apps. BlackBerry was primarily an enterprise (business) platform, and the future of webOS was always doubtful. This made it difficult to commit the time and money to those platforms that would’ve been necessary to really do them right. Mac OS is different. It is our intention to make it difficult to tell if we’re “Mac people” or “Windows people” because of our level of commitment to both platforms.

PocketBible for Mac OS will focus on the needs of the 99% of Christians who are neither “clergy” nor “Bible scholars”. Most of our customers occupy the pews on Sunday morning and work in secular jobs during the week. While many are Sunday School teachers or Bible study leaders and a few are pastors, most are simply everyday Christians with a love of the Bible. Some have some experience with Greek or Hebrew, but most don’t do their daily devotional reading from the Greek New Testament. PocketBible for Mac OS may include resources like the Greek New Testament and meaty, scholarly commentaries, but its focus will be on concise, accessible works that help the average Christian understand and apply the teachings of the Bible in their daily walk. It’s not that we have a disdain for the original languages, but rather that, as Bible software users and everyday Christians ourselves, we understand there are people out there who understand those languages significantly better than we do, and it’s better, faster, and easier for us to read what they’ve written in English about the Bible than to depend on our own spotty and questionable original language knowledge.

Of course, the 1% of you who dream in Greek will want a different Bible study app. PocketBible may not be for you. We understand that; you’re not our target user.

Given a choice, we will take functionality over complexity; usability over displays of our technical prowess, and simplicity over beauty. We’re not trying to solve every problem in the field of computerized Bible study, but instead we’re trying to provide a tool that can help you solve the most common problems you encounter in your everyday study of the BIble. We’re not trying to flex our programming muscles to win your admiration, but instead give you something you can be expected to use and understand with minimal learning time. We feel that beauty is often only skin-deep; that simplicity and elegance are beautiful in their own way. You may find another girl who looks prettier, but PocketBible is the girl you want to take home to meet your parents and be with forever.

We hope this helps you understand more about how we think about Bible software, how we try to focus on the way you study the Bible, and that you can see how that is implemented in PocketBible for Mac OS X.