113 lines
1.9 KiB
Markdown
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.
|