An Android app for tracking German Volume Training (GVT) sessions. GVT is a strength-training method that has you perform 10 sets of 10 reps for a given exercise, with 60-second rest periods between sets.
- Tracks sets completed out of 10
- 60-second rest timer that starts automatically after each set
- Distinct audio tones when the rest period ends and when all 10 sets are complete
- Resets for the next exercise once all 10 sets are done
- Supports light and dark themes
- Android 7.0 (API 24) or higher
-
Android Studio (recommended), or Android SDK with command-line tools
-
JDK 17–21 (Java 22+ is not supported by the current Kotlin/Gradle tooling)
On Arch/Manjaro, install Java 21 and set it as the default:
sudo pacman -S jdk21-openjdk sudo archlinux-java set java-21-openjdk
-
Clone the repository:
git clone https://github.com/markrcote/gvtimer.git cd gvtimer -
Open in Android Studio (File > Open), or use the command line directly.
./gradlew assembleDebug # debug build
./gradlew assembleRelease # release build
./gradlew bundleRelease # Play Store bundle (.aab)Android Studio: Select a device (or create an emulator via Device Manager) and click Run.
Command line — start an emulator:
The Android SDK tools are not always on PATH. If emulator is not found, use the full path (typically $ANDROID_HOME/emulator/emulator):
# List available AVDs
$ANDROID_HOME/emulator/emulator -list-avds
# Start one (replace <avd-name> with an AVD from the list above)
$ANDROID_HOME/emulator/emulator -avd <avd-name> &
# Wait for the emulator to finish booting before installing
$ANDROID_HOME/platform-tools/adb wait-for-deviceCommand line — install and run:
./gradlew installDebug # installs debug build on connected device/emulatorAll timer logic and UI lives in a single file: app/src/main/assets/index.html. You can edit this file directly in any text editor — no Android-specific tooling required. After editing, rebuild and reinstall to see changes.
See RELEASING.md for Play Store release instructions.
The app is a thin Android wrapper (Kotlin + Jetpack Compose) around a self-contained HTML/CSS/JavaScript web app loaded from the local assets. The web app handles all timer logic and UI.
GVTimer does not collect, store, or transmit any personal data. See PRIVACY.md for details.
Copyright (c) Mark Côté. All rights reserved.