trainlog/android
2026-09-17 16:08:36 +02:00
..
app test(android): validate real bridge backups 2026-09-17 16:08:36 +02:00
gradle/wrapper Add functional Android local client 2026-09-06 14:29:59 +02:00
.gitignore Add functional Android local client 2026-09-06 14:29:59 +02:00
build.gradle.kts Add functional Android local client 2026-09-06 14:29:59 +02:00
gradle.properties Add functional Android local client 2026-09-06 14:29:59 +02:00
gradlew Add functional Android local client 2026-09-06 14:29:59 +02:00
gradlew.bat Add functional Android local client 2026-09-06 14:29:59 +02:00
README.md release: prepare Trainlog 0.1.0 baseline 2026-09-15 08:08:36 +02:00
settings.gradle.kts Add functional Android local client 2026-09-06 14:29:59 +02:00

Trainlog Android

Current status

ANDROID_SCAFFOLD=IMPLEMENTED
ANDROID_THEME_PARITY=IMPLEMENTED
ANDROID_HOME=IMPLEMENTED
ANDROID_SESSION_SHELL=IMPLEMENTED
ANDROID_INLINE_EXERCISE_ROUTE=IMPLEMENTED
ANDROID_EXERCISE_SHELL=IMPLEMENTED
ANDROID_BODY_SHELL=IMPLEMENTED

LOCAL_PERSISTENCE=IMPLEMENTED
DIRECT_STORAGE=IMPLEMENTED
MTP_SYNC=IMPLEMENTED
ANDROID_SCHEMA=17

Visual contract

The application follows the same Trainlog language as the TUI:

dark background
monospace typography
cyan/teal accent
yellow active frame
green success
red error
blue muted/navigation
magenta graph role

The launcher icon is only a themed T.

Navigation

Accueil
├── Enregistrer une séance
│   └── Créer un nouvel exercice
│       └── retour séance
├── Enregistrer un exercice
└── Enregistrer des mensurations

Exercise contract

Android must consume the same model as the desktop application:

recording_mode
tracking_mode
data_fields

No exercise input form may be inferred from its name.

Toolchain

AGP          9.4.0
Gradle       9.6
Kotlin       2.3.21
Compose BOM  2026.08.00
compileSdk   37
targetSdk    36
minSdk       26
JDK          17

The committed Gradle wrapper is the canonical entry point. From this directory:

JAVA_HOME=/usr/lib/jvm/java-17-openjdk ./gradlew test
JAVA_HOME=/usr/lib/jvm/java-17-openjdk ./gradlew assembleDebug

Instrumented tests run on an emulator. Do not run connectedDebugAndroidTest on the primary personal phone.