The Active Workout mode is FocusFlow’s real-time training companion — built to live on your phone screen while you are between sets on the gym floor. It displays every exercise assigned for the day, lets you log exact weight and reps for each set, auto-starts a countdown rest timer the moment you tick a set as complete, and saves a fullDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/piratta/gymApp/llms.txt
Use this file to discover all available pages before exploring further.
WorkoutSummary when you finish. Everything is optimised for one-handed use on a mobile screen.
Starting a Workout
Open the Workout tab
Tap Mi Entrenamiento in the navigation bar. FocusFlow reads your assigned
Routine (the one with isActive: true) and automatically highlights today’s RoutineDay based on your weekly schedule.Review today's plan
Before you begin, each exercise card shows the coach’s planned configuration:
| Field | What it means |
|---|---|
setsCount | Number of sets planned |
repsText | Target rep range, e.g. "8-10" or "3x5" |
expectedWeight | Coach-suggested starting weight in kg |
intensity | Effort target expressed as RPE or RIR, e.g. "RPE 8" or "RIR 2" |
notes | Any technique or execution notes left by your coach |
Logging a Set
Each exercise is displayed as a card. Inside every card, each planned set occupies its own row with two input fields.Enter weight and reps
Tap the Peso (kg) field and enter the actual weight you lifted. Then tap Reps reales and enter the repetitions you achieved. Both fields accept decimal values (use a comma or period as the decimal separator on mobile).
Mark the set complete
Tap the green Completar button (✓) on that set row. The row turns green and the rest timer starts automatically. The underlying
ExerciseSet is updated with:1RM / Historical Best Weight Indicator
As you prepare to log a set, FocusFlow shows a suggested weight value pre-filled in the weight input. This suggestion is the highest weight you have ever lifted for that specific exercise across all pastWorkoutSummary records — your running personal record. It is calculated by scanning every completed set in your history that matches the exercise name:
Rest Timer
The rest timer is an integral part of the active workout flow — it activates automatically so you never need to start it manually.Automatic start
Immediately after you mark a set as Completar, FocusFlow starts a countdown timer. The default rest period is taken from
Routine.globalRestSeconds (set by your coach). If no value is configured, the default is 180 seconds (3 minutes).Watch the countdown
The timer appears in the sticky session header at the top of the screen. While scrolling down the exercise list, a floating Dynamic Island pill at the top of the viewport also shows the remaining rest time so it is always in view.
Timer expiry alerts
When the countdown reaches zero, FocusFlow fires three simultaneous alerts to grab your attention no matter where you are in the app:
- Visual flash — the rest timer element pulses and the display shows
0. - Audio chime — a multi-tone electronic beep plays via
playRestTimerEndSound(). - Device vibration — a
[400, 150, 400, 150, 500]ms haptic pattern fires on Android and supported iOS devices.
FocusFlow uses a background Web Worker and a silent Audio API keep-alive to ensure the rest timer continues ticking accurately even when your phone screen locks or you switch to another app. Grant notification permissions when prompted so the app can also push a background alert if you are away from the screen.
Retroactive Logging
Missed logging a session in real time? You can still record it after the fact. Before tapping Start Workout, use the date picker that appears in the session-start panel to select the date of the missed session. The workout will be recorded withWorkoutSummary.date set to that past date instead of today. The selected day will appear as completed (green) on the Calendar tab for that historical date.
Completing a Session
Tap Finish Workout
When all sets are done, tap the Finalizar button in the sticky session header (or the floating pill at the top when scrolled). FocusFlow validates that at least one set has been logged — if the session is empty a warning modal will appear.
Session is saved
A
WorkoutSummary document is created and persisted to Firestore with the following fields:ActiveWorkoutSession State Reference
While a workout is in progress, FocusFlow maintains anActiveWorkoutSession object in memory and periodically syncs it to Firestore. This is what allows the session to survive tab switches, phone screen-locks, and app backgrounding.
Pausing a Session
Tap ⏸️ Pausar in the session header to pause the stopwatch. While paused, the exercise cards are blurred and a fullscreen overlay appears with a Reanudar button. Your logged set data is preserved exactly as-is. TheisPaused flag is set to true on the active session object.
Rest Days
If your coach schedules a rest day, or if you tap the Marcar Descanso option in the Workout tab, aWorkoutSummary is created with isRestDay: true and completionRate: 100. The Calendar tab marks the day with a rest indicator. You will see an encouraging message in place of the exercise list — no sets to log, just a prompt to rest, walk, stretch, and sleep well.