bsluther/gainzville-swift

A (prototype) Swift app for recording and analyzing training data.

★ 0Forks 0SwiftGitHub ↗Compare

README

What is Gainzville?

Gainzville is an app to record and analyze physical training. The primary problem it sets out to address is that there are many apps which support particular types of training and exercises, but some training doesn't fit neatly into the boxes that app developers choose to create. What if rather than hard-coding particular exercises and relevant data points, the user was empowered to express the training they actually perform? Gainzville is an attempt to build a platform which is expressive enough to describe the vast majority of training while retaining enough structure to support analysis of that data.

See here for an aspirational description of Gainzville.

About this repository

This version of Gainzville has been focused on the data model and UX to support structuring individual activities into sequences of activities and, recursively, other sequences. A simple example is a user recording an entire workout: beginning with some warm up activities, going for a run, then doing some stretching (see below for a screen capture). These features are intended to support a few use cases

  • Organize your library (collection of activities) and log (records of activities completed).
  • Save common workouts to easily re-use or share them. For example, a period of strength training could contain a number of very similar workouts (sequences) in terms of the exercises (activities) performed, but with different reps, load, etc (attributes). Sequences act as a template to start or plan a workout.
  • Avoid repetitive data entry by applying attributes to an entire sequence at once. Rather than entering a time for every exercise completed, enter a time range once for the entire workout ("2-4pm") which will be inherited by each entry within the workout. If fine-grained time data is desirable, it can still be entered, but for many cases this is excessive.

Recording and organizing a cardio workout

gv-swift-cardio-workout.mp4

Other versions of Gainzville

I've tried a lot of approaches, models, platforms, libraries, languages, etc. Part of this has been exploring the problem space, and part of it has been learning about software engineering.

Contributors

bsluther

Issues