How brandonp2412/flexify works
Flexify is an offline-first workout tracker. Users create plans, record training sessions (including weights, reps, cardio, and rest), then review exercise history and progress graphs; settings customize behavior and appearance. The README documents these capabilities, while the supplied source excerpts chiefly show Android timer handling. The graph therefore uses the documented product areas and tree paths for Flutter subsystems, and limits native timer wiring to what the excerpts support; unsampled Flutter internals are not inferred.
Main entry points: lib Flexify app · database Local database · MainActivity.kt Android bridge · timer Rest timer UI
Components 13
Workout tracking
- Workout plans
lib/plan - Training logs
lib/sets - Rest timer UI
lib/timer
Progress insights
- Exercise history
lib/sets - Progress graphs
lib/graph
Local app data
- Preferences
lib/settings - Local database
lib/database - Audio behavior
lib/audio
Timer integration
- Android bridge
android/app/src/main/kotlin/com/presley/flexify/MainActivity.kt - Timer service
android/app/src/main/kotlin/com/presley/flexify/TimerService.kt
Other components
- Trainee
- Flexify app
lib - Android notifications
Connections 16
- Trainee → Flexify app: uses
- Flexify app → Workout plans: opens plans
- Flexify app → Training logs: records training
- Flexify app → Rest timer UI: starts rest
- Flexify app → Exercise history: reviews history
- Flexify app → Progress graphs: views progress
- Flexify app → Preferences: configures
- Workout plans → Local database: stores plans
- Training logs → Local database: stores logs
- Exercise history → Local database: reads history
- Progress graphs → Local database: reads records
- Preferences → Local database: stores preferences
- Rest timer UI → Android bridge: invokes methods
- Android bridge → Timer service: starts service
- Timer service → Android notifications: notifies and alarms
- Android bridge → Rest timer UI: sends timer events