mu-editor / mu

A small, simple editor for beginner Python programmers. Written in Python and Qt5.
http://codewith.mu
GNU General Public License v3.0
1.4k stars 434 forks source link

Suggestion: Clearer UX for Files/REPL/Plotter and other UX bugbears #609

Open Gadgetoid opened 6 years ago

Gadgetoid commented 6 years ago

Now that the Plotter feature has been added, there are 3 buttons crowding the top bar that are mutually exclusive, but this mutual exclusivity is in no way alluded by the visual design. As much as I hate being the one pushing for better aesthetics/usability- specially when I'm not doing so by way of a PR- it's often overlooked on OSS software projects, so I'm going there!

My proposal: Files, REPL and Plotter should be removed from the top bar, and added as mutually exclusive tabs immediately above the panel which they control.

Yes I appreciate when a micro:bit is not present the current behaviour of popping up a dialog reading "Could not find an attached device" would need to change to facilitate this.

Perhaps a periodic poll for an attached device should happen in the background, and be illustrated on the front-end.

I believe moving these commonly-used buttons away from the red-button-of-doom that is "Flash" will also greatly help workflows that involve flashing a main.py and library.py files, since currently I very often accidentally hit Flash and proceed to lose yet another clump of hair ;)

The top bar is also pretty crowded, dauntingly so, and anything removed from here and placed in a more intuitive location would be a huge win for general usability. - Zoom In/Zoom Out/Theme/Mode are probably all better placed in a general "Options" modal for example.

While I'm raising these- it's also not obvious that the "Check" button is a toggle.

ZanderBrown commented 6 years ago

My proposal: Files, REPL and Plotter should be removed from the top bar, and added as mutually exclusive tabs immediately above the panel which they control.

Now micro:bit mode is inconsistent from other modes and we have the clutter of another tabbed pane, also Flash is also mutually exclusive so would Flash be on it's own tab as well?

(Don't mean to be negative here)

Perhaps a periodic poll for an attached device should happen in the background, and be illustrated on the front-end.

We already do this, switch to Python mode then plug in a micro:bit. Magic.

I believe moving these commonly-used buttons away from the red-button-of-doom that is "Flash" will also greatly help workflows that involve flashing a main.py and library.py files, since currently I very often accidentally hit Flash and proceed to lose yet another clump of hair ;)

With the new flash system this should be less of an issue (fs isn't wiped anymore)

The top bar is also pretty crowded, dauntingly so, and anything removed from here and placed in a more intuitive location would be a huge win for general usability. - Zoom In/Zoom Out/Theme/Mode are probably all better placed in a general "Options" modal for example.

I agree it's pretty crowded and personally I prefered the mode switcher in the status bar but we found it wasn't very discoverable, something that would be worsened by putting it inside a hypothetical options dialog

Zoom In/Out should remain on the toolbar, they are one of our main selling points so hiding them wouldn't make much sense. At this point removing Theme would be silly as you would be replacing it with an Options button to then change the theme.

While I'm raising these- it's also not obvious that the "Check" button is a toggle.

Is it a toggle button? (have I missed something?)

Gadgetoid commented 6 years ago

Could you move the "Flash" button to another application, and then launch it into the sun? :D :D

Flash is also mutually exclusive so would Flash be on it's own tab as well?

In my experience "Flash" has always been happy to trounce whatever you're doing no matter what mode you happen to be in. Less mutually exclusive, more mutually assured destruction perhaps? :D This is in stark contrast to the other mode buttons, which always complain that "You can't do X you must stop doing X before you can do Y". This fits a mutually exclusive tabbed pane pretty well, but right now the "Oh drat I forgot to press X so I could press Y" is a little clunky.

With the new flash system this should be less of an issue (fs isn't wiped anymore)

Good point! I've actually known this was in the pipeline for a while since it's been my single biggest frustration since day one- most particularly because it's currently virtually impossible to- for example- ship a binary example with libraries bundled.

The new- non destructive -flash will be glorious. There's just something about that "Flash" button that draws my cursor to it like a magnet.

we found it wasn't very discoverable

Is there any need for the mode switcher to be discoverable? How often is the average beginner going to switch modes?

Zoom In/Out should remain on the toolbar, they are one of our main selling points

I'm surprised by the popularity of Zoom In/Out. Isn't that the sort of thing you set once and leave? Or is this keeping educational setups in mind where multiple users may be sharing the same software install and have different needs?

It probably goes without saying that the things that bug me are specific to my usage pattern, and to how I'd want the end-user experience to be for a certain subgroup of people. I appreciate you're probably serving a much wider audience than I comprehend!

Is it a toggle button? (have I missed something?)

Yeah, hit "Check" once and it shows the errors, hit it again and it hides them! At first I was a little "Oh cripes, now I've got to use the editor with all this text everywhere" but then I just clicked it again and all was well.

Thanks for your responses!

dybber commented 4 years ago

I want to chip in here. The mutual exclusivity thing is also confusing for my students, and apparently not easy to figure out when on their own.

I think a better option would be to not disable buttons, but display a warning when a student e.g. tries to go from the Files pane to the REPL/Plotter. Perhaps only, if there's an active operation (e.g. a file transfer), however, when moving from the REPL to the Files pane it should always ask: "Are you sure you want to close your current REPL session and open the Files pane?".

Regarding Zoom: I use it mostly while teaching, so students can better see what I'm doing on a projector, so I often Zoom in at the beginning of a class and zoom out again when I'm disconnected from the projector.