Roster

From XMPP WIKI
Jump to navigation Jump to search

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".

Features

  • Multiple JIDs may belong to the same user. XEP-0209 makes it possible to combine these within one contact.
  • XEP-0145 lets you add a personal note about a contact, similar to Discord and Slack.
  • vCard4 support: XEP-0292
  • Invitation system: in case a contact email or phone number is available without a JID, user might invite that contact via XEP-0401.

Roster groups

Roster entries are organized in groups (XEP-0144). 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.