Inspiration
Our app is designed to bring friendly competition to a whole new level. The idea was inspired by the iOS Club's semester-long competitions, where teams challenge one another to create the best apps and sharpen their technical skills. We wanted to take this spirit beyond software development, combining it with the drive for a healthier lifestyle. This app isn't just about competing with friends—it's about building better habits, pushing each other to improve as individuals.
What it does
Loop is a dynamic and competitive activity tracking app that allows you and your friends to challenge each other to push your limits in new and exciting ways. Whether it's running, cycling, walking, or any other activity, Loop keeps the competition alive with live updates and automatic activity uploads. No more hiding a slow run or failed workout, your progress (or lack thereof) is always visible to your friends in real-time. Set personalized challenges, track your friends progress, and see where you stand on the leaderboard. Loop transforms fitness into a friendly rivalry, making it fun and motivating to stay active.
How we built it
Our app is built using a wide stack of packages by Apple, in order to deliver a seamless and engaging user experience. We used SwiftUI for a responsive and dynamic interface, and paired with WatchKit to bring activity tracking directly to the Apple Watch, allowing users to easily monitor their performance on the go. We utilize HealthKit to take advantage of the health statistics recorded by the Apple Watch. MapKit allows us to enable real-time route tracking and finally, Firebase powers our backend, offering reliable data synchronization and user authentication, ensuring smooth and secure competition between friends.
Challenges we ran into
One of the biggest challenges we faced was integrating the Apple Watch seamlessly with our app with WatchKit. Achieving real-time synchronization between the iPhone and Apple Watch proved to be complex, especially when trying to maintain live updates across both devices. Additionally, we encountered race conditions where we tried to get data from the HealthKit store was attempted before the activity was fully recorded, leading to inconsistencies.
Accomplishments that we're proud of
We’re really happy to be the first team in the iOS Club to develop a WatchKit app. Integrating the Apple Watch into our project was a significant milestone, allowing us to extend our app’s functionality beyond the iPhone. We’re also incredibly proud of our team for sticking together throughout the entire semester and pushing their limits to develop something completely new. For many of our members, this was their first time building a WatchKit app, diving deep into HealthKit, or integrating complex features like real-time synchronization.
What we learned
Through this project, we gained valuable experience in utilizing a wide range of Apple frameworks like SwiftUI, WatchKit, HealthKit, and MapKit. We learned the intricacies of synchronizing data in real-time between the iPhone and Apple Watch, tackling challenges like race conditions and ensuring consistent updates. Additionally, we discovered the importance of efficient data handling and optimizing performance when working with health and fitness data. Beyond technical skills, we also learned the value of teamwork, persistence, and the iterative process of refining ideas to create a polished final product.
What's next for Loop
Our vision for the app is just getting started. We plan to expand with even more features that make the experience better and more engaging. We want to introduce more customizable challenges, allowing users to create competitions to their preferences. We also want to support a wider variety of workouts, from strength training to yoga, catering to different fitness interests. Ultimately, our goal is to create a platform that not only tracks progress but also fosters a sense of friendly competition and community, motivating everyone to reach their personal best.
Log in or sign up for Devpost to join the conversation.