Android app (Kotlin + Jetpack Compose) that wraps a self-contained HTML/CSS/JS timer in a WebView. All app logic lives in app/src/main/assets/index.html.
app/src/main/assets/index.html— the entire UI and timer logicapp/src/main/java/com/markrcote/gvtimer/MainActivity.kt— loads the web app in a WebViewapp/build.gradle.kts— dependencies and version info (current: versionName"1.3", versionCode3)RELEASING.md— step-by-step Play Store release instructions
./gradlew assembleDebug # debug build
./gradlew assembleRelease # release build
./gradlew bundleRelease # Play Store bundle (.aab)Requires Android Studio or a local Android SDK installation.
See RELEASING.md for the full Play Store release process. Summary:
- Increment
versionCodeandversionNameinapp/build.gradle.kts - Commit, tag (
v<version>), and push ./gradlew bundleRelease— output atapp/build/outputs/bundle/release/app-release.aab- Upload
.aabto Google Play Console
Signing requires keystore.properties in the project root (not committed).
The app intentionally avoids native Android UI. The WebView loads file:///android_asset/index.html with JavaScript enabled. There is no network access; everything is local.
configChanges="orientation|screenSize|keyboardHidden" on the activity prevents recreation on rotation, preserving timer state without needing to save/restore it explicitly.