• [^] # Re: Ça va venir ça va venir

    Posté par (site web personnel, Mastodon) . En réponse au journal Mon réseau social centralisé. Évalué à 5. Dernière modification le 04 décembre 2013 à 17:56.

    On utilise XMPP qui est un standard reconnu, on peut considérer ça comme du « posix ».

    On a un backend qui gére toute la partie métier, y compris les extensions, et différents frontaux qui gèrent l'affichage (le tout communicant par un IPC, D-Bus actuellement). On fait en sorte qu'il soit le plus facile/rapide possible de faire un nouveau frontal, et de ne pas être dépendant de technos graphiques (nouvelle techno = nouveau frontal, mais ça consiste surtout à lier les appels D-Bus au comportement graphique adapté).

    En gros, ça ressemble à ça:

    Vue simplifiée de SàT

    Maintenant ce qui est demandé ici, c'est de pouvoir étendre l'interface par un utilisateur (je comprends ça comme « mon microblogage s'affiche de telle façon, j'aimerais ajouter un bouton/une image/un schmilblick qui affiche tel code HTML et qui fait tel truc »), soit un truc typiquement graphique.

    Or nos frontaux utilisent des environnements graphiques complètement différents:

    • Libervia est un frontal web, il sort du XHTML

    • Wix est un frontal WxPython, il sort du WxWidgets

    • jp est un frontal cli, il sort du texte

    • Primitivus est un frontal console, il sort de l'Urwid (interface console à la ncurses)

    • Bellaciao est un frontal Qt et en C++, il sort du Qt

    Bref, le bouton à ajouter qui sort un code XHTML ne peut être utilisable que pour Libervia.

    Par contre, notre système d'extensions côté backend permet de sortir une interface avec un code XML (une sorte de micro-XUL) qui sera interprété par tous les frontaux ou presque, donc pour les cas simples on peut faire un truc commun.

    Bref on essaye de factoriser au maximum, mais il y a des cas où c'est très dépendant de la techno d'affichage, d'où l'intérêt des interfaces multiples, et le probable besoin à terme de faire des extensions liées aux interfaces.