Track your gym progress, completely offline.
Brandon Presley
ebe9a392ca
Running this code results in the following error: TypeError: subQueryBuilder.getParameters is not a function (it is undefined) at createFromAlias (http://localhost:8081/index.bundle//&platform=android&dev=t y=false&app=com.massive&modulesOnly=false&runModule=true:205802:59) at from (http://localhost:8081/index.bundle//&platform=android&dev=true&minify= =com.massive&modulesOnly=false&runModule=true:201576:45) at ?anon_0_ (http://localhost:8081/index.bundle//&platform=android&dev=true&min &app=com.massive&modulesOnly=false&runModule=true:316375:209) at next (native) at asyncGeneratorStep (http://localhost:8081/index.bundle//&platform=android&de nify=false&app=com.massive&modulesOnly=false&runModule=true:28380:26) at _next (http://localhost:8081/index.bundle//&platform=android&dev=true&minify p=com.massive&modulesOnly=false&runModule=true:28399:29) at anonymous (http://localhost:8081/index.bundle//&platform=android&dev=true&mi e&app=com.massive&modulesOnly=false&runModule=true:28404:14) at tryCallTwo (/root/react-native/packages/react-native/ReactAndroid/hermes-eng Release/4i495j47/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:61:9) at doResolve (/root/react-native/packages/react-native/ReactAndroid/hermes-engi elease/4i495j47/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:216:25) at Promise (/root/react-native/packages/react-native/ReactAndroid/hermes-engine ease/4i495j47/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:82:14) at anonymous (http://localhost:8081/index.bundle//&platform=android&dev=true&mi e&app=com.massive&modulesOnly=false&runModule=true:28396:25) at anonymous (http://localhost:8081/index.bundle//&platform=android&dev=true&mi e&app=com.massive&modulesOnly=false&runModule=true:316420:14) at callback (http://localhost:8081/index.bundle//&platform=android&dev=true&min &app=com.massive&modulesOnly=false&runModule=true:145400:29) at anonymous (http://localhost:8081/index.bundle//&platform=android&dev=true&mi e&app=com.massive&modulesOnly=false&runModule=true:145419:27) at commitHookEffectListMount (http://localhost:8081/index.bundle//&platform=and true&minify=false&app=com.massive&modulesOnly=false&runModule=true:94929:38) at commitPassiveMountOnFiber (http://localhost:8081/index.bundle//&platform=and true&minify=false&app=com.massive&modulesOnly=false&runModule=true:96130:44) at commitPassiveMountEffects_complete (http://localhost:8081/index.bundle//&pla roid&dev=true&minify=false&app=com.massive&modulesOnly=false&runModule=true:96102:4 at commitPassiveMountEffects_begin (http://localhost:8081/index.bundle//&platfo d&dev=true&minify=false&app=com.massive&modulesOnly=false&runModule=true:96092:47) at commitPassiveMountEffects (http://localhost:8081/index.bundle//&platform=and true&minify=false&app=com.massive&modulesOnly=false&runModule=true:96082:40) at flushPassiveEffectsImpl (http://localhost:8081/index.bundle//&platform=andro ue&minify=false&app=com.massive&modulesOnly=false&runModule=true:97758:34) at flushPassiveEffects (http://localhost:8081/index.bundle//&platform=android&d inify=false&app=com.massive&modulesOnly=false&runModule=true:97713:43) at performSyncWorkOnRoot (http://localhost:8081/index.bundle//&platform=android &minify=false&app=com.massive&modulesOnly=false&runModule=true:97003:28) at flushSyncCallbacks (http://localhost:8081/index.bundle//&platform=android&de nify=false&app=com.massive&modulesOnly=false&runModule=true:86202:36) at flushSyncCallbacksOnlyInLegacyMode (http://localhost:8081/index.bundle//&pla |
||
---|---|---|
.bundle | ||
.vscode | ||
.yarn/releases | ||
android | ||
ios | ||
metadata/en-US | ||
migrations | ||
tests | ||
.buckconfig | ||
.eslintrc.js | ||
.fdignore | ||
.Gemfile | ||
.gitignore | ||
.rgignore | ||
.ruby-version | ||
.watchmanconfig | ||
.yarnrc.yml | ||
app.json | ||
App.tsx | ||
AppFab.tsx | ||
AppInput.tsx | ||
babel.config.js | ||
best.service.ts | ||
Chart.tsx | ||
colors.ts | ||
ConfirmDialog.tsx | ||
constants.ts | ||
count-many.ts | ||
data-source.ts | ||
db.ts | ||
deno.json | ||
deploy.sh | ||
drawer-param-list.ts | ||
DrawerHeader.tsx | ||
EditPlan.tsx | ||
EditSet.tsx | ||
EditSets.tsx | ||
EditWorkout.tsx | ||
fix-numeric.ts | ||
Gemfile | ||
Gemfile.lock | ||
GraphsList.tsx | ||
GraphsPage.tsx | ||
gym-set.ts | ||
home-page-params.ts | ||
HomePage.tsx | ||
index.js | ||
input.ts | ||
install.sh | ||
jest.config.js | ||
jestSetup.ts | ||
LICENSE | ||
ListMenu.tsx | ||
metrics.ts | ||
metro.config.js | ||
mock-providers.tsx | ||
options.ts | ||
organize.sh | ||
package.json | ||
Page.tsx | ||
periods.ts | ||
plan-page-params.ts | ||
plan.ts | ||
PlanItem.tsx | ||
PlanList.tsx | ||
PlanPage.tsx | ||
react-native.config.js | ||
README.md | ||
release.sh | ||
route.ts | ||
Routes.tsx | ||
Select.tsx | ||
SetItem.tsx | ||
SetList.tsx | ||
SettingButton.tsx | ||
settings.ts | ||
SettingsPage.tsx | ||
StackHeader.tsx | ||
StartPlan.tsx | ||
StartPlanItem.tsx | ||
Switch.tsx | ||
time.ts | ||
TimerPage.tsx | ||
toast.ts | ||
tsconfig.json | ||
use-dark.ts | ||
use-theme.ts | ||
use-timer.ts | ||
ViewGraph.tsx | ||
volume.ts | ||
watch-lint.sh | ||
watch-tsc.sh | ||
WorkoutItem.tsx | ||
WorkoutList.tsx | ||
WorkoutsPage.tsx | ||
write.ts | ||
yarn.lock |
Massive
Massive tracks your reps and sets at the gym. No internet connectivity or high spec device is required.
Features
- Track weight, reps and sets
- Rest timers after each set
- Progress graphs
- Day planner
Screenshots
Building from Source
First follow the React Native Environment Setup. Then run the following command:
cd android
./gradlew assembleRelease
The apk file can be found at android/app/build/outputs/apk/release/app-*-release.apk
The APKs are separated by architecture, for example we have:
app-arm64-v8a-release.apk
app-armeabi-v7a-release.apk
app-x86_64-release.apk
app-x86-release.apk
Your phone is probably app-arm64-v8a-release.apk
.
Running in Development
First ensure Node.js dependencies are installed:
yarn install
Then start the metro server:
yarn start
Then (in a separate terminal) run the android
script:
yarn android
Fdroid Metadata
You can find the metadata yaml file in the fdroiddata repository: https://gitlab.com/fdroid/fdroiddata/-/blob/master/metadata/com.massive.yml
Relevant Documentation
- Android https://developer.android.com/docs
- TypeScript https://www.typescriptlang.org/docs/
- JavaScript https://developer.mozilla.org/en-US/docs/Web/JavaScript
- SQLite https://sqlite.org/docs.html