PocketBible for Windows Progress Update #11

Surprisingly, we weren’t sure what our Windows app would look like in Windows.

Running the Windows App on a Windows PC

We spent some time this month bringing the program up on a Windows machine to see how it’s working. This may seem odd, since it is a Windows app, after all. But the fact is that we’ve been doing all our development and testing on our Macs. We can do this because even though the app is being developed for a single platform (Windows) it’s being done with tools that support Windows, macOS, and Linux. That works great for us since we’re 100% Mac-based here.

One of the things we wanted to verify was that the application menu was functioning correctly on Windows. As you may know, app menus on macOS are “disconnected” from the application’s window. And every application has a special menu identified by the name of the app. So PocketBible for macOS has a “PocketBible” menu that is where you’ll find “About PocketBible”, “PocketBible Preferences”, “Check for Updates” and other application-level commands. Windows is different. There is no standard place for some of these items. So we spent some time organizing the way the menu appears on Windows.

Windows also handles “keyboard shortcuts” differently. These are the key combinations that are assigned to certain operations of the app, like Ctrl+C to copy and F10 to activate the menu. On the Mac, you define these by associating them with menu items. The operating system allows you to redefine which shortcut keys go with which operations in any of your apps. Not so in Windows. So we spent some time verifying that we could handle keyboard shortcuts correctly and coming up with simple ways to route these commands through the app.

Back-End Server Updates

When we release PocketBible for a new operating system (what we generally refer to as a new “platform”), we have to populate a database on our server with all the books and Bibles that will be available for it. It’s a bit of a milestone to have created those new database records, which has happened since we last met. Prior to this, the new Windows app had been pretending to be the macOS app every time it talked to the server to either shop in the in-app store or view a list of all the books owned by the currently logged-in user. With this database update, the new app can drop the charade and just be itself.

Added the new Windows platform to the back-end database.

Highlights

Basic highlight functionality was already working. We took some time to take a close look at the highlights study panel pane to make sure everything was there that we needed. We added functionality to remove all the highlights of a selected color, and to change highlights in one color to another color. While removing highlights of a selected color, we also added a way to remove all your highlights from the entire Bible. I don’t think we’ve implemented these features on other platforms.

In the right-click or context menu, we added a “most-recently used colors” list to the top of the menu to make it easy to get to the colors you use most often. This is something we implemented first in PocketBible for iOS. Again in keeping with the iOS version of PocketBible, we moved the highlight eraser to the top of the list of colors to make it easier to find and get to.

If you own the Advanced Feature Set, you’ll be able to rename your colors. Even though we’re delaying AFS features to the end of the project, we went ahead and implemented that one while we were working on highlights.

Bookmarks

We also reviewed the status of bookmarks. We implemented “create a bookmark category” from the bookmarks pane in the study panel and will have it implemented from the context menu by the time you read this.

We added a feature to move bookmarks from one category to another. I don’t believe this feature exists in any other version of PocketBible. We also added a feature to remove all your bookmarks. This is something we have had to do for people on the server before; it will be much easier if you can do it yourself.

Menus and Toolbar

While we were looking at menus, we also looked at the toolbar, since toolbar buttons and menu items are handled similarly in the app. We compared the new Windows app to the current macOS app to make sure we had thought of everything and added some menu items and toolbar buttons we hadn’t yet implemented.

Among these were the following. Unless otherwise noted, we added a keyboard shortcut, a toolbar button, and implemented the functionality:

  • About This Book – Shows information about the active book.
  • Toggle Word Attributes (Strong’s Numbers) – Implemented and also added a “toast” — a brief message that is shown to indicate the state of this option (on or off).
  • Sync Bibles/Commentaries to Active Bible – When the global setting is turned off, this menu item/toolbar button will allow you to tell your Bibles and commentaries to sync up to the current verse in the active Bible.
  • Sync Now – Sync your data with the server manually whether automatic sync is on or off at the time. Also added a progress bar on the Account Preferences screen and an indicator on the toolbar to show this activity is happening.
  • About PocketBible — Version, build date, copyright and other info about the app.
  • Help — Show the User’s Guide (either open it or make it active if it’s already open).
  • Help on the Web — Related to opening the User’s Guide, this option takes you to the FAQ on our website.
  • Start Each Verse on New Line
  • Hide Verse Numbers
  • Toggle Sync Bibles/Commentaries
  • Footnote Style — control whether you want to display just asterisks in the place of footnotes, show the entire note, or hide footnotes entirely.
  • Toggle Words of Christ in Color
  • Copy Passage — Added a toolbar button. This was already implemented and connected to the menu and context (right-click) menu.
  • Mark Current Reading as Complete
  • Go To Today’s Reading — This was already implemented as a button on the Go To… pane. In addition to adding the toolbar button and menu item, we implemented the feature that allows you to go to today’s reading in all your open devotionals when you go to today’s reading in the active devotional.

On the subject of the toolbar, we made some adjustments so that right-click on the toolbar allows you to customize it, and turned the Preferences (or Settings) button into a “Close Preferences” button when you are in the Preferences screens.

On the subject of menus, we created a way for menus to be adjusted when your Advanced Feature Set subscription is enabled or disabled. The AFS features themselves haven’t been implemented yet but we need to support the mechanisms you use to activate those features.

Other Miscellaneous Features

  • Implemented a way to choose “preferred books” so that when you select a Bible link with no Bibles visible, we know which Bible to try to use. Similar behavior happens with commentaries and dictionaries.
  • The “expand pane to fullscreen” feature was temporarily removed. I think it’s going to end up being an AFS feature and will be implemented similar to how we do it on the Mac. The way we were planning to do it for Windows just won’t work.
  • Made links to Web pages and email addresses open the appropriate external app.
  • When opening a book in a pane where that book is already open, we just activate the existing tab instead of creating a second one. Similarly, if you drag a tab from one pane to another, if the book is already open in the target pane we remove it and replace it with the dragged tab.

28 Replies to “PocketBible for Windows Progress Update #11”

  1. Just a normal “We did seventeen thousand things, and made it look easy” update.

    Again, thanks for everything you all are doing. And I’m glad some of the updates (remove all bookmarks) helps lighten your load. That’s stuff we never see, and so don’t know you’re carrying that load.

  2. Looks pretty good. Will there be any tweaks to adjusting the Devotional Reading plan dates? I try to do that now w/ PocketBible, but can never seem to get things right. Sometimes I just want to “catch up” by marking everything read to a certain point and then start at that point. Sometimes I want to reset. Sometimes I just want to adjust the current date. But no matter what, I always seem to do the wrong thing and messing up my reading plan. 🙂

    1. If you’re trying to use PocketBible for Windows Store, I agree it is difficult to manage devotional reading plans. The new Windows version borrows from macOS and iOS. Here’s how you manually change the start date:

      Select New Start Date

      This dialog lets you just pick a different start date and optionally reset your progress.

      If you just miss a day and want to catch up, you can do that here:

      Selecting “Today” or “Tomorrow” automatically changes the start date so that the next unread reading will fall either today or tomorrow. Alternately, you can catch up by just marking all the missed readings as “read” through yesterday (making the next reading today) or today (so the next reading is tomorrow).

      It’s pretty simple and just works. 🙂

      1. Thanks, Craig. That helps somewhat, but still hard to adjust something for those longer reading plans. Have to guess a bit at the dates or do date math (which is just hard by default 🙂 ). I was trying to do a catch up on one of the Horner plans at one point and was having a _bear_ of a time setting it to line up with what I’d been tracking and also mark all of the prior days as “read”. I think I just gave up and did the reading. That was on an Android, IIRC. Screen real estate is harder to manage there anyway.

        I need to see if there’s a button in Android for “next reading in the day’s devotion” or not – allow for not seeing the checklist and maximizing the Bible pane for reading. Not related to the Windows update, which I’ll normally use on my Surface. 🙂

  3. I’m hoping for the ability to sync commentaries without syncing Bibles. My main use would be to keep commentaries synced with the active Bible pane, but have other Bible panes keep their current location. For example, having the primary pane open to John 13, where Jesus predicts Peter’s denial, with commentaries syncing, while also having a parallel passage, say Luke 22, open, without syncing. Then if I make the Luke window active, the commentaries sync to that without affecting the John 13 pane. Is that a possibility?

    1. I’ll make a note of that. The main challenge with providing detailed control of the pane-sync behavior is coming up with simple, non-confusing user interface. I’ve been thinking about a feature where a pane could opt out of syncing. That’s not very hard, depending on your willingness to have it opt out of all syncing, including dictionary and devotional sync’ing. We’ve had requests to be able to tie panes together in “sync groups” but the user interface for that is guaranteed to be complicated. Your idea is not entirely impossible, though. We would just make it so that Bibles would not sync to other Bibles. I’ll make a note of that and we’ll see.

      1. Bring on the complicated! There’s been a trend toward simplifying app interfaces ever since the tablets came along, for good reason: finger size pointer. I know there’s a balance to be struck, but I say give us all those features and hide them within menus and context sensitive drop downs. I think Windows users can handle some complication… unlike mac users who need the simplicity. 🙂 Keep up the good work.

        1. Mark,

          I can tell you’re not in Tech Support. Most people can’t figure out the simplest parts of our apps now. And the kind of purely arbitrary synchronization that we could set up (ie. allow you to drag connections between windows and tabs to sync anything to anything else) is of use to maybe 3 people — 2 of which don’t realize that the thing they want to do was already possible with the simpler synchronization scheme.

          I believe there are several reasons that apps have gotten simpler over the last 25 years. First is that mobile devices aren’t just smaller and touchier, but they had slow processors and very little memory. Back in the days of Palm OS, we’d go to developers conventions and go to sessions where Palm’s head of developer relations would come out in some kind of monk’s get-up and sit cross-legged on a pillow and talk about the “Zen of Palm OS” and what makes for great apps. “Great apps do one thing and only one thing”. Turns out it was because if you tried to do 2 things, your app wouldn’t fit on the device. But the idea of being simple and just doing one thing well kind of stuck. Now all your apps are very simplistic.

          Another reason apps got simpler is that delivery cycles got shorter and programmers got dumber. It’s rare to find a Comp Sci degree among job applicants these days. They all teach themselves to code by watching YouTube videos. And the Internet made is so that you can update the app every 30 minutes if you want. There’s not time for complicated features when you have constant updates to get out.

          Anyway we’re always walking that line and trying to consider the impact on Tech Support, development time, and program usability.

      2. As I think about it, the ability to exempt Bibles from syncing with each other would accomplish what I’m wanting – it wouldn’t have to affect commentaries, etc.. But preferably as an option, so if I wanted to see passages in several different translations, I could choose to have them sync.

        I appreciate Laridian’s hard work on this new version. Reading your updates helps me understand the depth of creating something new. And you have done it many times! I go back to the pre-Palm days, and I’m deeply appreciate your work in keeping us updated. Actually, I just came across a little round Quickverse “Celebrating 15 Years” mouse pad in a desk drawer. A collector’s item! Maybe I’ll put it on Ebay. 🙂

        Thanks

        1. The 15-year anniversary of QuickVerse was after I left, so your mouse pad may not be worth much. 🙂

          This project has been more challenging than we anticipated. We did not fully comprehend the scope of re-writing all of the code in a new language with which we were unfamiliar, integrating with a framework we had never used before, and doing it all with a tool stack that was completely new to us. 🙂

    2. I occasionally turn syncing off if I’m following a commentary and clicking the links in it. I can see Dave Z’s point.

      1. I also turn syncing off. I would like to be able to switch syncing off on one pane only but have everything else syncing.
        Thanks for the update.

  4. Thanks for the update! I’d enjoy working with you on this project but, alas, it would be difficult to work in an “all Apple” environment. I’d feel alone! (jk)

    Yeah on the “sync groups” — that wouldn’t be complicated for Windows users. (just a small dig on Apple users, ah, I’ll relent.) But srsly, a top-level general option to allow sync groups or not (default: No sync groups), and then a sync groups tab under options (however you decided to implement options) that allows one to /name/ a sync group, and /assign/ books to a sync group.

    I’d go a step further and allow a panel/book into “Sync group A” and another panel/SAME BOOK into “Sync group B”, thus my NKJV in group A will sync together with everything else in ‘A’ and my NKJV (different panel) will sybc together with everything else in ‘B’.

    Too much? I’ve always felt if it can be done then it should be done. I want options.

    But ignore me. I’m just really happy you are doing this as much as I like the current PocketBible version for Windows. There are several things I see which could be improved.

    Please just fix how PocketBible forgets all my window settings and I have to start over creating panels and sizing them correctly.

    Thanks so much for all your work!!

    Ed

  5. More great progress…thanks

    When ready to roll out, will the upgrade be automatic or will we have the option to delay upgrading and stay on the current Win. Version?

    Are there features that will be Win11 but not Win10?

    1. Tim,

      When the new version becomes available, we will remove the Windows Store version from the Windows Store immediately, and drop tech support for it immediately. You won’t have to upgrade, but you won’t be able to install it on a new machine or get any support for it.

      We’ll remove the ability to download the Windows Desktop version from our website. We may answer questions from Windows 7 and 8 users — if they ask nicely. 🙂 But in general it will not be supported. After some period of time, we’ll turn off synchronization of user data from that version, since we’re currently keeping alive a very old server process just to do that.

      New Bibles and reference books will not be compatible with the older Windows versions.

      We don’t have a way to force you to upgrade to the new version, so you’ll be able to use the older versions for as long as you can keep them running on your own.

      I don’t believe there will be Windows 11-only features.

      Craig

  6. Not a Windows version specific question, but:
    I use the reading plans (which I like a lot), but I seldom read a single day’s set of passages per day. Sometimes, I read less, sometimes more. I’d like an easy way to track my progress via passage, rather then day. For example, in Horner’s there are 10 passages for “today” (Aug 9, 2022). I’ve read those, and a few of the passages for tomorrow. I’ve marked today as “read”, but I’d also like to mark the first few passages in tomorrow’s section as “read” also. This would make keeping track MUCH easier (I control the dates using the “Catch Up / Mark First Unread Tomorrow” function).
    Thanks for considering this for the future! AFTER the new Windows version is released! 🙂

  7. I notice in you highlight color window, above, the font used in the names of the colors is universally black. There is a color of deep red used as a highlight color that basically masks the text it highlights. The solution is when highlighting with this deep red color to switch the text color to white. This is what you do on the iPhone version. Just want to make sure that’s what you intend for this version.
    Also, currently when The New Testament for Everyone is open in a sync’ed pane, there are several verse locations that cause the app to crash, unlike on the iPhone (Allen has confirmed this). Perhaps the NTFE would be, therefore, good test data.

    1. Doug,

      I love questions about color because it gives me a chance to talk about stuff that nobody ever notices but we spend a TON of time on.

      First, it is not the case that we always use black text on our highlight colors. It’s just that most of our highlight colors work best with black text. Here’s the full list:

      All highlight colors

      What we’re actually doing here is figuring out at run time which text color (white or black) has the best contrast ratio against each of the highlight colors. It turns out that the only one that looks better with white text is the one you cited, which is red. Here are the actual numbers from contrast-ratio.com for the red we use:

      text on red

      I think 4.5 is the minimum acceptable, but in this case we’re just looking for the better of white or black. White gives us 4.98; black 4.2. So we go with white.

      The one that always fools me is cornflower blue. I think that one should have white text. But here are the results:

      Text on cornflower blue

      One of the small interesting notes is that it doesn’t matter if you have selected a dark or light color scheme. That is, we don’t care what color the unhighlighted text is; we just want the highlighted text to have adequate contrast.

      The other thing you might not think about is that there’s also the link color, words-of-Christ color, and search-hit color, which all have to contrast with every highlight color. For those, we take the color that is given for, say, links in the selected color scheme, then we run it through an algorithm that decides if it should be lighter or darker, then we lighten or darken the color just enough to get an acceptable contrast ratio.

      We do the calculations at run time so that if we tweak the highlight colors in PocketBible, it will automatically figure out what text color to use. And obviously we need to do the link, words-of-Christ, and search-hit tests at runtime because you can change those with a custom color scheme.

      This also goes into designing the color schemes in the app. When you select a color for something like the study panel (the pane on the left in our screen shots), we automatically generate 3 different shades or tints to use in different contexts. We need to make sure the text color and icon color we choose will work on all those backgrounds. It’s incredibly complicated and we have some tools we use to automate the analysis as much as possible.

      This is also one of the reasons I’ve been hesitant over the years to let users choose custom color schemes. If you’re not thinking straight, you can create something that puts white text on a white background in some number of circumstances. The way we’ve alleviated that fear in the new Windows version is by trying to reduce (or at least control) the number of those situations that can arise by thinking about where and how we use color.

      Yeah, and this is just one of the seemingly insignificant things we worry about all the time. 🙂

      The problem with New Testament For Everyone is actually a problem with all books in the current Windows Store version. Images larger than a certain size will crash the app. One of many reasons we’re tossing it when this new version is done. The new version won’t suffer from that problem for a couple of reasons that I won’t go into unless you want me to. 🙂

  8. I would like a way of moving books up or down the list of open books. Can you do this in the new Windows version (and other platforms too)? That way I can put the open books in order by my preference. When I currently have the list built up in the order I like it, sometimes I delete one of the books by mistake. When I reopen that book, it goes to the bottom of the list and I have to scroll down to find it, rather than it being at or near the top of the list. It would be a great help to be able to move books up or down in the open books list. Thank you in advance for considering adding this feature.

    1. Lewis,

      This can be done in the iOS version. The macOS version has the same interface you’ve seen in the previews for the new Windows version where your list of open books is represented as tabs at the bottom of the pane. Tabs can be dragged into whatever order you’d like, including dragging them to a different pane.

  9. Craig, actually the fact that you developed a Windows application without touching a Windows PC is fantastic (of course, testing a Windows application in Windows is also important). That means you have chosen a cross platform development environment which can lead to a very productive future for the many platforms you support. Some of the best applications out there are doing this, with tremendous benefits (and headaches in the transition from the old siloed development environments). Keep up the excellent work. I’m eager to give it a test drive! Best to you and your team for so much faithfulness in the Kingdom of God for decades!

    1. Mark,

      Thanks. The cross-platform thing was serendipitous. We think Electron combined with Vue makes for a nice Windows development experience — better than C# and whatever Microsoft’s user interface API du jour is. We can do all the work on our Macs, which is also a huge plus — not just because that’s what we use but because it’s so much better. The fact that we could also release this app for Mac or Linux is something interesting to think about later, but didn’t enter into the decision at all. In fact, we’d prefer to stay native on the Mac. We’ll see.

    1. I meant to get an update out a month ago but lost a week to COVID and then got bogged down with a complex problem. We’re still working at it. Update soon.

  10. Good morning Craig,

    I just checked the Windows update status. Believe it or not, I use both the Windows and the iOS (iPad) versions of PocketBible, often simultaneously. So I really look forward to updating the Windows version to something closer to the iOS version.

    So, my question, what is the eta for the launch of the new PB for Windows?

    Thanks,
    Rick

Leave a Reply

Your email address will not be published. Required fields are marked *