Inspiration
Xercise was born from my own gym routine frustrations — I often spent more time searching for good exercises than actually doing them. I wanted a fast, visual, and organized way to explore workouts by body part, see details instantly, and start training without the guesswork.
What it does
Displays a list of body parts with the number of exercises available for each.
Lets users tap a body part to see a curated list of exercises.
Shows detailed exercise information, including instructions, images, and tips for correct form.
Designed to be intuitive, visual, and efficient for all fitness levels.
How we built it
Xercise is built using Compose Multiplatform, allowing us to share most of the UI codebase across Android, iOS, and Desktop while maintaining native performance and look & feel.
For the backend communication, we use Ktor — an asynchronous Kotlin framework for building clients and servers. In our case, it’s used as the HTTP client to consume the public exercise API efficiently and handle requests/responses in a coroutine-friendly way.
We implemented Koin for dependency injection, which keeps the code modular, testable, and easy to scale as the app grows.
For image loading, we rely on Coil, an asynchronous image loading library for Kotlin that integrates smoothly with Compose and allows us to fetch and display exercise images without blocking the UI.
The architecture follows the MVVM (Model-View-ViewModel) pattern combined with Clean Code principles, ensuring:
Separation of concerns between UI, business logic, and data layers.
High maintainability and testability.
A scalable structure for adding new features in the future.
Challenges we ran into
Data Mapping: Ensuring exercises were correctly categorized under the right muscle group.
UI/UX Balance: Keeping the interface minimalist without losing important details.
Performance: Optimizing image loading for a smooth browsing experience.
Accomplishments that we're proud of
Building a clear, responsive, and modern UI for iOS.
Successfully integrating a live API for real-time exercise data.
Designing a user flow that makes finding and learning exercises frictionless.
What we learned
How to structure and filter API data efficiently.
The importance of visual guidance in fitness apps.
Techniques for balancing performance and design quality in mobile development.
What's next for Xercise
Add custom workout creation so users can build routines from available exercises.
Implement progress tracking with stats and achievements.
Introduce offline mode for gyms with poor connectivity.
Built With
- android
- android-studio
- coil
- compose
- ios
- jetpack
- kotlin
- ktor
- multiplatform
- xcode
Log in or sign up for Devpost to join the conversation.