Inspiration

A traditional African adage states that "If you want to go fast you go alone, if you want to go far you go together." Unfortunately, most Americans seem to be wanting to go fast but not very far when it comes to working out, as new studies have found that 56% of Americans go to the gym alone. As members of UC Berkeley’s Triathlon team, we have seen first hand how a strong fitness community can not only provide individuals with camaraderie and mutual support but also accountability and inspiration to pursue healthier life styles. Creating this social media platform will enable individuals to feel that sense of community when going to the gym alongside providing members a tool to help them be more accountable and efficient in their training regimen.

What it does

We implemented a create workout, home feed page, and profile view in the app. This allows you to examine your profile, create a workout, tag images in the workout, and view other people's workouts that have been pushed to the cloud. It also calculates certain statistics on your weight-lifting training like how much your personal bests are in each activity and how many pounds you pushed in the last workout!

How we built it

We used google cloud firebase as the data storage and ios swift to build all the model, views, and controllers. We implemented a traditional profile page section, home feed page, and create workout views. The workout is comprised of a list of workout sets and other metadata like description and images. We had to push our images to GCP and use asynchronous threading to prevent the UI from being held up by the main thread loading IO. The feed simply pulls all the data from the database right now to visualize all the workouts from all the users.

Challenges we ran into

We had a hard time getting google cloud firebase to work asynchronously with the images that we were trying to download. This was because we were blocking the main thread to load all the images and then viewing the images. This was non-optimal so we switched to having the main thread run the UI and the images load on another thread. then every time a new image is loaded we wake up the main thread and reload the UI.

Accomplishments that we're proud of

We finished the app in time and got a fully functional create workout, feed, and profile sections working.

What we learned

  • asynchronous threading in ios
  • ios view specifics

What's next for GymMe

  • Login through Okta
  • Database Search for Friends by location
  • Personalization for Feed so that only your friends posts show up
  • Add CI Unit tests for UI and Functions

Built With

Share this project:

Updates