Begin to fix Ring-KDE UX

Elv1313 . elv1313 at gmail.com
Wed Dec 5 03:39:00 GMT 2018


Hello,

Ring-KDE is a multimedia communication stack intended to be used for
use cases such as Plasma Mobile phone/dial app and a Skype like
platform for one-to-one chat or small group conferences. It focuses on
audio and video. Chat should be well supported too, but it isn't
competing with Telegram/Matrix/Mattermost/Discouse use cases. I am
mostly alone working on this so it's impractical to have grand plans
to 'konker' the world because there is only so many hours in a day.

The current "design" (or lack of) is a patchwork of incompatible
concepts. It predates many technologies such as QQC2 based Kirigami,
qtquick-controls2-desktop-style and some interface code goes all the
way back to KDE3.

Here's some images from an older version and the release announcement

 * https://imgur.com/a/ocrod
 * http://elv13.wordpress.com/

It can split the mess in 5 parts

## The sidebar and header

They were never intended to be more than temporary solutions until
Kirigami catch up, which it mostly did by now. This should be a fairly
low hanging fruit to fix. The sidebar has a timeline and optionally a
call management GUI, an history log, a contact list and a bookmark
list. The sidebar itself is just plain ugly and I am open to
suggestions and design how to Kirigamize it.

The header is a bit more complex. It has the photo/name, a spot to
report errors and 4 buttons for the 4 main action of the app. This is
where is hits a bit of a Kirigami limitation. There is 4 main actions
instead of just one. In theory a fifth would be file sharing, but I am
not convinced it deserve to be a main action. The other 4 are mostly
non divisible. The error is also very, very important because GNU Ring
uses a distributed network instead of a central server, so it is a lot
less stable than a walled garden or federated service. This is mostly
an UX problem as most issues can be painlessly mitigated as long as
the user is kept in the loop about the state of the app.

The last header and sidebar problem is of course scaling to the mobile
form factor. Currently it will display the buttons in a line when
there is enough space, then move to a justified grid then move to an
iconified line as you resize the application smaller and smaller. It
/works/ but again a more Kirigamized solution is probably preferable.

These components are a rather high priority to redesign.

## The timeline and call management UX

They were designed with the input from Uri Herrera (from Nitrux) and
in themselves have a rather coherent UX, but it clashes badly with
Kirigami. The general concept is based on cards drawn with outline. A
timeline is a line with little circle in them and have cards attached
to them.
What is time based has that dotted line and what isn't doesn't. Many
operations such as sending messages or calling will have timelines to
track they progress and potential errors.

While it eventually will have to evolve into something else to bring
some consistency to the whole package, I consider good enough for now
and there is worst disasters to solve.

## The multimedia canvases and account wizard

Another incompatible but in itself not all that bad blend of whatever
my sponsor (BlueSystems) wanted to use as a blueprint. At some point
it will require a lot of work to Kirigamize and make everything
uniform. Again, this isn't the top priority, but inputs are welcome in
this area.

## The contact management GUIs

That really need love. Starting from scratch with a better vision is a
possibility. They were bolted on to keep everything working when
porting from QtWidgets/KDElibs. Some other GNU Ring clients removed
them, but some users actually switched to Ring-KDE because I vowed to
support this. It can connect to Akonadi, Evolution, Apple AddressBook
and Android contacts. That in turn can connect to enterprises
groupewares. Because Ring isn't the most popular platform, integration
with the "real world" is rather important, even if a bit cumbersome.

## The configuration dialogs

This is where I will spend my time next. They are currently using
QtWidgets and are very old. They need to be ported to Kirigami to
release on Plasma mobile.

There is also the very bad problems that the protocols used by GNU
Ring are Internet standards and they have **mandatory** network
settings. While 99% of the userbase will **never** have to mess with
them, they cannot be omitted or dumbed down. Anyone in a school
network or some developing world countries will need them. They are
also mandatory to connect to about a thousand existing service
providers for features like "real phone calls" or Matrix bridge to
work.

So the idea is more about figuring out how to hide them without making
them impossible to find. Some competing software using those protocols
work around this issue by having built-in templates for most service
providers with the right settings preselected. However I don't have
the manpower to manage and maintain such subsystem for now, so while
better then showing a thousand checkout, it isn't practical to
implement.

You can get Ring-KDE 3.0.0 AppImages on download.kde.org (with the Qt
Fusion theme because that's what's compatible with the technologies
used to generate that AppImage) or on Neon using system packager.
3.0.1 exists and uses newer QtQuick technologies to speed-up some
bottlenecks. However it regressed left and right so it is not a very
good base for UX mockups.

Potential roadmap:

 * Get rid of the last QtWidgets components such as the configuration system
 * Redesign the header and sidebar to be less ugly
 * Do a round of focus on the mobile use cases

If someone wants to spend some time working on some design elements or
icons, this would be very welcome. A global "redesign everything" is
currently out of the question because it would take time I don't have,
but something iterative is the way to go.

A second potential path is the break Ring-KDE in smaller "apps" and
focus on each use cases individually.

Cheers,
Emmanuel Lepage


More information about the Visual-design mailing list