trainlog/docs/android.md
2026-09-05 19:05:07 +02:00

113 lines
1.9 KiB
Markdown

# Android Application
## 1. Purpose
The Android application is a lightweight training-session recorder.
Its design priority is low-friction data entry during a workout.
## 2. Session flow
Expected flow:
```text
Start session
|
v
record started_at
|
v
add exercises and targets
|
v
record actual sets
|
v
optional body data
|
v
Finish session
|
v
record ended_at
|
v
export Trainlog JSON
```
## 3. Exercise catalog
The application maintains a local exercise catalog for selection.
The user must not need to retype the same exercise every session.
When a new exercise is created:
- generate a stable `exercise_id`;
- store the display name;
- use that same identifier in future sessions;
- include the exercise catalog entry in exported files as required.
## 4. Planned work
The basic exercise form supports:
- number of sets;
- repetitions or timed duration;
- load when relevant;
- rest duration.
Example:
```text
4 sets
5 repetitions
80 kg
60 seconds rest
```
## 5. Actual work
The UI should pre-populate performed sets from the target when convenient.
The user only needs to edit differences.
Example target:
```text
5 / 5 / 5 / 5
```
Actual:
```text
5 / 5 / 5 / 3
```
The exported file must preserve both target and actual values.
## 6. Timestamps
`started_at` is recorded automatically when the session starts.
`ended_at` is recorded automatically when the session ends.
The UI may later allow explicit correction for forgotten starts or stops, but such correction must be visible to the user.
## 7. Export
The application exports valid Trainlog JSON.
It must not silently export malformed or incomplete data.
The application must validate required fields before final export.
## 8. Non-goals
Initial Android versions do not need:
- advanced analytics;
- complex charts;
- a cloud account;
- a remote database;
- social features.