Journal Premiers jappements de Cagou

18
14
sept.
2016

Salut à vous,

cet article vient d'être publié sur mon blog, mais comme nous avons parlé de la campagne ici aussi, il me semble
logique d'en faire un journal.

Cagou est un frontal (bureau/appareils portatifs) du projet Salut à Toi, logiciel de communication (« réseau social ») qui a été plusieurs fois mentionné par ici, cf. l'étiquette dédiée.

Cagou commençant à prendre sérieusement forme, il est temps de faire un billet sur l'avancement.

Avant le début du développement de l'interface elle-même, des changements nécessaires ont été faits en particulier sur la gestion des messages. Outre la gestion des langues dont j'ai parlé dans des précédents billets, le plus important est que nous pouvons désormais changer l'état d'un message après réception, ou y faire référence. Ceci permet d'implémenter des fonctionnalités comme les accusés de réception, ce qui a été fait par une contribution de Chteufleur (merci :)). D'autres fonctionnalités qui attendaient comme la correction du dernier message vont bientôt pouvoir suivre.

Il était nécessaire de faire ce travail avant d'implémenter la messagerie instantanée sur Cagou, pour pouvoir partir sur de bonnes bases.

Ensuite il a fallu intégrer l'interface sous Kivy à SàT, et en particulier D-Bus et QuickFrontend, notre modèle pour faire des frontaux en Python.

Tout ceci s'est relativement bien passé, et voici une petite vidéo pour vous mettre en appétit :

linuxfr ne permet pas de diffuser des vidéos, aussi voici le lien: https://upload.jabberfr.org/0e3d44d0-8133-4b82-9ddc-3d279eab4fa1/cagou_demo_avancement_13-09-16.webm

Quelques explications maintenant.

Comme vous le voyez, l'interface peut-être divisée facilement. Cette idée est inspirée de l'excellente interface de Blender, et permettra de s'adapter facilement à un petit ou grand écran en choisissant le nombre de widgets et leur disposition.

Au lieu d'être un logiciel discret qu'on utilise uniquement quand on veut répondre à quelqu'un, Cagou est une interface qui s'utilise principalement en plein écran, avec une disposition adaptée à la situation et les outils importants directement visibles (si la taille de l'écran le permet).

Autre point important, la liste de contacts n'est pas l'élément central comme c'est souvent le cas dans les logiciels de messagerie. Vous pouvez y accéder en sélectionnant le widget, voire la mettre sur le côté pour reproduire le comportement traditionnel, mais elle n'est pas affichée par défaut et n'est pas indispensable.

sélection de widget

Tous les widgets sont des greffons, a terme il devrait être possible d'en télécharger, ou de changer complément le fonctionnement d'un widget de base. Comme effet de bord, et surtout grâce au travail de l'équipe derrière Kivy, Cagou sera une plate-forme qui permettra d'échanger facilement des scripts Python sur Android (reste à voir comment on va gérer les permissions).

En ce qui concerne les notifications, le fonctionnement va être différent sur bureau et sur les plates-formes qui ont déjà un système de notification (comme Android). Dans ce dernier cas, le système de la plate-forme va être utilisé.

Sur bureau, un en-tête spécifique est utilisé. 2 icônes de Cagou (merci à Muchoslava pour ses contributions) peuvent apparaître : une à gauche pour les notes (c.-à-.d les messages courts qui ne s'affichent que quelques secondes), et une à droite pour les notifications plus importantes, nécessitant l'action de l'utilisateur.

Un clique sur l’icône de gauche permet d'afficher les 10 dernières notes, et un sur l’icône de droite affiche la notification importante suivante.

Ceci a été pensé pour éviter les popups, ces dernières ne sont affichées que suite à une action de l'utilisateur, et n’apparaissent pas d'elles même si un quelconque événement les déclenche.

exemple de notification

Les menus ont également été implémentés, ils apparaissent en haut sur bureau. Sur petits écrans (téléphones), ils ne seront sûrement visibles que suite à l'appui de la touche idoine.

Grâce au fonctionnement de Salut à Toi, ceux-ci permettent déjà de faire des actions de base comme ajouter ou modifier un contact et avancées comme piloter son serveur.

Enfin le lancement d'une conversation peut se faire de plusieurs manières. On peut en commencer une en cliquant sur un contact dans le widget « liste de contacts », ou en tapant son jid dans un widget « chat » (il devrait rapidement être possible de taper quelques lettres pour avoir les suggestions).
Les conversations ne se ferment pas quand on change de widget, on peut accéder aux conversations en cours en faisant passer son doigt (ou sa souris pendant un clique) rapidement vers la droite ou la gauche, cf. la vidéo ci-dessous. Il sera bientôt possible de les fermer via un menu dédié.

linuxfr ne permet pas de diffuser des vidéos, aussi voici le lien: https://goffi.org:5281/upload/479bc258-5120-4b6e-af8e-7e6b1cedc9cb/cagou_changement_widget.webm

Voilà l'état des lieux actuel. Il y a déjà eu beaucoup de travail, et l'interface commence à être vraiment utilisable. Côté bureau le plus gros est fait, il s'agit maintenant d'adapter l'interface aux fonctionnalités (afficher l'accusé de réception par exemple), et à faire de nouveaux widgets. Un gros morceau reste toutefois l'affichage du contenu HTML, vu que ça n'est pas géré de base par Kivy (mais il y a différentes solutions possibles).

En ce qui concerne Android, il va y avoir une partie qui risque d'être un peu difficile pour faire le port, mais je ne m'inquiète pas plus que ça.

J'envisage également de faire un port sur Ubuntu Touch, j'ai commandé à cette fin une tablette d'occasion qui devrait me permettre de l'installer (ce n'est pas une promesse, juste une éventualité).

Ah et bien sûr, Cagou va profiter des fonctionnalités de SàT, y compris le chiffrement de bout en bout (OTR pour le moment, mais OpenPGP est envisagé pour la 0.7, et peut-être OMEMO également).

Petite note pour les programmeurs : une fois la prise en main passée (qui n'est pas très difficile), j'apprécie beaucoup travailler avec Kivy, c'est souple, agréable à utiliser et ça fonctionne jusqu'ici très bien, félicitation aux équipes derrière.

Je conclus sur une bouteille à la mer : c'est un travail absolument énorme de travailler sur SàT, et à l'heure actuelle je suis pratiquement seul dessus, et en plus de mon emploi salarié. Le projet avance toujours à bon train, mais j'ai besoin d'aide. La base de code est importante, mais il n'est pas insurmontable de s'y mettre : Chteufleur mentionné plus haut a pu rapidement écrire des greffons et a fait les implémentations des XEP-0070 et XEP-0184.

Il est aussi possible de contribuer en dehors du code : empaquetage pour des distributions, tests, graphismes, traductions, installation de serveurs, etc. Contribuer à une bibliothèque utilisée par SàT (comme l'implémentation de XMPP dans Twisted ou Kivy) est également très utile.

Au passage, je rappelle à ceux qui ont participé à la campagne de financement, qu'ils peuvent nous contacter sur « contact chez salut-a-toi point org » pour réclamer leur contrepartie, ou la demander plus tard s'ils préfèrent.

À très bientôt pour la suite :)

P.-S.: pour les lecteur de LinuxFr, voici un article publié sur mon blog au sujet de la langue : https://www.goffi.org/blog/goffi/a71c01a2-f95c-4017-8cc7-eb962d64db00 en fouillant un peu vous y trouverez aussi un tutoriel pour développer un greffon ou sur l'installation complète d'un blog sous Libervia depuis l'image Docker.

  • # Cagou?

    Posté par  . Évalué à 10.

    Cagou!

    …. et c'est quoi? Un si long journal sans un résumé de deux lignes sur le but de ce logiciel….

    ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

    • [^] # Re: Cagou?

      Posté par  (site web personnel, Mastodon) . Évalué à 8.

      Oui en effet désolé, c'est parce que j'ai repris in extenso le billet de blog où les gens savent a priori de quoi on parle.

      C'est un frontal à Salut à Toi un client XMPP multi-interfaces et multi-usages (en plus de la classique messagerie instantanée, il y a aussi blog, partage de fichiers, jeux, etc) et militant (cf. le contrat social).

      Cagou est le nouveau frontal de bureau (qui remplace l'ancien qui s'appelait « Wix ») et pour appareils portatifs, il va être principalement porté sur Android, mais comme dit dans le journal d'autres plateformes sont envisagées comme Ubuntu Touch.

      Ce développement fait suite à une campagne de financement collaboratif terminée avec succès en fin d'année dernière.

      • [^] # Re: Cagou?

        Posté par  (site web personnel, Mastodon) . Évalué à 3.

        P.-S.: est-ce qu'un modérateur peut ajouter ceci en début de journal ?

        Cagou est un frontal (bureau/appareils portatifs) du projet Salut à Toi, logiciel de communication (« réseau social ») qui a été plusieurs fois mentionné par ici, cf. l'étiquette dédiée.

        Si c'est possible de l'ajouter juste en dessous de la phrase « cet article vient d'être publié sur mon blog, mais comme nous avons parlé de la campagne ici aussi, il me semble
        logique de parler d'en faire un journal. »

        Et pendant que j'y suis il faudrait également faire "s/il me semble logique de parler d'en faire un journal./il me semble logique d'en faire un journal./"

        Merci beaucoup :)

    • [^] # Re: Cagou?

      Posté par  (site web personnel) . Évalué à 3.

      C'est aussi un oiseau endémique de Nouvelle-Calédonie qui l'a pris comme emblème.
      https://fr.wikipedia.org/wiki/Kagou_hupp%C3%A9

      • [^] # Re: Cagou?

        Posté par  . Évalué à 7.

        Il est presque incapable de voler.

        Mais quel gros nul :o

        *splash!*

        • [^] # Re: Cagou?

          Posté par  (site web personnel) . Évalué à 2.

          Évite de dire ça a une autruche, elles s'énervent vite

          • [^] # Re: Cagou?

            Posté par  . Évalué à 4.

            Oué, après faut reboucher les trous dans le sable, c'est chiant.

  • # Installation

    Posté par  (site web personnel) . Évalué à 1.

    Quand est-il de l'installation? Je suppose qu'il faut avoir la version de développement de SàT pour bénéficier de la refactorisation des messages.

    Ensuite, une fois qu'elle est dispo et dans le PYTHONPATH, Il suffit d'installer Kivy, de cloner le dépôt et ça roule? Il n'y a pas de dépendance additionnelle?

    Encore bravo pour le travail fourni. C'est toujours aussi impressionnant.

    • [^] # Re: Installation

      Posté par  (site web personnel, Mastodon) . Évalué à 4.

      Quand est-il de l'installation? Je suppose qu'il faut avoir la version de développement de SàT pour bénéficier de la refactorisation des messages.

      Pour le moment oui, il faut la dernière version de SàT et mettre à jour en même temps. Il n'y pas encore de README ou de setup.py, mais la seule dépendance supplémentaire par rapport à SàT est Kivy. Une fois installé, lancer cagou.py avec Python 2 devrait suffire.

      Sur android il y aura un apk, sur les distro où SàT est déjà ou est en voie de revenir (Debian/Ubuntu, Arch, je ne sais pas s'il y en a d'autres), ça sera installable par le gestionnaire de paquets, et je vais voir si les nouveaux formats de distribution du style Snap ou Flatpak ne sont pas trop compliqués à gérer. J'aimerais bien faire une image Subuser aussi.

      Ensuite, une fois qu'elle est dispo et dans le PYTHONPATH, Il suffit d'installer Kivy, de cloner le dépôt et ça roule? Il n'y a pas de dépendance additionnelle?

      Normalement oui, sinon il faut venir demander de l'aide sur notre salon (toi tu y déjà, mais je précise pour les autres) sat@chat.jabberfr.org.

      Encore bravo pour le travail fourni. C'est toujours aussi impressionnant.

      Merci, j'ai hâte que ça soit utilisable sur d'autres plateformes, ça ne devrait plus tarder maintenant.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.