Inspiration
Having used different habit tracker apps in the past, we've experienced first-hand how difficult it can be to consistently utilize such tracker apps on a daily basis. Often times, initially motivated users lose their momentum after a meager week, leading to a decrease of usage and ultimate burnout. Through various life experiences, we've learned that exterior motivation is at times a factor necessary for individuals to consistently accomplish their tasks. This source of motivation is especially needed during quarantine, as due to the monotonous routine, it's very easy for individuals to lose a sense of purpose and drive. By having a friend witness their progress, this app holds the user accountable and adds an incentive for them to complete their tasks; it is a simple, yet effective method to keep the user productive, happy, and satisfied at home.
What it does
Buddy is a social habit tracker app that allows friends to keep each accountable through mutually accessible streaks and features aimed to motivate users to complete their daily goals. Users will sign up for the app with a friend (accountability buddy)– connecting through a uniquely generated code. Features of the this app include:
- Add/remove personalized habits + mark as complete
- Group streak that indicates the amount of total days both users have successfully stayed on track, which will be broken if one of the users fail to complete their respective tasks.
- Chatbox to allow both users to communicate
- Option to view friend's dashboard
How we built it
We used XCode to build the app from scratch, and we only started creating when the hackathon started. We referenced the designs we made through Figma, editing the storyboard and UI of the app. We used Firebase for user logins/authentication, as well as Firestore as a database to store user emails, messages, and the times they were sent. The habit page and chat box were created with table views, and we used custom xib files to design each cell, having every element adhere to our theme.
Challenges we ran into
Our team has very limited experience with the process of app development. In fact, only one team member has used XCode before the hackathon began, and she taught herself ios app development through an online course during quarantine. The rest of the members initially focused on design and layout, yet throughout the hackathon they learned how to edit the UI and create the interface in XCode, based on their designs. We struggled with integrating all of the app's different functions – such as setting different constraints, integrating a chat feature, tracking streaks, etc. We initially tried to use Firebase to authorize Google/Facebook logins, but it was complicated to integrate that into the rest of the data, considering we had multiple local files to store the habits. In addition, working with XCode to commit, push, and pull different versions on our github repo proved to be challenging, as we were all using XCode on different laptops.
Accomplishments that we're proud of
We're proud of creating an app from scratch with minimal app development experience, as well as fully integrating our design into the storyboard and utilizing databases efficiently throughout the project. We're also proud of navigating through the version control problems in Github. Although two of the members didn't have experience with XCode prior to the hackathon, they were able to quickly learn and commit, pull, and push their changes to Github with ease. There was one issue with merging, in which a file was corrupted, but we were able to solve the problem together with adequate research and experimentation. As we were all beginners, there was a lot of patience and dedication required throughout these 48 hours in order for the project to be a success.
What we learned
The designers of the app gained more experience navigating Figma, and they were able to learn how edit the storyboard in XCode in order to display their designs. Throughout the process, everyone gained invaluable experience about the process of app development itself. We were able to figure out how to properly authenticate the users and store the messages in Firestore, as well as learn a more efficient debugging process when errors arose. By simply navigating and changing the interface, we learned how to more efficiently add constraints and format all the buttons, textfields, etc. to make everything cleaner and easier to edit. Additionally, we had to learn the code to create custom changes in the interface, such as rounding the buttons and editing navigation bars.
What's next for Buddy
We plan to implement a more advanced habit tracker, with additional options to set reflections, brainstorm long-term goals, group habits by genre (health, career, hobbies), and add weekly habits that allow users to further tailor the app to their own needs. Furthermore, we plan to implement a feature that allows users to provide reasons for a habit they failed to complete, which can then be rejected or passed by the other user. We also plan to better establish the display of user data on their profile page, including charts, graphs, and/or group statistics that demonstrate their progress throughout the year. Notifications can also be implemented to keep the user up to date with their progress and remind them of the tasks to complete. Users may be notified of their buddy's successes to incentivize them to also reach towards successfully accomplishing their goals, and they also have the option to send congratulatory messages to their friend in light of these notifications. With a more intricate process, hopefully users can receive a more elaborate, guided approach to actually achieving their personal goals and stay on track with the pressure of a trustworthy friend.
Log in or sign up for Devpost to join the conversation.