Throwing a beta release of a Linux mobile app

If there is anyone interested in trying out the source code beta release of my mobile strength training tool, I am releasing it to the wild.

Here is a website I created with further info:

Muscle Buddy

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.

Thanks!

5 Likes

Looks great . Can’t wait for the release

1 Like

Thanks shak.

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.

I am new to packing tools so bear with me.

2 Likes

AppImage is giving me some headaches. Would people feel okay running an AppImage installer which

  • creates a Python venv
  • downloads the module dependencies via pip
  • copies the Muscle Buddy app to .local/share
  • and then adds the start desktop file to ~/.local/share/applications?

I am not sure how I to go about running this command to fix the input group:
sudo usermod -aG input $USER

Do people accept being asked for their pin/password to a downloaded app? I know I would be skidish.

1 Like

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.

1 Like

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.

1 Like

I don’t suppose a native .deb is coming available for L5…?

1 Like

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.

Shame Librem 5’s don’t bounce.

2 Likes

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?

1 Like

Thank you so much for the feedback! You may be the first person to have looked at Muscle Buddy’s web site.

You can record your units in either kg or lbs. There is a units toggle button in both the set recorder and the workout builder.

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.

1 Like

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.

You can find the latest packages in Muscle Buddy’s download page.

As always, feedback is appreciated.

Thanks!

1 Like