JustFitness Logo

JustFitness

JustFitness logo & the android icon

JustFitness for Android

Stage 2 of 3 Complete

Updated: 10 September 2022

The Gist

  • Download the APK directly.
  • Local storage and offline support.
  • Optionally wait for the Play Store's approval.
  • Next Steps: Migrate New Data, Prepare iOS.

Get the Android App

Direct Download

JustFitness for Android is available on the download page.
It's pending approval on the Play Store, and I cannot proceed until I get a response. Of course, you can wait for that to clear, but there's no telling how long the approval process will take.

Exclusive Features

Local Storage

The previous iterations used the browser's storage system, but it was not robust and reliable enough for primary storage. The different browsers have relatively low size limits, their vendors do not agree on how long to retain data, and there isn't a way for you to tell them to not delete a particular data set.

Version 3's local storage is now handled on the OS level, where it allows for more space and longer longevity. Though data is synced to the server in real time, this is to account for unstable network connectivity and dead zones.

Offline Support

JustFitness was originally a Progressive Web App. It allowed you to load the website from your browser's local cache even while offline. As previously stated, there were a few big ticket issues that were inappropriate for this application. Since v3 is wrapped in a native application, you can rest assured that the app will load even if your device is in airplane mode.

Payments

Payment processing is completely disabled and hidden to comply with third-party marketplace terms of service. Though I can enable the functionality in the direct APK, it is not yet worth the effort to package and distribute a separate flavor of the application for a single feature. You must use the website to support its development and maintenance via subscription.

Up Next

This marks the end of stage 2 of the release plan, but this is no time to celebrate.
There is still a ton of work left to do while we wait for the Play Store's approval. Oh, and just a heads-up; The app subdomain will be taken offline as soon as that process concludes.

Update the Migration Script

Version 2 is still available on the previous subdomain. I've left it up during this transition to avoid the jarring change to your workflow, and just in case there were issues with the new system. It was certainly a good call because version 3 also came with a new server application and I knew there would be unforeseen issues. But there's a catch. New v2 data does not automatically migrate to v3, and v3 data is not backward compatible with v2.

The script that performed the initial migration was designed to cover everything all at once and to not account for subsequent changes. A good chunk of time has passed since its initial execution. Some of you have decided to continue to use v2 while waiting on v3 to stabilize. To migrate the v2 data that was created since then, I simply have to update the script.

iOS

If you're using Safari, you may have noticed that the app appears to be stuck on the loading screen. This is because the latest version of the browser does not allow websites to load WebAssembly modules from a separate thread. This issue is beyond my control. Fortunately, the solution is in the works. Search for "Wasm import from a JS Worker" to find the significant section. I was able to confirm it with the Safari Technology Preview. What does this have to do with iOS? Well; WebKit is the browser engine that powers Safari on Desktop and iOS.

In the meantime, I'll prepare the App Store listing.

Thanks

As always, thanks for using JustFitness. I hope to hear from you soon.

The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.