Files
ZenXercise/docs/adr/0004-player-flow-streak-and-identity.md
2026-10-28 23:03:28 +01:00

1.9 KiB
Raw Permalink Blame History

ADR 0004 — Player flow, Streak and app identity

Status: Accepted (2026-10-28)

  1. Sound: One soft chime per Mode, only on timer end / next item. Mixes with other audio. Mute toggle.
  2. Workout rest: No countdown and no rest settings. A count-up Rest Screen with "Start next set".
  3. Stretching flow: Automatic, with Transitions (per-Plan length, default 5 s).
  4. Supersets: Workout only; one set count; round-robin; optional rest between Exercises in a round.
  5. Streak: One daily Streak across both Modes, kept subtle; any complete Session counts, no minimum. Local notifications are in scope for v1 (to help keep the Streak).
  6. Theme: Fixed look per Mode, no light/dark setting for now.
  7. Fonts: Nunito (Stretching), Barlow Condensed (Workout).
  8. App ID: de.zendric.zenxercise.

Addendum (round 5)

  1. Superset rest: per-Superset switch "Rest between exercises", off by default.
  2. Streak UI: small flame + count in the top bar, "+1 🔥" on the Session summary, tap for a panel with current/longest Streak and a month calendar. No full-screen celebrations or milestones in v1.
  3. Streak Freezes are in v1. Grace Hour 00:00–01:00 counts for the previous day unless that day is already done.
  4. Reminders: two adjustable daily Reminders (19:00 and late night), skipped when the day is done. A Settings screen hosts them.
  5. Session summary: duration, Exercises, Set Logs and the Streak line.
  6. No UI prototype: the Streak is built directly in the app.
  7. Build order: setup/data/designs → Library → Plan editor → Player + summary → History, Streak, Reminders. Commit and push after each stage; check in after stages 1 and 4.
  8. Freeze rules: earn 1 per 7 consecutive Streak Days, hold max 2, auto-used on a missed day (❄️); more missed days than Freezes resets the Streak.
  9. Reminder defaults: 19:00 and 22:30, each toggleable and re-timeable; exactly two slots.