Page MenuHomeSolus

Revising the Software Center UX
Closed, ResolvedPublic

Description

This issue is to track and exchange usability problems, ideas and inspirations to improve the overall user experience (UX) of the Software Center in Solus.

Current Software Center:

Initial post on G+: https://plus.google.com/+Solus-Project/posts/aWmx5FtHhPe

Currently collected input (through G+ post):

  • No ability to see what is installed at a glance (one has to click on a package)
  • Third Party section makes problems (long installs and no automatic updates)
  • Seperation between "GUI programs (aka: end-user progrmas) from CLI and/or packages (aka: developers programs)" would be nice.
  • No immediate differentiation between installed and non-installed packages (a filter could be an option)
  • Updates in the background and better progress UI (maybe with dynamic notification)
  • No install queue (only allows one installation at a time)
  • Enhanced keyboard navigation
  • Headers! (aka "Featured Apps")
  • More intuitive search

Event Timeline

This comment was removed by GrisuProjects.

From G+ (for reference):


Ryan Gorley

Here is a concept in progress. The attempt is to imagine a software center that is sleek, efficient, and 100% Solus. The prominent search/filter and layout are inspired by the Budgie & Brisk menus, the breadcrumb navigation from Nautilus. A banner would give us some space to have fun. Because most packages don't have good icons, I'd probably de-emphasis those, except perhaps in the case of the featured packages. I'm trying to think through the rest. Not sure about third-party yet. [...]"


Christian Kaindl

Me: I think the search bar should be located a bit more visible (clicking on "Search" in the sidebar does feel a bit unnatural). Also, installing multiple packages at a time is super cool and could be done via a "Install Que" button which just displays installation/update progress.
Ikey ( +Solus :P) mentioned something with stats which is a very interesting idea I think.

So my idea was to have a (kind of) fancy landing page with the info the user needs (e.g. updates). Some buttons should be always visible (thus I have put them in the toolbar) like search, settings and the update/install queue.
Other buttons are visible only on the landing page like 'Installed Packages' and 'Updates' (or 'Recently updated' if there are no updates available). These are functionalities that I think are not needed spontaneously while the user is doing something else in the SC, thus not needed to be in the toolbar.

On the big left canvas there could be categories or featured packages displayed or something like that to help the user find new and eventually useful applications.
Here's a super rough picture that I directly exported from my mind:


Christian Kaindl

Throwing in an improved version of my last comment... Now with a bigger featured header

svg-version

Personally I don't like the "featured app" idea at all, it would make me very suspicious because:

  • it would either mean that Solus make some partnerships with some editors to give more visibility to their app. I really don't want this kind of commercial approach
  • it would give me the feeling that some kind of telemetry is enabled to determine my habits and make some suggestions.

What would be better is to suggest some applications that goes well together for example you search for an application that uses a card reader, the software center shows the card readers drivers.

I am a little bit surprised by "No ability to see what is installed at a glance (one has to click on a package)". On the screenshot just above this statement, you can see the Installed menu item on the left navigation pane !

Personally, one thing that I miss, is to see the category when you browse the installed applications or when you use the search. This would allow to browse the category to quickly find similar applications.

I am a little bit surprised by "No ability to see what is installed at a glance (one has to click on a package)". On the screenshot just above this statement, you can see the Installed menu item on the left navigation pane !

What is meant by that is, for example when you make a search or browse the categories you have to click on a package to see if it actually is installed. It would be nice, I think, to have a little badge or something like that next to the package. Otherwise you'll have to click on that package and then see if it has the "Uninstall" button; or you, as you mentioned, click on the installed menu entry and scroll for it (because there is no filter).

Personally, one thing that I miss, is to see the category when you browse the installed applications or when you use the search. This would allow to browse the category to quickly find similar applications.

This is a really good idea :P


Regarding the featured app; Your point is very real IMO, but still I find it a bit odd to have the categories be the only way of "exploring" new packages. Maybe it could be something else that does the trick.

I also do not like the "Featured App" theme, all should be equal.

A de-select button, when install is not relevant to hardware onboard.

baimafeima added a subscriber: baimafeima.EditedJun 12 2017, 3:01 AM

Regarding the featured app; Your point is very real IMO, but still I find it a bit odd to have the categories be the only way of "exploring" new packages. Maybe it could be something else that does the trick.

I agree with your point that there should be a way of discovering new packages beyond a topic-based categorization system (e.g. Internet Software, Office Software, etc.) but I disagree with the concept of having featured apps.

I wrote about this in a lengthy piece here: https://github.com/solus-project/solus-sc/issues/57

I prefer @kyrios123 suggestion over featured lists. My own idea would be to offer two different discovery modes in the software center: a topic-based one (as is currently implemented but with more categories) and an activity-based one: how to edit a picture, how to write a document, how to encrypt data, etc. Software suggestions could then be centered around these desired actions/activities/goals/processes or whatever to call them.

Regarding Christian Kaindl's last mockup I feel that it resembles Gnome Software Center too much. This is something to absolutely avoid. I have to say it again, but please no featured lists. It looks ugly and there are better ways to improve software discoverability. Otherwise I like some of your Budgie designs a lot.

@GrisuProjects As a part of this task please review the additional concept and comments found here: https://plus.google.com/105767379162162441315/posts/D4PFU8rzLeg

I should share that in direct email back-and-forth @ikey had the following to say about it:

I do like where it's going :) I'm just wondering what we do with the whole sidebar situation - do we need them permanently visible? etc

I was awaiting his feedback before spending more time on it, since he hasn't had much to say on Google Plus about it and is going to be writing the code. With that out of the way I was going to start doing more this week. Obviously this mockup is presenting only one of a half dozen important layouts, so it's not complete, but I do think the UI language taking shape blends with the Solus approach, which is that it:

  1. Puts search at the forefront
  2. It's about reducing the number of steps/clicks to do what you need
  3. It's familiar and intuitive, but it's not identical to anything else

I'm sure your free time is as scarce as mine, so I'd rather not duplicate efforts here. What are your thoughts on this different approach? Are you interested in consolidating our efforts on this?

Craig-toyoracer added a comment.EditedJun 12 2017, 5:00 AM

I do like the layout and style Ryan.

May I suggest since we are in the Software Center the side bar list can be just one word to keep things neat, clean and simple. ( Desktop, Gaming, Internet, Multimedia, Office, Programming, Security, System.)

A thought for the top panel, could be a simple overview of the update, eg: new kernel, wifi drivers, games.

ryangorley added a comment.EditedJun 12 2017, 5:19 AM

May I suggest since we are in the Software Center the side bar list can be just one word to keep things neat, clean and simple. ( Desktop, Gaming, Internet, Multimedia, Office, Programming, Security, System.)

I would personally be okay with that if the labels are clear enough. It's always a balancing act between being concise and clear. Bear in mind that the nav tree will expand one level further within each of these categories. One way or another, by this method at least, a good portion of real estate is going to be taken by that left panel. I'll need to drop some really long names in there to see at what point this layout breaks.

A thought for the top panel, could be a simple overview of the update, eg: new kernel, wifi drivers, games.

Please explain what you mean a little more, I'm not sure I'm following.

GrisuProjects added a comment.EditedJun 12 2017, 12:19 PM

thanks @ryangorley thanks for posting your updated ideas.

I do think the UI language taking shape blends with the Solus approach, which is that it:

  • Puts search at the forefront
  • It's about reducing the number of steps/clicks to do what you need
  • It's familiar and intuitive, but it's not identical to anything else

Yes, it needs these rules and I am often times again surprised how well the Solus UI works with its simplicity.

Regarding Christian Kaindl's last mockup I feel that it resembles Gnome Software Center too much.

Thanks for pointing that out, wasn't aware of that (don't even know how GNOME SC looks like). It defenetly should look more like Solus. But this is also a more general question of Budgie 11 Design, as Nikki Kononov (on G+) pointed out:

Since Budgie is switching to QT5 how does that going to affect headerbar and the ability to go back/forward? All these buttons will have to be moved down to the separate menu below windows controls so might not look as sexy as it does right now with gtk headerbars. Something to keep in mind.

About Third Party, as far as I know it is already planned to remove the category completely and blend them in like any other application/package (Flatpak will be used for that). So "Third Party" will fall out of the sidebar.

In general (especially on the landing page) I think there should be no sidebar as it is not really needed and oftentimes seems unnecessary to have one (also because most of it is empty). But I can imaging having a sidebar in a "category" view being useful (like in the old Solus SC days :P)

I like the idea of being able to remove several things at once although I don't think it is needed and is unnecessary.

Also the "Install" button is redundant IMO. I think having a install queue and having Software you want to have be added to it (they begin install as soon as they are added) makes more sense (a bit more like in elementaryOS's AppCenter). I'll show you what I mean with that with a picture later on.

One last thought:
It maybe would be funny to have (in addition to only categories as exploration) a "Feeling Lucky. Take me Somewhere" button :D

A thought for the top panel, could be a simple overview of the update, eg: new kernel, wifi drivers, games.

Please explain what you mean a little more, I'm not sure I'm following.

The panel could be an announcement screen , This update features "kernel 4.12.1 " or "after a 10 year wait GIMP 3.0 " or "Ghostbuster, keeping the Bugs at bay for some clear sailing ( just a boring bug-fix update )"
Away to give the SC some piazzazz in a useful manner.

As for needing the sidebar, how about a drop-down menu from a large button below Search Bar.

ryangorley added a comment.EditedJun 15 2017, 7:03 PM

Just FYI, I posted a modest update on Google Plus here: https://plus.google.com/105767379162162441315/posts/59jpvtVw3Jy

@GrisuProjects

About Third Party, as far as I know it is already planned to remove the category completely and blend them in like any other application/package (Flatpak will be used for that). So "Third Party" will fall out of the sidebar.

That's my understanding. I'm only including it as a legacy thing. I think some kind of tag should designate flatpak packages in the larger library when that becomes a reality.

In general (especially on the landing page) I think there should be no sidebar as it is not really needed and oftentimes seems unnecessary to have one (also because most of it is empty). But I can imaging having a sidebar in a "category" view being useful (like in the old Solus SC days :P)

For the sake of speed and efficiency I am proposing the end of the landing page. I'm sure that will draw some criticism, but here is my logic:

  1. If a landing page is used for some kind of grid of categories, as currently, it is far less efficient than direct access from the sidebar category tree. One could make the case that icons/graphics are a wayfinding aid, but that argument breaks down when you cannot come up with distinctly different and intuitive icons/graphics for every category, which I think is likely the case.
  2. If a landing page is intended to showcase featured applications, it requires everyone to navigate past it, even if they're not interested. The same functionality can be done just as well at the category level with a featured package in the banner from that category, but in a way that less intrusive and can be completely disabled if desired.

Also the "Install" button is redundant IMO. I think having a install queue and having Software you want to have be added to it (they begin install as soon as they are added) makes more sense (a bit more like in elementaryOS's AppCenter). I'll show you what I mean with that with a picture later on.

The currently proposed method really just tries to bundle the interruptions to the end of the browsing experience, rather than having each action slow things down. I think it would be nicer to have updates/installs/etc. happen in the background while browsing as well. As this isn't how the current software center works, I'd have to defer to @ikey on if that is reasonably doable.

@Craig-toyoracer I've been thinking about your suggestions on collapsing the sidebar into a menu. I think in the category/list view it's not so much a problem, because more horizontal real estate doesn't really give us anything. At the package level it will go away for sure, because that space will be much more valuable there. That's my current thinking anyway.

@ryangorley that last iteration you posted is beautiful

DataDrake edited projects, added Software; removed Lacks Project.Jun 25 2017, 5:02 PM

Please add a "Drivers" category, with every driver available listed eg: graphics, printer/scanner, bluetooth/wifi, ... etc.

This would save so many new users and me, time solving problems.

example:
The search function in SC for "printer drivers = 2, epson-inkjet-printer-escpr & gutenprint
yet if you actually search - Desktop Core Components = splix & Desktop Libraries = canon-ufriilt-common

Slightly confused here, is the software center planned to be re-written with Qt as part of budgie 11?

Eehhh prolly not tbh - given the other editions are GTK

Tearow added a subscriber: Tearow.Jun 30 2017, 9:33 PM

@kyrios123 This is merely a mockup. We have no plans at this moment in time for purchasing software via the Software Center.

ryangorley added a comment.EditedJul 6 2017, 2:45 PM

@kyrios123 What @JoshStrobl said. Just a placeholder for a possible inclusion at some point. I'm just presenting ideas. Eventually Solus will be popular enough people will want to sell their software on it, right!? ;)

gr00by added a subscriber: gr00by.Jul 7 2017, 9:14 PM

This is an off topic, but I want like to say something...

@ryangorley, I think that creating a market and allowing people to sell & buy their work would be a "game changer". People needs to do what they want, so they'll buy apps. Two conditions must be met - a market and a stable API. Everybody knows that in the Linux world is a chicken&egg problem. Also there are too many libs, frameworks, incompatibilities and no stable ABI.

First, as a developer I'd like to distribute a binary. This is against Linux / FOSS, but I don't care. I'd like to monetize my work in a simple way - sorry.
Second, I want to focus on features but not on the fixes of incompatibilities. So ABI must be stable. OR we can make an agreement - you'll charge a "developer fee", same as Apple does, but I'll distribute a sources compatible with your packaging system and you'll maintain recompiling the package to provide compatible binary (of course API must be stable). Sources will stay unpublished.

I know you're creating a Linux Distro. It is excellent, fresh, fast and I like your ideas. But this is "just" another distro. So maybe it is worth to introduce some business here. You're writing everything from scratch, so there is a room to make such things.

Sorry for an offtopic.

@gr00by You realize that what he is showing is just a mock-up nor is he in any sort of team position to decide how any sort of purchasing, deployment, etc. systems work, right?

gr00by added a comment.EditedJul 7 2017, 9:22 PM

Josh, yes I realize that. Just wanted to share my 2cents. I like the idea of selling & purchasing a software, that's why I've wrote my thoughts. Sorry again for an OT.

No problem, your thoughts certainly aren't falling on deaf ears. Just wanted to clarify things.

dan_ added a subscriber: dan_.Jul 14 2017, 1:40 PM

Along with the "queuing system" for installing, it would be nice to have checkboxes next to the "installed" items that you could deselect multiple items that you wanted to uninstall. Maybe that is obviously implied with the install queuing system, but I just thought I would mention it. :)

@dan_ I think what will end up being the most efficient method is to immediately begin installing (or uninstalling) upon the click of the first item, and automatically queuing subsequent operations. Upon thinking about it harder I could not come up with any reason to batch an operation (i.e. click a bunch of checkboxes and initiate it with another click). If you have a use case for doing so for which that is preferable, I'm interested to hear more about it.

adding to dan's thought,
updating 2 systems, 1 intel; kept lean and basic = deselect all extras. 2 amd, most software and extras = deselect nvidia

Select install and carry on living, not one at a time.

dan_ added a comment.Jul 15 2017, 2:42 AM

@ryangorley I have no problem with the method you have suggested, you still get the same result of installing multiple things without having to wait to click the install button for the next item. I just wanted to say that I hope there is a similar system for uninstalling. Whether it is check boxes or you just continue to click "uninstall" and it ques it up to happen "next" if there is already one item being uninstalled, I don't care.

These are the noteworthy changes, plus some brief explanation:

  1. Font to Roboto and other typographical tweaks. It sounds like Roboto will be one of the defaults on the next release, and it just renders better, so I changed that out;
  2. Added package sorting. It would be nice to not only sort alphabetically, but by the most downloaded, newest, etc. I know there are some privacy concerns about counting downloads, but I'm sure this can be done in a way that respects the privacy of users, while also providing a mechanism to see what is most popular. This view will probably not be so useful when libraries end up rising to the top, but perhaps in conjunction with the prior suggested advanced view toggle that would hide such packages;
  3. Added number bubbles to Updates and Queued. Just seemed like a good indicator add, and a way to make it more intuitively understood that all of the items in the queue can be found in one place, rather than just nested in their categories;
  4. Added global refresh button. Placed this in a relatively prominent location, for hopefully obvious reasons;
  5. Simplified "Community Pick" styling/behavior. Consistency is good. In this case clicking on the icon/text will go to the package, and the download button displays and animates as do list items;
  6. Removed payment related elements. Mainly to remove confusion. Prior mockup demonstrated that it would fit without too much trouble in this layout if added later;
  7. Moved search icon. Tough call, because this whole thing started with search being super prominent, however placing it where it was introduced some interface collisions. Placing it at the top will bring it inline with Nautilus, with its behavior mirroring that as well;
  8. Other minor color tweaks. Added a different default package icon that is square. Made the installation status bar a little more obvious.

The process thus far has been guided primarily by community feedback with my own leanings. Response has been positive, but I think this is at the point I need some official feedback from @ikey and/or any other devs who would actually building this thing prior to moving on to other views/states. Is this something I can get on this thread, or perhaps schedule a chat/call/conference to discuss?

Looks nice.
Regarding the package sorting, this will promote the most downloaded packages but it will also demote the less downloaded applications.
Is it a good thing? I don't know.. because it will promote the most popular apps and it won't give a chance to the less known alternatives as many people will not even have a look at them.

What would be nice imho, would be to find a mechanism to give more visibility to the applications and less visibility to the dependencies (like the libraries, devel packages, ...) that standard users will normally not need to install alone. For example displaying them in light grey in the search results. This could be based on the categories for example.

This is something really confusing for new users (on all linux distributions)... they see many thing they don't have a clue what it is. If you look at the android/apple app store for example, this is better filtered out.

Same could apply with applications related to a specific desktop environment : If you use gnome or MATE, it would be nice to find a way to show that KDE core apps aren't very well fitted for these DE.

ryangorley added a comment.EditedJul 17 2017, 2:52 PM

@kyrios123 What you're describing, in terms of hiding non-GUI applications and categories, is what I was proposing with the "Advanced" toggle on the bottom right. I think that would really make the Software Center more user friendly, even for advanced users who are just browsing. I wouldn't default to sorting by most downloaded, but probably alphabetically, for the reasons you've described.

Personally I'd like to have access to core packages at the lowest level (maybe from shell only). Core/OS packages should provide stability and always successful upgrading (no dependency hell, etc).
Using UI I'd like to install two kind of programs: a system services (like database servers, http servers, app servers, etc) and end-user applications (gimp, darktable, etc).
Dependencies for apps should be solved by flatpak/appimage, and dependencies for services should be resolved automatically (under the hood).

Why? To achieve always working OS upgrade (for rolling release this may be a problem in some cases), and to remove or reduce dependencies for typical desktop users (apps). Services would be for advanced users, who can solve dependency problems by themselves.

Just 5cents...

If in case if this is still being taken in consideration - perhaps it would be helpful to be able to sort the packages, by downloads and/or date added/updated. I would be interested in exploring what new packages were added and try them out. Also having the packages that are already installed be easily distinguished on the list page is a must.
Perhaps an off-topic but would be good to reinforce maintainers to update the change logs from the upstream, I often find the current ones be as simple as "version dump"

JoshStrobl triaged this task as Normal priority.Oct 7 2017, 1:55 AM
JoshStrobl moved this task from Backlog to Improvement on the Software board.
sandrc raised the priority of this task from Normal to Unbreak Now!.Oct 26 2017, 11:58 AM
sandrc lowered the priority of this task from Unbreak Now! to Normal.
JoshStrobl closed this task as Resolved.Mar 15 2018, 3:00 PM
JoshStrobl claimed this task.

Closing task as we're currently working on a new UX for Software Center that addresses many of the issues raised, consolidating tasks over at https://github.com/solus-project/solus-sc