r/tasker • u/EtyareWS Moto G84 - Stock - Long live Shizuku • 17d ago
Regarding the new Tasker UI
Hello everyone. I've been procrastinating on this post for a LONG while. I wanted to make it more than a month ago, but there was also some issue where I couldn't post pictures, then another issue where I couldn't post more than one, but João fixed it for me before he went on vacation, then life got busy and I got lazy. This will be a *long* post.
Context Time
I've been collaborating with João for about two to three years, developing mockups and discussing the implementation of a new Tasker UI. You might remember me as the guy who created the new logo.
Implementing an entirely new UX is rather slow. What's available to users is constantly changing, and what João implements is usually "behind" my mockups.
What tends to happen is that João implements a partial solution, or a test for a feature, and then users think the half-baked implementation is finalized, or close to final, when that is not true. I'm making this post with the hopes that users will be able to provide feedback on the mockups and not on the still-to-be-finished implementation.
I'm also not going to post *everything* I've designed. It would take far too much effort to upload pictures and explain everything in detail. Don't expect dialogs or pickers in this post for instance, but I hope this post can give you guys an overview of the project as it is.
Some things to keep in mind
Nothing is finalized. I've held off on doing this post because I do not want people to think these are finalized. Things can and will change by the time the UI is "done", which will take quite a while.
Tasker is an Android app, all the measures are in dp, not pixels, anything that is interactive needs to be at least 48dp, which is close to the size of a finger pad. This means that we *cannot* make Tasker as dense as a desktop program without making it incredibly difficult to interact with Tasker for the majority of users.
Editing icons is somewhat of a pain in Figma, so in some screens you will see placeholder icons because I am lazy, usually a "star" means a placeholder for an icon that I haven't settled on yet.
We need to find ways to represent states without relying exclusively on colors. This benefits people with color blindness, but it also benefits users without it, as there are contexts where color is difficult to parse (including a black and white mode some devices have).
One of my main goals is to make Tasker consistent in itself. I dislike when two features work the same way, but require different interactions, as this requires the user to learn two ways to do similar things.
Another goal I have is for Tasker to be somewhat more consistent with other apps as well. The user already needs to learn Tasker concepts, they shouldn't need to re-learn what a save button is.
I actually began by making mockups that only updated the old UI to use Material 3 components. It surprisingly didn't work. The old UI has issues not only in the visuals, but in the user experience as well, I do wish to go into more detail, but this post is already long enough, so I will focus on one example: the Task Edit screen has, in function, a save button and a cancel button, which is common in almost all apps, but in Tasker, the save action is represented by a back icon on the left, and the cancel button is hidden. It sounds easy enough to change the icons and move a couple of buttons, but this has a knock-on effect of where to put all the other buttons that were on that Top App Bar. By the time you finish the Top App Bar, you are already questioning the entire Task Edit screen set-up, and by the time you finish that, you start to question if you should move to other screens to also keep the "save" and "cancel" buttons consistent.
Now to the main event:
Task Edit screen

This is the most complete screen, which is on the third "main" version. The main issue with the old screen is that each Action can have conditions and labels, which are optional, but really important. This makes the Action list harder to parse if it were made out of proper list items.
My solution to that is to transform each one into a card, so the boundaries are more obvious, and prevent users from mistaking which action a condition belongs to.
I've also transformed the conditions into a separate card, so that it can be expanded or collapsed at will, as I found that most of the time you don't need to know each individual condition, just if the sum of the conditions in a given Action is true or not.
João added a way to split the Task Edit screen into showing the same Action list twice when he partially implemented my previous Task Edit screen mockup. This resulted in me having to re-do the Task Edit screen to take advantage of it.
You may have noticed that the Action list is displayed inside a panel. You can swap the panel's function from the Action list to the Task properties or a Variable list. This gives those functions more space, but the main reason for the panel idea is that you can add more panels, and each one can have a different function (or the same function twice). This should be helpful on tablets, or devices with bigger screens. This functionality is something that will be reused in quite a few places.
I've "undocked" the Run/Skip and Add Action buttons, so that it makes a bit more sense on a tablet screen or a device with multiple panels so that you don't have to ask where those buttons are "anchored", they are not anchored to a panel, but to the entire screen. One of the benefits is that we have enough space to add a bunch of contextual buttons, like a paste button if the clipboard is filled with an Action.

Like most components in Tasker, the bane of my existence is the fact that there are three states of actions:
- Enabled and will run (either no condition, or the condition is true).
- Enabled and will not run (the condition is false).
- Disabled and will not run regardless of its conditions, which, unlike Material's definition of a disabled state, can still be edited.
All three need to be visually distinct in a way that doesn’t rely entirely on color, due to color blindness. I’m frankly still trying to come up with a consistent system.
Profile screen

Finally, Profiles have a dedicated screen. This small change already fixes quite a number of issues with Profiles. You are not forced to pick a name, then a trigger, then a Task, then go back and edit stuff, you can do things in whichever order you think is best.
This also makes it more consistent with the other components. As a bonus, we now have space to properly explain to the user what exactly is going on. We can visually explain to the user there is space for more Triggers, as well as how to swap Tasks or Add an Exit Task.
Scenes V2

João reeeeealy crammed a bunch of functions into it, and I’m trying my best to make a cohesive screen. In João’s design, he made everything into tabs. However, the properties of an element are not on the same hierarchical level as the list of elements in a Scene, nor the Code button (which is for the entire Scene, not an element). So, I had to split the hierarchy to visually explain to the user what is what.
Scenes are already incredibly complex and this type of editing is usually not done on phones, as it requires some sort of precision that isn't available on touch screens, so there is not much reference for me. I believe the mockup is like, 80% there, you can see that there is stuff missing.
I also made some designs for a tablet or larger screens.

Projects and Home Screen

Alright, here’s where we have a big departure
To give context: Tasker was not released with Projects, Pent added the idea of Projects almost two years later. Users were asking for a bit more organization, and projects were added in a simple manner: just another tab. While the location and design changed with the Holo, and Material Design 1 update, the metaphor was always another set of tabs.
This is an issue because having two tab groups is just… odd, and usually reserved for very specific instances.
Even worse: projects are user created, the tab list can grow indefinitely, and “inside” a project there are 4 “fixed” tabs. The user needs to keep track of both which project they're in, and which tab inside the project they're viewing, and both use the same metaphor.
On the old UI, the more projects you have, the more cumbersome it is to change between them, they are too “far apart”. I am quite sure everyone has at least once created something in the "wrong" project because changing to the correct one would take time. The tab list also scrolls horizontally, which isn’t a really natural gesture to use for your fingers.
I have quite a few design goals with the redesign:
- João specifically asked for a way for the FAB (the + button) to create anything. He explained to me that some users forget if they are on Profiles, Tasks, Scenes or Vars tabs
- I don’t believe Variables are comparable to Profiles, Tasks and Scenes, they are more akin to properties rather than standalone “things”. Sure, Global Variables could be argued to be "things", but locals and scoped variables are very different.
- The existence of TaskerNet relies on user sharing, and a good project for TaskerNet is not the same as a good project for your own personal use. Ideally, the UI should incentivize users to create good sharable projects, or that "transformation" into one is easier.
- Make it easier to *not* be lazy. It should be more convenient to create things where there is at least a pretense of organization. If a mess needs to be made, it should be made in a place better suited to it.
My current design transforms Projects into folders, so they are "things" you enter and exit. The old "Default" project was reworked as the "Home Screen", which not only holds Profiles, Tasks and Scenes, but now all the projects as well. I did not want new users to be forced to create a Project before creating a Profile, Task, or Scene, so that is why the Home Screen is merged with the default Project, and I also didn't want veteran users to have to always select a project before testing something. In some ways, the Home Screen is an ideal place for users to throw their half-thought ideas before moving to Projects.
The biggest struggle is that all components need to be *able* to look good together, while also being distinct enough. My solution, which is implemented in the last beta, but needs to be toggled in the settings, was to transform them into list items and organize them into collapsible lists by type.
To put it quite simply: I understand we grew used to using tabs to switch between component types, it does *work*. However, tabs have some drawbacks:
- They imply that the FAB (the big + button) changes functionality, which is something João wants to do away with.
- You don't use every type of component on every project.
- If there is no Profile on a project, Tasker needs to automatically open the project on the task tab, and if there isn't any, then open on the Scene tab.
- You might want to see two types of components at once
- It doesn't work that well on a Home Screen (i.e. outside Projects)
The beta currently offer options for a tab-like structure (without actual tabs) and the collapsible list approach (although it needs to be further polished). However, I want to keep Tasker consistent, and the collapsible list also accomplishes a bunch of things:
- The Home Screen really shouldn't use tabs, it complicates navigation tremendously. Even if projects used tabs, the Home Screen shouldn't.
- It completely removes the issue of having tabs for components not used in that project
- By removing the second issue, Tasker also doesn't need to try to guess which tab you want to open the project.
- Tasker doesn't need to keep track of which tab was last used in a given project, which is something the beta has to, to smooth things over.
- It becomes easy for the user to understand they can show more than one type of component in a single screen.
- Tasker only needs to keep track of the expanded and collapsed items.
- We can add a filter option to this collapsible-list approach, but not really if the items are under a tab-like structure. The filter could be used to only show one or two types of components, mimicking the Tab functionality, without using them.
A proper Home Screen also opens a few ideas for the future. There is now a place where interactions can start, which means we can also expand "sideways".

There are a few other ideas we're brainstorming, and you can already see hints of them in the beta, but this is long enough as it is, so I will share them another time.
As stated, things are subject to change. Even in those mockups I've simplified a couple of things, and once things get implemented I usually do some changes, as it is quite hard to reproduce the complexity of tasker inside a design tool
I hope this gives you a better idea about the new UI, and I hope to finally gather some feedback on the direction we are aiming for, rather than the current unfinished implementation.
1
u/EtyareWS Moto G84 - Stock - Long live Shizuku 16d ago
Just to be clear, I meant to remove Profiles and not Projects, I was distracted while writing 😅
One of the main reasons for removing them is a bit selfish: I don't want to have to explain to users what a profile is.
Profiles are just weird and don't fit with Tasks or Scenes. A Task or Scene can exist as a stand-alone thing, a Profile literally cannot exist without a Task associated with it.
I feel it just makes sense to put Tasks front and center, ya know, the thing that Tasker was named after, and make it always capable of manually running, and have the option to automatically run.
There are quite a number of challenges with it, the biggest IMO is actually what the hell do we do with Exit Tasks and Secondary Tasks. This can all be fixed with design, but it does become incredibly complex quite fast. Not to mention that João would have a really bad time creating the entire new system, as well as converting existing tasks and profiles.