GymBro is a modern workout tracker app built using Jetpack Compose, designed to help users manage their gym sessions with daily routines, dark mode support, and a clean UI. ๐ช
-
๐ Today's Workout Screen
- Displays your daily exercises based on the current day.
- Checkboxes to track completed sets.
- Automatically resets daily completion state.
-
๐ All Workouts Screen
- View all workouts grouped by weekday (e.g. Monday, Saturday).
- Tap to expand/collapse each day's exercises.
- Checkbox hidden for read-only clarity.
-
โ๏ธ Settings Screen
- Toggle between Light and Dark theme.
- Fully reactive UI updates.
-
๐ฑ Material You UI
- Built using Material 3 and Jetpack Compose.
- Responsive layouts, elevation-less cards, and custom colors.
- ๐งฉ Jetpack Compose
- โ๏ธ Material 3 Theme System
- ๐๏ธ ViewModel + StateFlow for state management
- ๐พ Local storage (WorkoutCheckStateManager) for saving daily progress
- ๐งญ Navigation Compose
In this app i have used MVVM (Model-View-ViewModel) architecture pattern.
- Model: Contains workout data structures and local data source (
Workout,WorkoutCheckStateManager, etc.) - ViewModel: Manages UI logic and state (
WorkoutViewModel,ThemeViewModel) - View: Built entirely in Jetpack Compose (
WorkoutScreen,AllWorkoutScreen,SettingsScreen)
This architecture ensures:
- Separation of concerns
- Lifecycle-aware state management
- Reactive UI with
StateFlowandremember