Inspiration
We all know how thrilling it is to race your friends. Most of us would agree that we perform best in a competitive setting. But how can you combine a competitive setting with solo practice? We took inspiration from Mario Kart where users can race against their past ghosts in time trials on different courses. CatchApp is an app that allows runners to race against themselves by creating "ghosts" for a given route. We believe that racing against your past self will boost your motivation while running.
What it does
To record your first ghost, you simply run. CatchApp will auomatically record your route and pacing to create a ghost. Later, you can select the ghost and run against it on that same route. The app indicates your location relative to the ghost and will give auditory cues when the ghost gets close to you. We chose a spooky sound byte to instill a sense of urgency in our users. In future releases, users will be able to pick among various audio cues or even create their own. Furthermore, they will be able to pick among numerous icons to race against.
How we built it
We utilized Google Maps API to generate a map with our location. We then tracked latitude-longitude pairs and associated them with time stamps on the route. This allowed us to easily compare the locations of users and ghosts while they are racing. We projected that location data as an icon onto the map based on the time, and played spooky sounds if the distances were close and the ghost was going to pass the user.
Challenges we ran into
None of us had developed an Android app before, so our biggest challenge was setting up our development environments and adjusting to the learning curve. In fact, we were only able to set up the environment on one of our laptops, meaning that only one person could be writing code at a time. We took advantage by having other team members look ahead for possible issues and solving the problems ahead of time. One other issue is that since we knew we had a time deadline, we did not always spend time cleaning our code, leading to more bugs towards the end.
Accomplishments that we're proud of
We were able to learn how to make a working Android app in less than 24 hours. When we first started the project, we thought we had taken on too large a task, so when we had a well-functioning app by the deadline, we were very proud.
What we learned
We learned how quickly you can build if you have a clear idea and timeline. We learned the basics of Android development, including Google Maps APIs. Beyond that, we were able to learn more about design patterns in larger applications, including visitors, factories, and singletons. All of these were essential to the correct functioning of our code. We learned how to clearly communicate with one another in a stressful environment with a tight deadline.
What's next for Catch App
Our goal this next week is to clean up the code we have and make it more readable and scalable. From there we plan to restructure the design a bit to allow for more ghosts and more routes. Ultimately, we would like to be able to share ghosts among friends so people can virtually race against eachother. Currently, users can only race ghosts if they are on the same route. We want to overcome this hurdle and project a ghost on an arbitrary route. Once all of that is complete, we plan on developing an iOS version of CatchApp to release on the App Store.
Log in or sign up for Devpost to join the conversation.