oliexdev / openWorkout

Simple workout trainer that puts your privacy first
GNU General Public License v3.0
124 stars 17 forks source link

Add better support for progression based training programs #33

Open jm355 opened 3 years ago

jm355 commented 3 years ago

I'm looking into switching to using this app for tracking my workout progress, however it's not geared at all towards a training program that's based on progressively increasing reps, and this one is much less important, also based on moving on to the next exercise in the progression once you've mastered one. The last one isn't very important because it's usually pretty easy to remember which one you're on between sessions, but not so much with the number of reps you did

The simplest, most bare bones solution to this one that I can think of is to have a notes field for every exercise that would be the same as the description field but could be edited during the workout and sync between all reps of the same exercise. Then I can easily write down my most recent rep count and exercise in the progression, and it will still be there for each set and when I reset the status of all items and do the routine next time.

Similar to that would be to allow the goal rep count to be edited while working out, and have it sync between all items of the same exercise for that training - i.e. if I did 5 pushups last time and am ready to move on to 6 pushups this time, I can just change it during the prep time and then when I get to my next set of push ups it'll say 6 reps there too. Then to make workout tracking even better, it could have a goal rep count and an actual rep count, where the goal could be synced (or not) between reps and the actual could be entered per rep during the rest time and wouldn't be synced

Ideally both of these ideas could be implemented at some point, but the notes field synced between all identical exercises would be the biggest return on investment by far, and easiest to implement since it would be the same as the description just with a modifiable text box while working out

Here's what I've got so far for my program which is based on the r/bodyweightfitness recommend routine, so you can take a look and get a better idea of where I'm coming from and what I'm trying to do r_bodyweightfitness Recommended Routine.zip

oliexdev commented 3 years ago

If I understand right you want only have one session with several workouts which you always want to reset and do it again with an increase rep count? Did I understand that correctly?

jm355 commented 3 years ago

Kinda. If that was all I needed I could make it work pretty easily with the standard model of having a bunch of days and then each day increment the reps, however what really makes it tricky is that not every day will be one where I need to increase the reps, and not every exercise. So one exercise, say push ups, will need to increase the reps, but pull ups are still the same so the rep count shouldn't change. That leads to a huge number of permutations of different days, and makes it hard to keep track of what I did the previous workout so I know which one to do next. So having one that you can reset, with a static notes field for the exercises where I can put the previous reps and my stage in the progression would be the most helpful I think

oliexdev commented 3 years ago

... however what really makes it tricky is that not every day will be one where I need to increase the reps, and not every exercise

How do you decide when to increase the number of reps? If you can't make the number? For example you set 5 reps for push ups but you only can 3 push ups so the next day you will set 4 push ups instead of 6 push ups?

jm355 commented 3 years ago

I usually do it when I feel I completed all reps of all sets for that exercise with solid form and that I'm ready to move up, and I would be able to do the extra rep. The general idea is to stop 1-2 reps before failure, so I'll stick with a rep count until that's the case for that exercise, and then add an extra rep and repeat that process. And it's independent for each exercise, some exercises I'm able to progress much faster than others

senpl commented 3 years ago

If that was all I needed I could make it work pretty easily with the standard model of having a bunch of days and then each day increment the reps, however what really makes it tricky is that not every day will be one where I need to increase the reps, and not every exercise.

U could use my https://play.google.com/store/apps/details?id=com.fitworkoutfast . It not increment by default, you have to click store new reps button. Still it is workable. I plan new version based on openWorkout, but due to lack of time it is always planned, never done. Still it is not hard to implement, it is just work that someone will need to do, just to make it in openWorkout. If more info is needed let me know.

oliexdev commented 3 years ago

I usually do it when I feel I completed all reps of all sets for that exercise with solid form and that I'm ready to move up, and I would be able to do the extra rep. The general idea is to stop 1-2 reps before failure, so I'll stick with a rep count until that's the case for that exercise, and then add an extra rep and repeat that process. And it's independent for each exercise, some exercises I'm able to progress much faster than others

I think I understand you, that workout flow was never in my mind. It is more like to see how much preps I can do rather than to stick with the given reps count. The question is how to integrate that function without breaking the design and the usability of the app without confusing the "normal" users with this progression flow. Normally the increase difficulty needs to implemented in the sessions. To find and sync all same workout items is currently not possible because every workout item is internally an individual item. Which app did you use before? How is it there implemented?

@senpl do you want to fork openWorkout and publish an own version?

senpl commented 3 years ago

@senpl do you want to fork openWorkout and publish an own version? Yes, but only when I will need new feature. So priority is low. But merge requests are always nice to see. Anyway I would like to see optimal semi-advanced exercises workflow that is fast and intuitive, coz code is not that hard to write. Most users just stay on excel or vary basic exercises counters and timers. And it is not easy to design tool that is intuitve enough for beginers and fast enough for advanced users. I would love to see fatigue, HRV, voice commands, auto rep count and sleep data integrated into free fitness app still it is hard to implement and potential that user will use it not really huge. What feature would really make difference for users? Maybe with time users will find some good training flow with workout app.

oliexdev commented 3 years ago

@senpl then why you don't send PR to openWorkout?

jm355 commented 3 years ago

Yeah, that's a good question indeed. The app I used before was goggle sheets and the third spreadsheet template on the recommended routine wiki post, and I'd just copy the column from the previous day and edit it as needed. One nice thing about that was I could add notes and stuff like "felt solid today, move on", they'd just be in the same cell as the set and rep count, as well as which stage in the progression I was on. I'll copy an example cell in the row progression "ii 3x5 bellybutton height bar don't move on quite yet", with that I can see which stage in the progression I'm at, how many reps to do, and any notes. That's why I was thinking maybe just a simple notes field common to all instances of a given exercise might be easiest to implement. https://docs.google.com/spreadsheets/u/0/d/1M5zmwoW73Bi7qHlmtXLdg_lKuhbjlKZrqt4cMFRaxVQ/htmlview#gid=0 de-googling my phone is ultimately how I found this app.

Maybe there could be an option when making or editing a session to link the reps and notes (or description) fields of each exercise with the same name in that session? Or have the same option but instead of being at the session level it could be enabled per exercise? Then that toggle would only show up when editing/adding an exercise within a session. Either way the linking wouldn't be global, it'd be contained within the session

senpl commented 3 years ago

@senpl then why you don't send PR to openWorkout? I could send you link and if this will match your design than maybe this could be pulled. But I guess features like back to previous exercises will be needed and as other issue suggested it is not planned.