Allow user to create groups of habits #495
Replies: 26 comments 31 replies
-
Can you expand on the advantages of having such a structure compared with having:
That's what I currently do in such cases. The main shortcoming I see is that I cannot compute the stats about the main task directly (in your example, I couldn't get the stats about the "stretching" metatask without computing them myself). Are there others which make you want such a feature? Also, is this not a duplicate of #325? |
Beta Was this translation helpful? Give feedback.
-
The other that I see, and that I would really appreciate would be to have logical relation between habits. For example, in a main task "sport", I would have swimming, bodybuilding, soccer, and more. I physically cannot train 2 sports on a same day without falling apart. Also, thanks for the hard work on this app. I have been using it for more than a year. It is awesome. |
Beta Was this translation helpful? Give feedback.
-
Ok I see, in your example of course you could just track the activity
This metatask system is quite different from what the original post meant though. |
Beta Was this translation helpful? Give feedback.
-
In my opinion this feature seems to be really hard to implement (how to design an unobtrusive UI; calculating the overall score from all the sub-habits; build additional statistics UI for the meta-habit) while providing little value over all. I see your point why this might come in handy but in my opinion the grouping can easily be achieved by assigning the same colour and sorting by colour. |
Beta Was this translation helpful? Give feedback.
-
Don't automatically calculate a score for the main task from its sub-tasks. Every (sub)-task has it's own statistic and the main task has to be ticked of by hand.
If you do that you run out of colors pretty fast and additional colors won't help because they need to be easily distinguishable. |
Beta Was this translation helpful? Give feedback.
-
that means that you would need to check "doing sports" two times? one time because you went to the gym and one time because you completed the group? and if you handle every single sub habit and the group as its own entity by hand I am not able to see any advantage at all over the current version. what I could see working would be a grouping function. so you would be able to assign a habit to a group. the only thing that would do is a visual grouping on the main screen. that actually might be relatively easy to implement and can later be extended to allow for group statistics and such. if that would be enough to solve your problem we should probably close this issue and open a new one with the above mentioned request. keep in mind that I'm not the official supporter of this project though. |
Beta Was this translation helpful? Give feedback.
-
This feature request is somewhat tricky because most users who request it are actually proposing a particular solution ("to create group habits") to a problem that they have never fully explained. There seems to be at least three perceived problems out there:
I am still not convinced that the first problem is that serious. We already have colors, in addition to different sorting and filtering methods. The layout proposed by @hiqua works very well for long lists. If anyone wants to create some compelling user interface concepts, I could change my mind. The second problem is much more serious to me, and I would even categorize it as one of the main current limitations of the app, but we already have an issue for that (#51). The third one looks somewhat interesting, but I would assume only a tiny fraction of users would be interested in it and it would significantly complicate the code. Coming up with an interface for even describing these rules also looks pretty hard. If the rules are very simple (say, the percentage of completed habits in the group), I would be fine with it. This could be implemented in #31 -- after creating a tag, the tag could appear as a "read-only habit" in the main screen, and its score would just be an average. |
Beta Was this translation helpful? Give feedback.
-
I guess it would be nice that the main-task is checked automatically depending on constraints, but it is not that important for me. The real advantage with this would come with complex rules and this might be hard to implement.
With just grouping you don't have a statistic! What I suggest is actually a combination of:
I just quote myself: "If you do that you run out of colors pretty fast and additional colors won't help because they need to be easily distinguishable." Another issue is the limited space for the text, you have two lines and on small screens the text is often cut off if you are using long names as suggested by @hiqua . This makes it confusing. |
Beta Was this translation helpful? Give feedback.
-
@iSoron I can imagine a somehow simple way to design and implement this.
Basically, if this is codded in a generic way that you can create sub-sub-tasks and more. You would be able to create complex rules with basically minimal UI. The difference between this and #31 is that you can check a main task even if a sub task is not checked : I did boxing today, so I check Sport, so my score goes higher, but since Sport is checked, the sub-tasks Soccer, Running and Swimming are frozen, their score does not get lower. I never do Boxing, that's why I do not have an habit, but I wanted to try it. The main problem that I have today the following one : what motivates me is seeing the calendar with checks and grey checks, with a score that goes higher every week, and not being able to group habits makes scoring pointless in some situations.
It makes sense for basically anything, what should I do if I have 2 tasks "learn Japanese: review vocab" and "learn Japanese: complete grammar lesson" like said before. If I go on a trip to Japan, those 2 tasks are going to go down because I didn't "complete grammar lesson" ? Or should I just check them both ? Probably not, a trip to Japan is not a "grammar lesson". But it is still part of "learn Japanese". So a group habit "Learn Japanese" should be checked, and go higher, while sub-tasks are grey checked and score stay frozen. Thanks for the hardwork @iSoron on this app, it has been a life changing for me. I am very excited about the numerical habits of the next release. |
Beta Was this translation helpful? Give feedback.
-
@MohamedKiouaz I very much like this idea. The only really complicated part (for the first working version) would be the implementation of your second point. creating sophisticated rules with subtasks. I imagine that to be quite complicated because every sub task can have different goals. 1: complete 4 times in a week How could the grouping rule look like? 1: check when any subtask is checked (probably the only feasible solution) @iSoron What do you think of this solution. with this approach we could implement the base for all three requirements at once. In the beginning it would provide mostly a solution for the third feature but I can imagine it to be relatively easy to implement a grouping ui for feature 1. the statistics as requested in feature 2 would be basically for free because it will be derived from the checked state of the main task which is known. |
Beta Was this translation helpful? Give feedback.
-
@chennemann I think this might work. Are you interested in implementing it? I would suggest starting from the core classes (org.isoron.uhabits.core.models) and dealing with the UI later. Feel free to submit a work-in-progress pull request, so we can discuss the implementation. |
Beta Was this translation helpful? Give feedback.
-
I'm with @MohamedKiouaz, that would be a flexible and simple solution, but a couple of potential issues came to my mind:
My solution to the first point is to allow only one level of dependency (a task cannot be both a parent and a child) because I think that one of the main strenghts of this app is the immediacy and for the majority of the use cases one will be enough. This approach will be also easier to implement because requires only to track if a task has a parent (and which obviously, see below).
* Note that this only requires that child tasks reference the parent, without the parent beeing aware of it's children. A static assigment will cause a lot of potential troubles when deleting, moving or adding tasks. With this approach the changes are relatively small:
To conclude: for the UI we could just show the children task nested below the parent, a bit shifted to the right. What do you think? Does this proposal summarize the main problems in an intuitive and easy solution? |
Beta Was this translation helpful? Give feedback.
-
Hi guys, Thanks for the replies. I would love to contribute but I have 0 background in Android development. I have a Ryzen CPU so I could not install Android Studio on my computer. Do you know any way to contribute ? Maybe only using the core of the software and a JVM ? |
Beta Was this translation helpful? Give feedback.
-
This would be great to have group or sub habits. |
Beta Was this translation helpful? Give feedback.
-
I'm ok with the habits all being calculated separately, I just would like to basically put habits in folders so I'm not scrolling through a long list. I could have a folder for health (floss teeth), one for symptoms (headache), one for improvement (learn a language, etc), etc. |
Beta Was this translation helpful? Give feedback.
-
+1 for this. I have... 80+ habits abd scrolling through all of them is a hassle. I could turn on the option to hide the completed habits but it is not always that useful, since sometimes I want to complete habits ahead of time or something else and etc. For me only being able to have multiple views that I can easily filter the habits would be good enought. A solution that I thought about it would be:
this would be just perfect for me but that is all I'm interested in. about the calculation of grouped habits/etc I think that going for the easy route of simply calculating an average of the habits grouped would be enough. I really think that calculating the score any other way would be rather complicated and maybe it wouldn't make that much of a difference for most people since the single habits already are being calculated. |
Beta Was this translation helpful? Give feedback.
-
I have ADHD; I have found Loop Habit Tracker very beneficial. However a list of (incomplete) habits becomes difficult for me to manage when more than about a dozen items are in the list at once. Therefore, my problem is best described (by @iSoron) as:
The solution proposed by @hiqua doesn't help for my case, because the issue is caused by the number of items in the list, not by the naming or ordering of the items. @ardydo's use case and requirements seem to match mine quite well (the number of habits I am currently tracking is much lower, but I would like to be able to track more than I do). A working solution for me would meet two requirements: For the first requirement, this could be implemented by either: Option 1.2 is probably the most flexible and general solution, but option 1.1 might be easier to implement and would be useful for users who already use colors as pseudo-categories. However, as @malnvenshorn notes, option 1.1 may become problematic when working with a large number of groups (although if the groups are named, being able to visually distinguish them by color alone becomes less important). The second requirement could be implemented by either: Option 2.1 is currently my preferred option, but I would be open to the other options if other feature requesters prefer one of these of if they prove easier to implement. I imagine the UI for this would look like the mockup below. I have some experience with programming (as a hobby), so I'm happy to try to put together some code for this, with a few pointers. I'm not in need of the aggregate statistics feature, but I can try to write my code in a way that would make it easier for another contributor to add this feature. |
Beta Was this translation helpful? Give feedback.
-
I would be okay with just a simple implementation of having folders/tabs. For example, I'd like to be able to open "Daily" habits folder where everything should be marked, and then I'd like to have other folders such as "Sport", "Studying" where I have habits that are not daily, but I want to get an overview of what exercises I am doing and how often. |
Beta Was this translation helpful? Give feedback.
-
I want a version of this feature so that I can track elastic habits. I coincidentally just found out that the author of elastic habits and mini habits apparently loves Loop, which I also rly like b/c it let's me export my data. Proof he likes the app: HOWEVER, this guy later wrote Elastic Habits, which I really like the idea of, as a better alternative to mini habits, and basically the idea is: These are some of my own personal ideas/notes of examples of flexibility/elasticity horizontally (via activity options) and vertically (via achievement level): Reading: 15 minutes audiobook or 9 minutes kindle or 4 minutes pdf/physical or finish something that takes longer than the mini versions up to the plus option 90 min audiobook or 15-90 if you finish, or 9-45 min physical/kindle (depending on if you finish - also notice how here physical and kindle are lumped together...), or 4-30 pdf (depending on if you finish) Fitness (yes, any single thing from the below list will satisfy the habit for a given day - each option has 3 levels, in order of increasing accomplishment): Or food: Or outside: Social: Plus options: Elite: Tekken: Set up controller/practice mode If already set up, practice kbd/movement or moves/combos for 1 minute Check the Alisa discord and/or Twitter for 1-5 minutes and then close out of that stuff for at least 15 minutes Plus: Try punishment/learning new frame data or other stuff in practice mode for at least 10 minutes Watch or download and watch a tekken YouTube video and then close YouTube for at least 15 minutes Elite: Go to event or something in person (can leave immediately) Play online matches for at least an hour (alternatively, reviewing is fine too, but in that case play at least 5 matches online (or 30 minutes)) |
Beta Was this translation helpful? Give feedback.
-
many great suggestions above. Sport (Legday / Upper body / rest day) That would look like : Sport > etc... wondering if this will get any day (big doubt :)) That said, amazing app ! thanks a LOT for what you are doing ! |
Beta Was this translation helpful? Give feedback.
-
I am with several users here. I would be happy to see a simple UI with Folders and subfolders. I can see the usefulness of calculations at the folder/subfolder level. But the UI change would be my main request. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
@iSoron Is anyone working on this feature? I think it would be beneficial and I would be happy to implement option 2.1 suggested by @530f6caa. |
Beta Was this translation helpful? Give feedback.
-
Hi, currently i am developing on Java spring boot an another thing. My solution was temporary and problematic. My firend programmed it. After that, my android oreo removed uhabits for long time, now i have it again, but I postponed using it. It is useful, thx to developers. I think i cannot help about that. I will try to reduce my habit entries and use it again. I am not android developer. At that time I tried to understand the code with my friend and he did it. But it breaks another things, not a real solution. uhabits is skilled sowftware..
Thanks.
On Sunday, July 7, 2024 at 08:46:12 PM GMT+3, Milan Tom ***@***.***> wrote:
@dharux Perhaps you could open a draft PR with what you have done so far and we can discuss from there.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
@milan-tom I have made a draft pull request with my implementations here. It is very close to completion. Do take a look at it if you are interested :) |
Beta Was this translation helpful? Give feedback.
-
Suggestion: Summarized tracking for grouped habitsFor habit groups that are measurable, e.g. tracked using hours, we could display the sum of the values from all sub-habits in the group. ExampleImagine a habit group for working on a project, with the following sub-habits:
If each sub-habit is measured in hours, the habit group tab would show the sum of hours spent on all sub-habits. Some days you spend more day on one sub-habit then on the others, so a group view ensures progress is tracked holistically. |
Beta Was this translation helpful? Give feedback.
-
I really like your app, but I'm missing this special feature: (sub-) tasks for habits. This feature would really help to manage habits like:
I'd really like to break down habits in tasks and be able to check them separately.
Beta Was this translation helpful? Give feedback.
All reactions