With quite a little of work I managed to make a web version of the
bibref
Bible study tool. My deepest respect to the Qt team for making this option as smooth as possible.
Definitely, with just a couple of minor changes in the codebase (
mostly, in the
cmake configuration file), this was more like a great adventure than a nightmare (which is quite usual
in computer science). Actually, I had to make some tiny modifications on the way I create a new window
in Qt, namely, to use
QWidget::showNormal() instead of
QWidget::show(),
otherwise the newly created window overlaps the previously defined window without any option to access the old window
again. But this was easy to figure out and resolve.
The result also proves that with an affordable amount of work it is possible to turn a desktop Bible application
into an offline web application as well. Actually, the program runs quite nicely also on a mobile phone,
unless the fonts are too big and the main menu cannot be displayed fully. But this can be fine-tuned in the program
in the Edit > Preferences menu.
Technically, the program consists of 5 files: an HTML skeleton (3 kB),
the application logo (about 90 kB), the Qt WASM loader (12 kB), the Qt application as a WebAssembly program
(35 MB) and the available Bibles (as
SWORD modules,
here KJV, LXX, StatResGNT and SBLGNT) with their pre-cached index databases, plus the 240+ statements (24 MB),
in total, about 60 MB.
According to a
recent study,
U.S. Internet users had an average download speed of 200+ Mbps in 2024, so startup of such software
can be expected in less than 3 seconds on a usual machine. Although this (and the general speed of the application)
is far behind the speed of a native application, for everyday use, this can be more than acceptable for many users
since the web browser is nowadays “always at hand”.
The web application includes almost all features of the native desktop application. It has the same menu structure,
the different windows of the program are shown similarly, and their intercommunication is supported in the same way.
The two extra fonts being used (a variant of
Greek Koine,
designed by Alan Bunning, for
greekcntr.org,
and a typewriter font called
Inconsolata, designed by
Raph Levien) in the desktop application are available in the web version as well, by exploiting Qt's resource
bundling mechanism via
.qrc files. This also allowed to
include the application logo in the web version, however, the rest of the icons and some built-in translations
of the Qt system were left out (since they are not included automatically – this should be fixed someday).
On the other hand, built-in visualization of the
BRST diagrams
had to be skipped for this first version,
since an out-of-the-box compilation of
GraphViz
for the web was not successful. This remains for future work. Instead,
the users can still export the diagram as a GraphViz file and display it directly in another web application
on a different tab in the web browser.