Gospel Library, Linux Application

28 postsstarted by lumbeezl 12,159 viewsoriginal topic

New Member
#1
The Gospel Library app for Windows is amazing and I'd like a comparable version for Linux. The Windows Desktop version is built specifically for Windows, given the fact that it's using .NET for everything.

I don't have tons of time, but I'd love to start a project in developing for Linux/MacOS. There are a number of frameworks that could be used, although Qt or gtk-rs are at front of mind. I'm not sure where to begin with this but any input would be helpful.
Community Moderators
#2
I'd recommend creating a simple scripture viewing app as a starting place. This will 1) help you decide how much time you're willing to invest, 2) provide a prototype that can be used to attract interest of other potential contributors, and 3) provide a sample app that you can share details and screenshots for if you get to the point where you're ready to request permission from the Church to access more Gospel Library content that isn't public domain (Permissions.ChurchofJesusChrist.org).

Most (but not all) of the raw text of the scriptures is in public domain. Here are a couple of potential sources for scripture content, with the copyrighted sections removed (these GitHub repositories are not sponsored or endorsed by the Church):
https://github.com/bcbooks/scriptures-json
https://github.com/samuelbradshaw/python-scripture-scraper

To use the full Gospel Library catalog, it's likely that the Church legal office would require the project to be sponsored by the Church, because some content is licensed to the Church – not owned by the Church (for example, some of the artwork in Come, Follow Me, or some of the hymns). However, it's rare for the Church to sponsor new volunteer projects that aren't already well-established. At a minimum, you'd need a Church employee who would be willing to jump through hoops to oversee and advocate for it (whether as part of his regular job, or in his free time). You might have more success if you narrow the scope to a limited set of content that is either fully public domain or owned by the Church, like scriptures and general conference, and make that as good an experience as possible. Then, down the road, after the project has demonstrated itself as viable and valuable, you can seek further Church support.
Samuel Bradshaw • If you desire to serve God, you are called to the work.
Community Administrator
#3
I suspect the biggest issue you'll have is attracting developers who are willing to put in the time necessary. Typically, there's a bunch of people willing to be beta testers, but few if any coders.
Have you searched the Help Center? Try doing a Google search and adding "site:churchofjesuschrist.org/help" to the search criteria.

So we can better help you, please edit your Profile to include your general location.
Member
#4
lumbeezl wrote: Sun Dec 18, 2022 7:42 pm The Gospel Library app for Windows is amazing and I'd like a comparable version for Linux. The Windows Desktop version is built specifically for Windows, given the fact that it's using .NET for everything.

I don't have tons of time, but I'd love to start a project in developing for Linux/MacOS. There are a number of frameworks that could be used, although Qt or gtk-rs are at front of mind. I'm not sure where to begin with this but any input would be helpful.
If it's all .NET, have you given it a shot running it in mono yet?
New Member
#5
caillines wrote: Mon Dec 19, 2022 8:20 pm
lumbeezl wrote: Sun Dec 18, 2022 7:42 pm The Gospel Library app for Windows is amazing and I'd like a comparable version for Linux. The Windows Desktop version is built specifically for Windows, given the fact that it's using .NET for everything.

I don't have tons of time, but I'd love to start a project in developing for Linux/MacOS. There are a number of frameworks that could be used, although Qt or gtk-rs are at front of mind. I'm not sure where to begin with this but any input would be helpful.
If it's all .NET, have you given it a shot running it in mono yet?
I haven't. Some dependencies would cause some issues so I haven't even attempted.
New Member
#6
lumbeezl Contact me I would be interested in working on this project for sure. I daily drive linux and it would be helpful for sure.
New Member
#7
Edited 1 time, last by russellhltn on . Reason: Removed personal information - this is a public forum
Lumbeezl It appears I still cannot private message which means I cant reply in private messages, my email is [removed] If you could email me there I can respond, I think I found a way to request access.
Community Administrator
#8
adavis13 wrote: Wed Apr 05, 2023 1:03 pm Lumbeezl It appears I still cannot private message which means I cant reply in private messages, my email is [removed] If you could email me there I can respond, I think I found a way to request access.
You should be able to PM now.

I removed your email because all posts in this forum are visible publicly without a login. You probably don't want the spam a public posting would bring.
Have you searched the Help Center? Try doing a Google search and adding "site:churchofjesuschrist.org/help" to the search criteria.

So we can better help you, please edit your Profile to include your general location.
New Member
#9
Thanks Russel I appreciate it. However I cannot PM still. Do you think it may just take some time to unlock or that it isnt unlocked fully?
Community Administrator
#10
adavis13 wrote: Wed Apr 05, 2023 10:23 pm Thanks Russel I appreciate it. However I cannot PM still.
Strange, I thought you met the threshold for that.

I manually removed your "suspicious new user" status.
Have you searched the Help Center? Try doing a Google search and adding "site:churchofjesuschrist.org/help" to the search criteria.

So we can better help you, please edit your Profile to include your general location.
New Member
#11
Alright, I have begun looking at C++ GUI frameworks that could be used potentially, I would be curious what the windows team is using if its not C#. There is ultralight which uses html and CSS or the is dear imgui which uses more low level C++ things Both can cross compile to systems other than linux if any others come up. Any input on which would be easiest for porting the Windows app would be helpful.
New Member
#12
Qt would be the best framework for C++, no question. Of all the native applications frameworks I've used, Qt takes the pie. LGPL allows dynamic linking so licensing is no issue at all.

As far as a prototype is concerned, please check your private messages for my email. Best if we begin communication that way. I'd love to begin work on this. Just let me know.

Thanks
New Member
#13
I'd like to ping this again to get some more traction.

I think building an application that can run on Mac and Linux would be useful for lots of members. I'd love to take time to develop this.
New Member
#14
I have not tried this, but I believe the ios gospel library app will work will all m series macbooks.

As far as GUI frameworks, what about using flutter?
New Member
#15
devansisson wrote: Sat May 18, 2024 11:02 pm I have not tried this, but I believe the ios gospel library app will work will all m series macbooks.

As far as GUI frameworks, what about using flutter?
Flutter is a decent choice. I'd personally prefer native functionality and best performance across platforms, hence my recommendation for Qt. But all of this is moot if we can't get access/permission from the Church to access the content in the application.

I think any work performed on this before that is given would be wasted.
New Member
#16
I’m thinking an MVP would be worth pursuing. An idea is good but the church wouldn’t sponsor API use without some sort of vision for the development of the tool. I now have more time than id like so ill add it to my list.
New Member
#17
I'm open to work on it. I have a few hours each week I could dedicate.

I could start a private repo on Bitbucket to get the project started. I think there are a few open source options that have formatted the scriptures, so I can begin there.

I'm thinking of using Qt/QML since they're mature, performant and already used for major projects.

I'll have the repo created by end of week and I'll send you a message with an invite.
New Member
#18
I've initialized the repo.

I'll try to build simple prototype with some scripture JSON files. If anyone is interested, please reach out for an invitation.
Member
#19
lumbeezl wrote: Wed Apr 19, 2023 8:05 am Qt would be the best framework for C++, no question. Of all the native applications frameworks I've used, Qt takes the pie. LGPL allows dynamic linking so licensing is no issue at all.

As far as a prototype is concerned, please check your private messages for my email. Best if we begin communication that way. I'd love to begin work on this. Just let me know.

Thanks
One of the major issues to be concerned about when programming a GUI is whether frequent updates to the library are going to frequently outmode your app on new versions of your Linux distribution.

I don't know about in C++, but in Python, I would recommend Tkinter (compare to TCL/TK) over Qt and Gtk for this reason (since Tkinter is more integrated with Python). I used to use WxPython (compare to WxWidgets) with Python, and Gtk with Vala (a programming language that compiles C#-like code to C), until I got tired of my code not working after a small number of years (and me not being invested enough in it to learn the changes required to update it, if updates were even possible without reworking the app). I think I've been using Tkinter for over a decade with few to no issues at all in a Linux desktop IDE app I use regularly (for programming, writing, reading, and such). Anyway, I might recommend looking into using TCL/TK in C++, if you're going the C++ route, and compare it to Qt as to how reliable it is long-term.

Someone who uses C++ more would probably be more familiar with how much of an issue which libraries would be in this regard. I'm not really sure how often this is an issue with Qt. If you've used it for at least five years and you update your Linux distribution regularly, you probably already have a decent idea. I haven't explored Qt much (not even on Python). However, I think you would find the TCL/TK license nice for the purpose at hand.

Also, I strongly encourage not putting the focus primarily on how nice the interface looks (other than readability). Put the focus on content, features, and usability, because that's what matters (that's why people use the app). Even a command-line Gospel Library app would be just fine as far as I'm concerned (actually, I'd probably use that more than a GUI-based version, to be frank). Probably the major issue there would be making a good file pager that does word wrap, and supplying the data in a way that wouldn't easily allow people to repurpose it for unauthorized stuff. The main advantage of GUIs (other than it being more mouse-friendly and widget-friendly) is that the fonts render better on them than on the command-line. Plus, you can use more keyboard shortcuts and stuff in a GUI. Command-line apps are definitely more cross-platform, though, and they don't tend to get outmoded except on rare occasions. They're also faster and take fewer resources.

Plus, on the command-line, you wouldn't have to load the whole app just to use part of it. You could just do a command to open the specific thing you want to read, or whatever, and get it right away. You wouldn't want to try to immitate the GUI-based Gospel Libraries there in the way they look and function (but in the content they provides you with, yes).
New Member
#20
Qt has been used in countless production applications for over two decades. LTS releases are planned and regular plus the documentation is absolutely phenomenal. It's LGPL licensed which won't be an issue with desktop use. Likely the largest project that uses Qt is KDE Plasma, so I'd be willing to bet quite a bit on its stability in the future.

As far as a CLI app would be concerned, that's not really what I'm hoping for. My motivation for the project is to get an official Gospel Library Linux/MacOS application and access to the Church's API, resources, etc. I imagine that it would need to be almost identical to the official application on Windows, so GUI would be required.

With that being said, for an initial prototype my focus won't be on visuals, but the functionality. But honestly only so much I can do with just the text of the scriptures. I think everything else is owned by the Church.
New Member
#21
Any progress on this?
New Member
#22
I've just initialized the repo and made some scaffolding code for the GUI.

If you'd like to get involved, DM me and I can provide some more info and a link to the repo.
New Member
#23
lumbeezl wrote: Sun Aug 25, 2024 6:45 pm Qt has been used in countless production applications for over two decades. LTS releases are planned and regular plus the documentation is absolutely phenomenal. It's LGPL licensed which won't be an issue with desktop use. Likely the largest project that uses Qt is KDE Plasma, so I'd be willing to bet quite a bit on its stability in the future.

As far as a CLI app would be concerned, that's not really what I'm hoping for. My motivation for the project is to get an official Gospel Library Linux/MacOS application and access to the Church's API, resources, etc. I imagine that it would need to be almost identical to the official application on Windows, so GUI would be required.

With that being said, for an initial prototype my focus won't be on visuals, but the functionality. But honestly only so much I can do with just the text of the scriptures. I think everything else is owned by the Church.
Agreed, though it would be fun to build a [bubbletea TUI][https://github.com/charmbracelet/bubbletea] I for us nerds.
New Member
#24
lumbeezl wrote: Sun Sep 01, 2024 5:04 pm I've just initialized the repo and made some scaffolding code for the GUI.

If you'd like to get involved, DM me and I can provide some more info and a link to the repo.
I'm unable to DM. My bitbucket is devan-sisson. Feel free to reach out on linkedin as well.
Community Moderators
#25
devansisson wrote: Mon Sep 02, 2024 10:20 am I'm unable to DM.
Mod note: You can now.
JD Lessley
Have you tried finding your answer on the ChurchofJesusChrist.org Help Center or Tech Wiki?
New Member
#26
is the project still active? i'd like to contribute. I can't pm as well
New Member
#27
lumbeezl wrote: Sun Dec 18, 2022 7:42 pm The Gospel Library app for Windows is amazing and I'd like a comparable version for Linux. The Windows Desktop version is built specifically for Windows, given the fact that it's using .NET for everything.

I don't have tons of time, but I'd love to start a project in developing for Linux/MacOS. There are a number of frameworks that could be used, although Qt or gtk-rs are at front of mind. I'm not sure where to begin with this but any input would be helpful.
I'm quite the newbie in Linux and am not that great at programming in general, but I want to see how I can help!
New Member
#28
This is the response I received from the Windows project maintainer:
We have not been authorized to support any other platforms. Even not being funded, there is maintenance and support cost to the Church for our Windows project. I’m not sure they would be able to support any other platforms.
I'm not inclined to begin any effort for Linux/Mac until we'd be able to get authorization from the Church to use official material.
In that case, we'd have no barriers, but I don't know any way or means of getting that done.