Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Auto-Update Program based on exercises completed #141

Closed
sdriv3r opened this issue Jun 29, 2020 · 11 comments
Closed

Feature Request: Auto-Update Program based on exercises completed #141

sdriv3r opened this issue Jun 29, 2020 · 11 comments
Assignees

Comments

@sdriv3r
Copy link
Contributor

sdriv3r commented Jun 29, 2020

I am using the app for my strength workouts, but I can see this applying for people who track their cardio and want to constantly improve themselves.

The way I work out and my current problem: I start my programs out with lighter weights, then as I work out and push myself in the gym, I constantly try to increase. If I lift more weights one week, I would like that next time I do a specific program I start off at the same point.

In other words, the feature is to automatically increase the weight used for an exercise based off what was completed previously.

Example:

Program "Monday" has an exercise "Bench Press" and it is set for 6 reps at a weight of 135 lbs. As I complete the program, I end up pushing more (lets say 6 reps at 155 lbs) and this is logged in the app. When the user finishes the workout and clicks on "Finish Program", the program automatically gets adjusted with the max weight completed. So next time the user does "Monday", the program will ask for 155 lbs instead of the original 135 lbs.

I would have that added as a new setting which the user can turn on or off as they wish.

Some things that I though of and can be open for discussion:

  1. Should the weight only increase if the user completed the requested number of reps? From the example above, if the user only did 5 reps of 155, should it still increase the weight of the program or keep it as-is? (I think I would keep the weight until reps are achieved)
  2. Should we simply have a new popup/dialog that asks the users which ones to update? That way even if the user did lift more, he can choose not to update his program, or maybe he will have checkboxes and be able to select which ones to update and which ones to leave?

I am new to the code but I can start looking into this if no one opposes.

@brodeurlv
Copy link
Owner

Hi @sdriv3r,

That is an interesting idea. However, I'm not sure a lot of user will use it as it is pretty advanced. So the impact on the usability should be as minimal as possible. I think your option 2 is a good approach, however just to make sure we have the same idea in mind,
Here is how I see the workflow:

  • User completes an exercise and click on the Check button (the green one)
  • User edit his record by clicking the edit button as he did higher values. For example: Objective was 50kg and user did 55kg.
  • As values are higher, the app propose to also update the program with the same value : Yes / No. Then the program can be updated with the same values as the record. I don't think it is useful to have the user select which one.

With that, it only impacts users that are effectively doing more and not the others (UI remains unchanged).
And even if those users don't want to be bothered by this question "do you want to update your program?" then we could add a checkbox "don't ask me again for this program".

Tell me if I understood well your proposal.

Cheers,

@sdriv3r
Copy link
Contributor Author

sdriv3r commented Jul 4, 2020

Hi @brodeurlv ,

I agree about this being more of an advanced feature, thats why I though of adding it behind a setting you would need to enable in the Settings, so that the behavior does not change until you turn it on.

As for workflow, that is pretty much how I saw it. The only clarification I can add is that I though that having the "proposal" to change your program only happen at the end, right after the program is finished. That way you don't need to be interrupted after every exercise, although having it right after updating the record (pressing the "update" button in the record editor might not be that bad either. What do you think?

Cheers,

@brodeurlv
Copy link
Owner

Hi @sdriv3r ,

I think that if it ask for the update at the end of the program, it needs to be very simple, eg "Do you want to update your program with the values you made on this program ? Yes / No". However, you might have some exercise you want to update and some maybe not. So you will have basically to show the editor of program which to me is something the user can do on his own. So the added value is limited.
Also, asking at the end creates another pain to the user that is that already, at the end of a program, there are potentially already two dialog box launched. One for the timer if one has been setup and one to ask if you want to close the program. So this would do a third one.
To conclude, I think that in term of workflow, it might be more useful to the user and less cumbersome to the user to have it on the fly as, I don't think it will happen a lot except if the user is progressing at each session which is unlikely to happen for a long time and that might just mean that the program was badly setup at the beginning. Also it has to be deactivatable also on the fly to all the users that will not or very rarely use it.

Here is my humble opinion.
Cheers

@sdriv3r
Copy link
Contributor Author

sdriv3r commented Jul 15, 2020

Hi @brodeurlv ,

I though about this and i think you are right. Having it ask for confirmation every single time will be anoying, and having it ask at the end of each program will make a lot of popups.

Here is what I'm thinking this time:

When a program is finished, and If the user records same reps but more weight in an exercise, show a popup suggesting to automatically update program with higher weights.

This decision is saved to the users profile and the popup will not appear ever again.

There will be a new entry in the settings, allowing the user to turn on/off this feature if he changes his mind on the choice he made.

Let me know if you like this workflow.

Cheers

@brodeurlv
Copy link
Owner

Hi @sdriv3r ,
This workflow might be too limited. If the user wants to update some exercises but not other, it won't be possible. So this all-or-nothing approach might create more frustration to the user than benefit.
Maybe we can let this item aside for some time and let it mature with more user experience on the "program" usage. Is that ok for you?
Cheers,
Charles

@ironjan
Copy link
Contributor

ironjan commented Jul 27, 2020

Hi,

in my humble opinion, this is not an advanced workflow. When a user finishes a program exercise using the "X"-Button instead of the checkmark, a dialog pops up. This dialog explicitely states to "update" some which I assumed would be the exercise, not a historic record of the exercise's execution -- it's not unusual to adapt weights and reps to your current progress. I actually wanted to report a bug because weight and reps did not stay at their new value after updating them ;)

After some trying out, the correct way to update the exercises is:

  1. Do the exercise, find out that you need to adapt the weight
  2. Log the changed weight
  3. Finish all the remaining exercises
  4. Finish the program
  5. Go to "Edit program" if you remember all values that need adaption.
    • Otherwise go to "history" to find out all values that need adaption
  6. Change every exercise that needs adaption
    • The dialog used in this step is the same as the one caused by using the X-button. The title also states "Record Editor", not "exercise editor" or something similar.

Also note that you can't take a shortcut and adapt the program after step 2 as this interrupts the "break time"-timer. Also, this causes some confusing behavior when logging completed exercises:

  • Do an exercise with 10kg instead of 8kg
  • Log 10kg
  • Edit the program so that the exercise is now 10kg for future program executions
  • The log shows that 10kg is the standard for the current program executions (it should still be 8kg)

Best,
Jan

@BeatLink
Copy link

BeatLink commented Jan 9, 2021

In my opinion, this is perfect:

#141 (comment)

Especially for people new to workouts who are progressing linearly. Also follows the concepts of progressive overload. And if it is too cumbersome or annoying, users have the option of turning it off.

It should be off by default unless the user activates it though

@agerhbour
Copy link

I would also appreciate this feature, and in fact, I was surprised that weights in program's don't update.

@brodeurlv brodeurlv self-assigned this Jun 11, 2021
brodeurlv added a commit that referenced this issue Jun 11, 2021
@punkie909
Copy link

I kind of hacked something together like option 2 for myself when training. Only as of now, I saw this issue and thought I might push it to a fork. I don't think that the code quality is enough for a pull request (Java and Android apps aren't my bread and butter :)), but it maybe is a starting point.

So the workflow for me, after I am finished doing an exercise, is:

  1. Press Checkmark.
  2. First pop-up opens asking me how many reps I've done.
  3. [If I save] Second pop-up opens asking me if I would like to change my weights.
  4. After that it updates the template and the current entry and lets the latter to complete.

@brodeurlv
Copy link
Owner

A new checkbox in the record editor will now allow the user to also update the program.
Will be available in next release.

@BeatLink
Copy link

Awesome!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants