Muscle Buddy is a stand alone app that doesn’t phone home so it should fit in with the Purism privacy philosophy.
I started writing this app on a Librem 5 USA, but when the phone broke, I had to finish it on a PinePhone running Mobian. It should still work on PureOS as it is also in the Debian family.
The app should work on a Librem 11 as it has been tested on a Surface Pro 3 running Ubuntu. If anyone wants to test it and post their results, I would love to hear what their experience.
I need to research Flatpak and AppImage for a 1.0 release. I hope to make this cleaner in the future.
I am reading up on AppImage right now for a more user friendly future release. Haven’t ruled out Flatpak, but AppImage feels like a better fit for this app. I fear Flatpak will create the same jail problems I am having with running the app on Android.
Ay, doesn’t sound good. For me though, I’ve chosen to use only flatpaks primarily because using Appimages too just takes way too much space. I think flatpak may be more used in mobile linux, but I haven’t seen any stats.
I intentionally avoided flatpaks because of the sandoxing potentially preventing access to the hardware devices.
I could try a flatpak, but it I expect it will have the same performance problems I ran into with AppImage. AppImage worked okay on my desktop x86_64. But it is painfully slow on a Pinetab2. My Librem 5 had similar performance to a Pinetab2 if I recall.
I don’t think I could make a native deb for the Librem 5 with my phone broken.
I ran into issues earlier making an AppImage with compiled Cython modules not working at runtime because they were built in a different environment. I am sure I would have the same issue with a Librem 5 deb. What is worse is I would be unable to test it.
Looks interesting for me, great instruction videos and nice python code.
I vote for a deb too, because I track my workout partly with the Librem 5 and partly at home on a PC running Debian. I sync phone and PC regularly, so if Muscle Buddy would run on both I just need to sync the data base to the PC and transfer there the data from one data base to the other.
In the instruction videos I see lbs, but I prefer kg. Are the units in Muscle Buddy choosable?
This image illustrates the toggle button in the center right of the screen set to kg.
I plan on looking into creating deb files some time after I finish my work on AppImage. I have an AppImage that works for PureOS on x86_64 which I expect to work fine for the Librem 11. But my AppImage for aarch64 works on Dactnix but crashes on Mobian with dependency issues. It would crash on the Librem 5 as well as it is a Phosh dependency issue.
There are a couple of tricks to running it well on a PC. It was not designed to run on a PC because its layouts are all designed for small portrait screens and it was designed to work with touchscreens.
However there are some hacks that will make it work okay as a windowed app on a PC. You can put a touch file in the Muscle Buddy home directory called “no_fullscreen” and start it with a window size parameter:
$ touch no_fullscreen # only need to do once to disable fullscreen setting
$ ./main.py --size=360x720 # assuming all dependencies are met on your Linux PC
Muscle Buddy will come up with the same dimensions as a Librem 5 phone. As long as you use a mouse, trackball, or pointer stick on your PC, you should be able to use the app. The keyboard on your PC should work if you enable hardware keyboard but does not replace the need for a pointer device.
Muscle Buddy is not compatible with touchpad input nor is it compatible with touchscreens when in windowed mode. Touchpad events register the same way touch screen events do so moving your mouse around the screen is the same as dragging your finger around a touchscreen. When in windowed mode, touch event mapping is incorrectly calibrated.
Maybe I will put out a desktop package some day to allow people to run the app on their desktops. Although Muscle Buddy will probably never work with touchpads.
I am releasing a second beta which should work better for most Librem 5/11 users. I forgot that my Librem 5 was still using CPython 3.9 and my first beta release was using some Python 3.10 syntax. This may have caused a challenge for a Librem user who downloaded the source distribution. For anyone who ran into this problem, I apologize.
This beta 2 release has been reworked to be compatible with Python 3.8 which I think should work for all Linux Mobile users.
What may be of interest to many users is the addition of AppImage installers in this 2nd beta. You should be able to install a binary beta on the Librem 5 and/or 11.