Workout tracking app using SwiftUI — Open Sourced my Code

Few Screenshots from the App

I have started learning SwiftUI during the pandemic lockdown. SwiftUI was comparatively easy and challenging for me due to its declarative nature of development. Initially, I have concentrated on the fundamentals of SwiftUI and spent more time playing with the learned concepts in Xcode.

Later, I have decided to develop a complete working app using SwiftUI to monitor my workouts progress which I’m using in my daily routine. I have posted many videos and blogs based on the experience and learnings from the app.

I was developing the app in private for my personal use. Later, I have decided to open source it to receive feedback and comments about the code structure and approach that I have used on it.

You can find the complete source code of the app from the below repo,

Features

Here are the features of the workout app. Take a look at the repo’s Readme file for screenshots.

Workout:

  • CRUD (Can create unlimited workout)
  • Favourite and unfavourite (My favourite workouts are chest and biceps. You can favourite and unfavourite your workouts too)

Exercise:

  • CRUD (Can create unlimited exercises in a workout)
  • Exercise references (Can add video links as reference which can be accessed whenever needed)

Set:

  • CRUD (Can create unlimited sets in an exercise)
  • Bulk update (Can update the weights and reps of the multiple sets easily in few taps)

Today:

  • Start today workout (Can start your today workout with duration timer and log your each set)
  • Rest timer (Automatic or manual rest timer for perfect rest planning between your sets)

History:

  • History with filters (Can filter you workout history based on body part, completion status or time period)
  • Continue incomplete workouts (Can continue your incomplete workout)
  • Pie-Chart summary and its split-up (Provides clear view on each body part and its workout history details)

Settings:

  • Local Notification (Reminds you to start you workout on time)
  • Haptic Feedbacks (Provides Rigid haptic feedback for the interactions with the app)

Others:

  • Widget (A configurable widget to get the summary of your workout history)

Conclusion

My code might not be the perfect. But you can get some idea to learn how easy it is to develop an app using SwiftUI. Have a look at my source code and let me know your feedbacks in comments.

Thanks 👨🏻‍💻

Senior iOS developer👨🏻‍💻

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store