The Android app door staff use: sign in, pick an event, then scan tickets, mark attendance, run food sessions and track unpaid entries. Java only, no Kotlin.
- JDK 17
- Android SDK, platform 34 and build tools 34.0.0
- Gradle 8.7. There is no wrapper in this repo, so
./gradlewwill not work
minSdk is 26. Android Studio is not required.
Create local.properties in the project root:
sdk.dir=/path/to/android-sdkexport JAVA_HOME=/path/to/jdk-17
export ANDROID_HOME=/path/to/android-sdkgradle assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apkApplication id is com.legitcoconut.thanimaticketing.debug, so it installs alongside the
release build.
Minified, resource shrunk and signed. Make a keystore once:
keytool -genkeypair -v -keystore thanima-release.jks -alias thanima \
-keyalg RSA -keysize 4096 -validity 10000Back it up. If the key is lost, Android will not let you update an installed copy of the app.
Then create keystore.properties in the project root:
storeFile=thanima-release.jks
storePassword=...
keyAlias=thanima
keyPassword=...gradle assembleReleaseOutput is app/build/outputs/apk/release/app-release.apk. Without keystore.properties the
build still succeeds but emits an unsigned APK, which cannot be installed.
- Server URL:
gradle assembleDebug -PBASE_URL=https://your-server.example/api, or change it on the login screen. Plain HTTP is allowed, so a LAN address works at a venue. - Tests:
gradle testDebugUnitTest - Builds are arm64 only, so the x86 emulator cannot install them. Use an arm64 image or a real phone.