Inspiration
Being an avid gamer and someone who has started running as a hobby for almost 2 years, this was an exciting opportunity for me to try to build something that melds my love for both.
What it does
It is a gamified running app, where users can begin runs and track their progress. You are the hero of your own journey, going on frequent adventures and completing quests along the way. As you run, you will be given live quests for you to complete and level up. There is also a leaderboard where you can compete with other heroes in how far they can go. The goal is to keep going!
How we built it
The app is built primarily on Bolt with React Native for the frontend and Supabase for the backend. Basic authentication with Supabase is implemented where users can sign up and have their stats tied to their account.
Challenges we ran into
The app was originally built with the intention of syncing with the Apple Watch and detecting the workouts live. While early iterations did detect Apple Watch workouts, it often did so with a massive delay in data retrieval, leading to the user being given quests even after they complete their workout. This also meant it was difficult to retrieve consistent data on certain metrics such as heart rate and calories. We have decided to postpone this implementation and rely on GPS tracking for the time being. A more thorough review of Apple’s HealthKit libraries for React Native is necessary.
Accomplishments that we're proud of
- The app achieves the pixel art style that is commonly found in the RPGs of old such as the original Final Fantasy games.
- The current iteration with GPS tracking is pretty damn accurate. Using the hero's location with the expo-location library while they are running, the app is able to accurately determine how far they have ran and at what speed.
- Functioning leaderboard, achievements, and hero progression systems
What we learned
Building with tools such as Bolt may simplify the coding process but also requires solid debugging skills. Being able to direct Bolt in the right direction was a huge learning curve, as we found ourselves running around in circles with it for a while, especially with the Apple Watch integration. The biggest takeaway is that building quality apps, regardless of whether they're made with tools such as Bolt, always need time. As Gabe Newell once said: "Late is just for a little while, suck is forever, right?"
What's next for Nimbus
- Building out live workout detection and sync with both Apple HealthKit and Google Fit
- Redesigning the UI to appear more like a fantasy RPG
- Implement an AI sprite using ElevenLabs that assists the hero in their journey. It will serve to guide the hero on what to improve on and what they should invest their skill points into
- Revenue models to keep the app running and incentivize heroes to have fun while running and also prioritizing their health
- Weekly raids!
- Improving security/authentication flow
- Implementing onboarding flow
*NOTE: The app is intended for mobile (iOS currently). A TestFlight invite link has been sent out. *
Built With
- expo-location
- react-native
- react-native-healthkit
- supabase
Log in or sign up for Devpost to join the conversation.