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.

14 Replies to “PocketBible for Windows Progress Update #10”

  1. Nice solution – “it just works”. Thank you for protecting us from UI overload.

    And the application is looking polished. Not that there won’t be bugs – this *is* software – but it appeared smooth.

    Finally, thanks for doing the design right, separating data from presentation. That will continue to pay off.

  2. Very nice work, Craig and team. Things are progressing well. And, yes… I’m one of those who are need the bigger text size from time to time. Good seeing the software in action, as well.

  3. I agree entirely with the comments by Steve Aubrey and Mark VanOuse. You’ve taken on a mammoth task and the whole team is to be commended for their commitment and enthusiasm. I think the decision you made to complete purchase transactions via your website rather than from within the app is absolutely right and very wise.

  4. I appreciate these updates. It looks to be coming along nicely. Can’t wait until we can start playing with the new Windows version!

  5. Thanks flor the update and the promise of a new Windows version. Hope Windows 12, whenever, doesn’t clobber all your good work. Looking forward to the Beta version.

  6. Very nice progression and excellent attention to user-experience and detail attention! I need to up my funding contribution now!

    One point of clarification: (I think I know the answer already) You mentioned the data layer is housed on your server and retrieved by API. Is that for ‘store’ interaction only? Will content and settings still be stored locally where the app is installed? I’m guessing settings, bookmarks, notes and such will still be cloud synchronized.

    73s

    Tim

    1. Good questions, Tim. The server data I was talking about is just for the store. Books, settings, and notes/highlights/bookmarks will be stored locally. Notes/highlights/bookmarks will be synced to the cloud assuming you enable that option.

      The interesting thing about the store is that the new website will work that same way. Our original site design back in the day required us to manually create catalog pages for every new book. We had a template and I was able to teach marketing people enough HTML to do little customizations, but there was literally a hand-written page for every book. The next (current) generation of the website uses catalog page templates that are filled with data that is in a database. There’s still a page for every book, but it is generated by a batch process that merges database data into the templates to create individual pages. The future version of the website has literally one page that takes a product ID parameter. It requests data from the server in JSON format and creates the page right in your browser. So we’ve gone from handwriting each page, to batch-creating all pages, to dynamically creating all pages as needed.

      We kind of accidentally created other features at the same time. And we accidentally did it in reverse, too. We needed to be able to display your Cloud Library in the app, so we wrote an API call to return the books you own. Then for fun we added a Cloud Library listing to your account page on the (current) website, even though it doesn’t do anything — just shows the list of books you own. I think it’s cool but I’m probably the only one who does. 🙂

  7. Hi Craig,
    Love the progress on the Windows version.
    Will you have an icon on the top panel, to switch the Strongs Numbers on/off easily without going into settings? This is such a great feature that I use very regularly.

    1. That’s on my to-do list for the short term. There are a few new buttons that I need to add to the toolbar and that’s one of them (“toggle word attributes”).

  8. Really appreciate these updates, Craig. Thanks. The video was a great way to show us new features, and its especially nice to see you narrating it. You know you’ve set a precedent now, don’t you?

    1. Contrary to what I said in the video, it’s quicker to type up a blog article than to do the videos. I actually did a longer one first, then decided to limit my topics to just what you see in the current one. The other thing I’d like to do sometime is some kind of livestream. But again, those consume a bunch of time. We’ll see. 🙂

  9. So glad to find info on this! I got the email in 2020 and was very interested but then forgot and later couldn’t find the email. I just found it and am excited to see the project met its funding goal and there have been many progress updates, as recent as a month ago!

    I can’t wait to get a new PocketBible for Windows Version 3!!!

    1. I send an email to our supporters with each update. I’m due for one, probably this weekend maybe. Let me know if you’d like to be added to the email list for notifications. I’ve got your email address.

Leave a Reply

Your email address will not be published.