A modern fitness tracking application for Android phones and Wear OS devices that helps users track their runs with detailed metrics and analytics.
Home Screen | Active Run Screen |
---|---|
![]() |
![]() |
- Run Tracking: Real-time GPS tracking for runs with detailed metrics
- Active Run Service: Background service for continuous run tracking
- Wear OS Support: Dedicated wear module for smartwatch integration
- Analytics: Built-in analytics for tracking user engagement and app performance
- Authentication: Secure user authentication system
- Notifications: Real-time updates and progress notifications
- Modern UI: Material Design 3 components with custom design system
- User Authentication (Sign up/Sign in)
- Run Tracking with GPS
- Real-time run metrics:
- Distance
- Duration
- Pace
- Speed
- Heart Rate
- Elevation
- Run History & Statistics
- Dynamic Feature Modules (Analytics module)
- Background Service for run tracking
- Splash Screen
- Dark/Light Theme support
- Real-time run tracking
- Heart Rate monitoring
- Distance tracking
- Ambient mode support
- Phone connectivity status
- Background service integration
- Syncs with phone app
- Architecture: Clean Architecture with multi-module setup
- UI Pattern: MVI (Model-View-Intent) and using ViewModel and StateFlow/Flow for UI state management
- Reactive Programming: Kotlin Coroutines & Flow
- Dependency Injection: Using Koin
- Single Activity: Using Jetpack Navigation
- State Hoisting: Composable state management
- Convention Plugins: Custom gradle plugins for dependency management
The project follows a clean, modular architecture:
-
app/
- Main phone application module -
analyitcs/
- Analytics module -
wear/
- Wear OS application module -
core/
- Shared core functionalitypresentation/
domain/
data/
utils/
notification/
connectivity/
database/
-
auth/
- Authentication feature module -
run/
- Run tracking feature module -
Each module has its own
presentation/
,domain/
,data/
andutils/
folders.
- Jetpack Compose
- Wear Compose
- Material Design 3
- Custom Design System
- Compose Navigation
- ViewModel
- StateFlow/Flow
- WorkManager
- Room Database
- Koin
- Kotlin Coroutines
- Kotlin Flow
- Google Play Services Location
- Activity Recognition
- Health Services
- Ktor Client
- Room Database
- Encrypted Shared Preferences
- JUnit5
- Mockk
- Turbine
- Compose Testing
- Timber (Logging)
- Play Services (Wearable)
- SplitInstall (Dynamic Features)
- AndroidX Core KTX
- Clone the repository:
git clone https://github.com/yourusername/super-runner.git
- Open in Android Studio
- Sync Gradle files
- Add required API keys in
local.properties
:MAPS_API_KEY=your_maps_api_key
- Run the app module for phone app
- Run the wear module for Wear OS app
- Presentation Layer (Compose)
- Domain Layer (Repositories and abstractions)
- Data Layer (Implementation of repositories)
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details