Chat with your friends on top of Matrix engine

# FluffyChat (app)

Authors: tutorial the Ubuntu App Cats
Contact: info@ubports.com
Category: #Utilities
Where to get it: OpenStore


When Canonical launched Ubuntu Touch on the BQ 4.5 they had to make a decision about a messenger app, in response to the practical and ethical issues presented by the dominance of Whatsapp on closed, proprietary systems. The peer pressure from friends and the insistence of some educational establishments and employers that the Facebook owned app must be used are of course still a problem for us today.

The Canonical solution was to go with Telegram instead. The Cutegram client was already established on Linux desktops and that was taken as the starting point for the Ubuntu Touch client. This was the situation inherited by UBports and indeed Telegram is still widely used on our platform. For the first year of operation, the builds relied heavily on back-porting from the Cutegram client but that approach ran into problems because not only was that client lagging around eighteen months behind those available for other platforms but the developers had bowed to that and allowed the project to fade. To give credit where it is due, Telegram have shared with UBports their template for a detailed revamp of their platform, enabling us to jump forward to a version which is as modern as those on other operating systems.

Odoo image and text block

One of the  alternatives which came to our attention is Matrix. Where Telegram boasts millions of users, Matrix as yet counts users in a few tens of thousands but it is founded on Open Source/Free Software principles and the developers share much of our outlook.

The network used by their clients is federated, so while they build the communication mechanism there is no necessity for the flow of data to go through central servers controlled by them. For the moment that is not true of the identity server but Matrix is still at a development stage and the aim is that it will become possible to host an identity server anywhere.

Meanwhile, anyone can create their own home server and run communications through that. UBports has already taken advantage of this and we now run our own home server. This federated approach helps to some extent with maintaining privacy and ensuring continuity of service. Communication data is held on these home servers but the aim is to have it encrypted, for another level of safety. A distributed model would tighten privacy even more.

Distributed means that data is broken up into small packages, each of them meaningless on their own, then spread across a wide array of different servers. These snatches of data are then reassembled by the end users. That approach (best known in the form of blockchain technology) is especially compatible with high levels of privacy. Matrix is working towards a form of that technology too. Simply by virtue of being small-scale, for the moment it is not a particularly attractive environment for spammers to target.

UBports is always open to child-friendly options, so for example anyone could in principle create their own Matrix server, hosted at home. Then @child1:familyserver.com could message @dad:familyserver.com in a private network. We will look at the subject of safe internet use more in another blog article.

Matrix is established on desktop Linux mainly through the Riot app or by using a web interface. While the web version can of course be used in Morph browser on Ubuntu Touch, two different native apps provide a Matrix messaging capability. The first of these to appear was uMatriks, now followed by FluffyChat. Since the latter is being more actively developed at the moment, this article will focus on that app (which is often affectionately referred to as ‘Fluffy’). Rather than duplicate effort, the hope is that the two apps will develop different strengths. One difference you will notice already is that FluffyChat is optimized for a modest number of chats and groups. This is about the way in which data loads, for efficiency and a low footprint. If you have 150 large groups, uMatriks will certainly cope much more effectively with that.
    Odoo CMS - a big picture

    FluffyChat is the creation of a very talented German developer who generally answers to the name of ‘Krille’ but also to Christian Pauly. It is in his words ‘an open, non-profit and cute messenger for Ubuntu Touch’. Can the design of a messenger influence mood? Krille certainly thinks so. An interface that is high contrast, with lots of metallic finishes and distractions is certainly the norm in many adventure games and clearly succeeds in creating an atmosphere of menace and energy. So ‘cute’ and ‘fluffy’ express an opposite intention. One of the curses of our age is the tendency of people to be impolite and often outright offensive online. So in user interface terms, Fluffy sets out to do whatever possible to create a low testosterone ambience, where users are civil and patient. All possible good luck with that!

    Another innovative aspect of Krille’s app is the way in which it has been developed. Throwing test builds open to beta testers is of course nothing new but there have been some bursts of intense activity when micro builds were thrown open to an audience of testers in real time and then rebuilt on the spot, for a constant round of live testing. This is not about colleagues verifying code. That too is standard. This is about ordinary users checking out the user experience in real time and pointing out bugs, throwing in feature requests and suggesting design improvements. That can only be done occasionally. It is not the only mode of development which has been used but it is quite exciting and creative.

    A Matrix account synchronizes across devices, so as the primary intention with FluffyChat is to be a lightweight messenger for chatting with friends and family, it can be a good idea to leave management tasks until you are on a desktop. The interface is attractive and you can do all of the usual things – send photos, collect and use stickers, provide an accent with emojis, share documents etc. Animated gifs show nicely in the chat and avatars display correctly. Of particular importance, notifications have been implemented and are working well. You can choose to have a notification whenever a message is posted in a group or only when it mentions you. When it does, it is given a red highlight. In Ubuntu Touch settings, you can then choose between silent notifications or sound alerts. If you are in 200 groups (a one-to-one chat in Matrix is treated as a ‘group’) you may be glad that there is a search bar where you can look for the one you want.

    Odoo - Sample 1 for three columns



    Odoo - Sample 2 for three columns

    User Settings

    Odoo - Sample 3 for three columns

    Chat Settings

    That brings us to some things that FluffyChat cannot yet do but which Matrix already supports. In Riot you can label some chats as favorites and they will cluster at the top of your list. Audio and video chat is also supported there, whether 1-2-1 or group. Chat encryption is a Matrix option between two users but the difficulties of bringing that into group chats mean that functionality is still at an experimental stage and not to be relied upon. If features like these can be added to Fluffy without making it sluggish and bloated, that is the plan. Even without them, Krille has made a very usable and enjoyable app.

    If you want to try it, you can now register in the app, where the default is to use the UBports home server. There is a drop-down menu though so you can easily choose the Matrix home server instead if that is what you prefer. Just as easy is to create an account by going to riot.im before hand, then just sign in.

    It is possible to enter a personal telephone number in FluffyChat if you want to be able to add contacts via their telephone number (or vice versa). It works perfectly well though if you prefer not to enter one.

    FluffyChat is available in the OpenStore. Why not try it today!

    What do you think of this app?

    Please send your comments and suggestions through the box at the bottom of this blog.

    Explore the full spectrum of Ubuntu Touch Apps at OpenStore - The official Ubuntu Touch app store.

                      Christian Pauly - Community Interview