DEV Community

Jason Park
Jason Park

Posted on

Building a Gym Logging App

GymLogger was built to replace the manual process of tracking workouts in Google Sheets with a more visual and interactive experience. Instead of relying on spreadsheets, the app provides an easy way to schedule weekly exercises, log workouts, track sets, and see progress over time.

Application Structure

GymLogger is built with React Native and Expo Go, designed to run on iOS without extra setup. It uses SQLite for local data storage, ensuring workouts are logged and accessible even without an internet connection.

Workout Tab

GymLogger is structured around a weekly workout routine, with four exercises scheduled for each of the five weekdays. When the app starts, it automatically detects the current day and displays the scheduled exercises for that day.

View today's exercises

Each exercise consists of four sets of 10 reps, and progress is tracked based on total volume.

Log reps for exercise

Log reps for one-armed exercise

If all four sets are completed with 10 reps, the app automatically increases the weight for the next session, helping ensure steady progress.

Schedule Tab

The Schedule tab allows exercises to be created and updated for each day of the week. When adding a new exercise, the initial weight and increment value are set, ensuring automatic progression over time. This tab provides full control over workout planning, making it easy to adjust exercises as needed.

History Tab

The History tab organizes past workout logs by week, then day, and finally by exercise for that day. This makes it easy to review progress over time. Logs can be edited or deleted directly from this tab, making it easy to adjust past entries.

Future Improvements

I initially planned to implement a background task that would automatically save workout data to SQLite at the end of each day between 10:59 PM and 11:59 PM local time. However, since Expo Go doesn’t support background tasks for iOS, and workarounds add costs, this became a challenge. For now, data is saved manually through user interactions, but future updates may explore alternative solutions.

Repo Link

Resources

DevCycle image

OpenFeature Multi-Provider: Enabling New Feature Flagging Use-Cases

DevCycle is the first feature management platform with OpenFeature built in. We pair the reliability, scalability, and security of a managed service with freedom from vendor lock-in, helping developers ship faster with true OpenFeature-native feature flagging.

Watch Full Video 🎥

Top comments (0)

Tiger Data image

🐯 🚀 Timescale is now TigerData: Building the Modern PostgreSQL for the Analytical and Agentic Era

We’ve quietly evolved from a time-series database into the modern PostgreSQL for today’s and tomorrow’s computing, built for performance, scale, and the agentic future.

So we’re changing our name: from Timescale to TigerData. Not to change who we are, but to reflect who we’ve become. TigerData is bold, fast, and built to power the next era of software.

Read more

👋 Kindness is contagious

Explore this insightful piece, celebrated by the caring DEV Community. Programmers from all walks of life are invited to contribute and expand our shared wisdom.

A simple "thank you" can make someone’s day—leave your kudos in the comments below!

On DEV, spreading knowledge paves the way and fortifies our camaraderie. Found this helpful? A brief note of appreciation to the author truly matters.

Let’s Go!