Difference between revisions of "Usability/Roster"

From XMPP WIKI
Jump to navigation Jump to search
m
(Add ModernXMPP terminology)
Line 1: Line 1:
The roster is the entry point for the user to their contacts. It is thus a key part in the user experience of any XMPP clients.
The '''roster''' or '''contact list''' is the entry point for the user to their contacts. It is thus a key part in the user experience of any XMPP clients. [[ModernXMPP]] suggests using '''Contact list''' instead of "Roster".


= Roster groups =
== Roster groups ==


Roster entries are organized in groups. There are two fundamentally different ways to model roster groups in a user interface.
Roster entries are organized in groups. There are two fundamentally different ways to model roster groups in a user interface.


== Hierarchical model ==
=== Hierarchical model ===


One way is to organize contacts in a tree-like (possibly nested, see [https://xmpp.org/extensions/xep-0083.html XEP-0083]) structure, where contacts are nodes which are children to group nodes. If a contact is present in multiple groups, it is is also represented by multiple nodes in the tree. A contact that is not part of any groups is shown at the highest level of the hierarchy or in a "non-group" group with a generic name.
One way is to organize contacts in a tree-like (possibly nested, see [https://xmpp.org/extensions/xep-0083.html XEP-0083]) structure, where contacts are nodes which are children to group nodes. If a contact is present in multiple groups, it is is also represented by multiple nodes in the tree. A contact that is not part of any groups is shown at the highest level of the hierarchy or in a "non-group" group with a generic name.
Line 11: Line 11:
This is the traditional way to do things.
This is the traditional way to do things.


== Tag model ==
=== Tag model ===


Another way is to treat "groups" as "tags". Contacts are then shown in a flat list and the tags attached to them are shown next to the contact. The filter capabilities of a collapsible tree structure is replaced by allowing to filter for (possibly multiple) tags.
Another way is to treat "groups" as "tags". Contacts are then shown in a flat list and the tags attached to them are shown next to the contact. The filter capabilities of a collapsible tree structure is replaced by allowing to filter for (possibly multiple) tags.


[[Category:Easy XMPP]]
[[Category:Easy XMPP]]

Revision as of 16:54, 26 June 2024

The roster or contact list is the entry point for the user to their contacts. It is thus a key part in the user experience of any XMPP clients. ModernXMPP suggests using Contact list instead of "Roster".

Roster groups

Roster entries are organized in groups. There are two fundamentally different ways to model roster groups in a user interface.

Hierarchical model

One way is to organize contacts in a tree-like (possibly nested, see XEP-0083) structure, where contacts are nodes which are children to group nodes. If a contact is present in multiple groups, it is is also represented by multiple nodes in the tree. A contact that is not part of any groups is shown at the highest level of the hierarchy or in a "non-group" group with a generic name.

This is the traditional way to do things.

Tag model

Another way is to treat "groups" as "tags". Contacts are then shown in a flat list and the tags attached to them are shown next to the contact. The filter capabilities of a collapsible tree structure is replaced by allowing to filter for (possibly multiple) tags.