A modern workout tracking app built with Jetpack Compose for Android. Track your daily exercises, monitor your progress, and stay consistent with your fitness routine.
- View today's exercises based on the current day of the week
- Check off completed sets with interactive checkboxes
- Visual progress ring showing completion percentage
- Celebration message when all exercises are complete
- Automatic daily reset of completion state
- Browse your complete workout plan organized by day
- Expandable day cards with smooth animations
- Clean, read-only view of all exercises and sets
- Quick overview of active days and total exercises
- Log your body weight over time
- Visual line chart to track progress
- Complete history of all weight entries
- Swipe-to-delete functionality for easy management
- Light and Dark theme support
- System default option that follows device settings
- Persistent theme preference using DataStore
- Material 3 design with dynamic colors
- UI Framework: Jetpack Compose
- Design System: Material 3
- Architecture: MVVM (Model-View-ViewModel)
- State Management: StateFlow and Compose State
- Database: Room for weight tracking
- Preferences: DataStore for theme settings
- Navigation: Navigation Compose
- Async: Kotlin Coroutines and Flow
The app follows the MVVM architecture pattern:
- Model: Data classes and local data sources (
Workout,WeightEntry, Room DAOs) - ViewModel: Business logic and state management (
WorkoutViewModel,WeightViewModel) - View: Composable UI screens (
HomeScreen,AllWorkoutScreen,WeightScreen,SettingsScreen)
This ensures:
- Clear separation of concerns
- Lifecycle-aware state management
- Reactive UI updates
- Testable code structure
- Clone the repository
- Open the project in Android Studio (Ladybug or newer)
- Sync Gradle dependencies
- Run the app on an emulator or physical device
- Android Studio Ladybug or newer
- Minimum SDK: 24 (Android 7.0)
- Target SDK: 35 (Android 15)
- Kotlin 1.9+