GNOME annonce la nouvelle bibliothèque libadwaita

66
11
avr.
2021
Gnome

Adrien Plazas nous annonce la venue de libadwaita, une bibliothèque qui proposera la première implémentation officielle des Human Interface Guidelines de GNOME (les directives pour les interfaces humaines, abrégées HIG).

Cette nouvelle bibliothèque simplifie la vie des développeurs d’applications pour GNOME, puisqu’elle donne enfin un socle commun, validé par l’équipe design, pour suivre les HIG de GNOME. De plus, elle permettra au projet GTK de redevenir plus indépendante de la plateforme GNOME.

Pour les développeurs qui connaissent déjà libhandy, libadwaita en est le successeur GTK4 et libhandy sera remplacé par libadwaita.

bannière d’en-tête de libadwaita

La suite de la dépêche vous propose une traduction de l’annonce de cette nouvelle bibliothèque, avec l'accord de l'auteur original.

Sommaire

Introduction de libadwaita

GNOME 41 [NdT: prévu pour l’automne 2021] viendra avec libadwaita, la mise à jour GTK4 de la bibliothèque libhandy, qui jouera un rôle central dans la définition du langage visuel et de l’expérience utilisateur des applications GNOME.

GNOME et GTK

Depuis 20 ans, GNOME définit les directives pour les interfaces humaines (human interface guideslines, abrégées HIG) qui sont suivies par les applications ciblant la plateforme.

L’implémentation des HIG requiert beaucoup de travail manuel pour les développeurs d’applications. Ça a amené beaucoup de copier-coller de code d’interface utilisateur, plein de légères variations et erreurs d’interprétations et ça a rendu les applications difficiles à maintenir et remplies d’incohérences visuelles et comportementales. Le fait que ces directives ne soient pas gravées dans le marbre et qu’elles évoluent très souvent a fait exploser la quantité d’incohérences.

Le respect des directives peut être simplifié avec une bibliothèque offrant des widgets et styles adaptés. Ce rôle a été rempli par GTK à cause de ses liens très forts avec le projet GNOME: Adwaita est à la fois le langage visuel de GNOME et le thème par défaut de GTK. Cependant, c’est assez problématique, parce que GTK dessert plusieurs publics et plateformes, et que ça favorise GNOME à la place des autres.

Cette situation amène aussi des conflits de cycle de vie : la machinerie GTK doit être extrêmement stable et ne peut pas évoluer dans une course rapide, alors que les directives de GNOME et Adwaita évoluent en comparaison beaucoup plus vite et tireraient bénéfice d’une bibliothèque suivant le rythme des designs les plus récents.

Démêler les 2 projets

Le besoin d’offrir à GNOME une bibliothèque qui avance plus vite a rapidement grandi dans la communauté et beaucoup de bibliothèques de widgets ont comblé le vide : libdazzle, libegg, libgd et libhandy pour en nommer quelques-unes. Ça a amélioré la situation, mais ça a juste contourné les problèmes plutôt que de les résoudre. GNOME a besoin d’une bibliothèque officielle implémentant rapidement les HIG et développée en collaboration avec l’équipe design. Une telle bibliothèque définirait le langage visuel de GNOME en offrant les feuilles de style et les modèles dans un unique paquet.

Ainsi, GTK pourrait évoluer indépendamment de GNOME, à un rythme suivant ses besoins. Il pourrait se focaliser sur des widgets plus génériques et sur le cœur de sa machinerie, simplifiant son support de thème en le rendant plus flexible. En plus, ça permettrait aux autres utilisateurs de GTK de jouer dans la même cour : du point de vue de GTK, GNOME, elementary et Inskape ne feraient plus aucune différence, et cette hypothétique bibliothèque de GNOME remplirait le même rôle que Granite pour elementary.

L’introduction de cette bibliothèque ne devrait pas rendre GTK moins utile sur les autres plateformes ou rendre les applications GTK plus difficiles à construire (ou plus vilaines). Ça devrait simplement être une autre bibliothèque dont vous pouvez choisir de dépendre si vous voulez que votre application s’intègre bien avec GNOME.

Adwaita

Pour résoudre le besoin d’indépendance de GTK et celui de l’évolution plus rapide de GNOME, nous sommes en train de créer le projet libadwaita.

Adwaita est le nom de l’identité et du langage visuel de GNOME et il est déjà utilisé par deux projets qui l’implémentent: la feuille de style GTK Adwaita et l’ensemble d’icônes Adwaita. Cette nouvelle bibliothèque libadwaita a l’intention d’étendre ce concept en étant la partie code logiciel qui manque à Adwaita. La bibliothèque sera implémentée comme le successeur GTK4 et remplaçant de libhandy et elle sera développée par les développeurs actuels de libhandy.

La feuille de style Adwaita sera déplacée dans libadwaita, ainsi que ses variantes tels que HighContrast et HighContrastInverse. GTK utilisera une copie de cette feuille de style renommée Default, qui se concentrera sur les besoins des applications GTK pures. Pour plus d’informations, lisez le rapport de bug gtk#3582 et la demande de fusion gtk!3079. Nous voulons que ça arrive rapidement dans le développement de libadwaita.

Comme elle implémentera les HIG de GNOME, les développeurs de la bibliothèque travailleront en étroite collaboration avec l’équipe design de GNOME. L’équipe design fera également des revues de l’ensemble de départ des widgets et styles hérités de libhandy, s’assurant qu’ils sont d’équerre avec les directives qu’ils ont développées et qu’ils rafraîchiront pour GNOME 41.

La transition est actuellement développée en étroite collaboration entre les développeurs GTK, les développeurs de libhandy et l’équipe design de GNOME. Elle a été également discutée avec une variété d’autres développeurs de GNOME et elementary.

Donnez-la-moi !

Si vous êtes un développeur d’application GNOME, vous voudrez sûrement porter votre application depuis GTK3 (et libhandy) vers GTK4 et libadwaita à temps pour GNOME 41. Vous pouvez trouver libadwaita sur le Gitlab de GNOME et vous pouvez joindre les développeurs sur le salon Matrix #libadwaita:gnome.org. Vous pouvez aussi les joindre sur le salon IRC #libadwaita sur GIMPnet.

Le projet libadwaita suivra les mises à jour des HIG, et les sorties suivront le calendrier de GNOME. Chaque version de la bibliothèque ciblera une version spécifique de GNOME, la première version stable sera livrée avec GNOME 41.

La première version stable de la bibliothèque sera la version 1.0. Nous ne suivrons pas les numéros de version de GNOME, car les versions majeures de la bibliothèque Adwaita s’étendront sur plusieurs sorties de GNOME, sinon, ça serait ingérable pour les développeurs d’application. Les versions majeures seront installables en parallèles.

La bibliothèque n’est pas tout à fait prête à être utilisée maintenant, nous devons corriger quelques problèmes restants, écrire un guide de migration et sortir une première version alpha que vous pourrez cibler en toute sécurité. Nous sortirons ensuite plusieurs versions alphas et les guides de migrations correspondant, pour que vous puissiez mettre à jour en sécurité votre application pendant que nous stabiliserons libadwaita 1.0 sans même casser vos builds.

À partir de maintenant, le rythme de développement de libhandy va extrêmement ralentir pour que nous nous concentrions sur le développement de libadwaita. Toute amélioration faite pour libhandy doit dorénavant d’abord être implémentée dans libadwaita.

Nous espérons que les utilisateurs GTK 4 se réjouissent de leur indépendance accrue et que les développeurs d’applications GNOME se sentent valorisés !

Merci aux développeurs GTK, à l’équipe design de GNOME et à Alexander Mikhaylenko pour l’aide apportée lors de l’écriture de cet article.

Aller plus loin

  • # Inspiration

    Posté par  . Évalué à 9.

    Ça me fait étrangement penser à ce qui se fait depuis des années entre Qt et KDE (Framework)…

    https://develop.kde.org/products/frameworks/

    • [^] # Re: Inspiration

      Posté par  . Évalué à 8.

      C'est surtout un retour au passé, quand il y avait libgnomeui:

      https://developer.gnome.org/libgnomeui/stable/

      J'aurai préféré que libhandy soit petit à petit absorbée par gtk. On va se retrouver comme dans le passé avec des applications GNOME et des applications pure GTK ne proposant pas la même ergonomie.

      • [^] # Re: Inspiration

        Posté par  . Évalué à 10.

        des applications GNOME et des applications pure GTK ne proposant pas la même ergonomie.

        C'est bien le but non ? que les apps GTK puissent avoir l'ergonomie qu'elles souhaitent (pour d'autres bureau, d'autres façon de faire…).

      • [^] # Re: Inspiration

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

        On va se retrouver comme dans le passé avec des applications GNOME et des applications pure GTK ne proposant pas la même ergonomie.

        Franchement, tant mieux.

        Je ne sais pas pourquoi beaucoup d’applications GTK/GNOME depuis GTK3 sont devenues une plaie à intégrer à d’autres environnements, mais je ne vais pas regretter un retour des applications GTK s’intégrant correctement à d’autres bureaux que GNOME.

        J’aime GTK. J’aime GNOME. Mais j’ai horreur qu’on essaie de m’imposer GNOME à chaque fois que je cherche juste à utiliser GTK.

      • [^] # Re: Inspiration

        Posté par  . Évalué à 4.

        On va se retrouver comme dans le passé avec des applications GNOME et des applications pure GTK ne proposant pas la même ergonomie.

        Depuis gtk3, j'ai remplacé la plupart de mes applications GTK par des applications Qt. Parce que je n'aime pas du tout l'ergonomie de gnome, mention spéciale pour l'ouverture de fichiers.
        Je sais, je sais, ils ont fait appel à des pro, c'est étudié, bla bla bla. Je pense que les gens Qt aussi, ont fait appel à des pro, et je trouve de manière générale les applications Qt bien plus agréables à utiliser que tout ce qui viens de gnome.
        D'ailleurs, un certain nombre d'applications aussi, a fait ce choix, je citerais notamment wireshark.

        Je pense que la leçon à en fait finalement été comprise, justement. Reste à voir si les gens re-migrerons vers gtk… ce qui est fort peu probable, une migration de toolkit se fait pas à la légère (pour le dev, d'une part, et pour les utilisateurs, la résistance au changement n'est pas un mythe, pas plus que la mémoire).

      • [^] # Re: Inspiration

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

        Ha oui bien vu !
        Cette annonce, c'est le contraire du projet Ridley
        https://wiki.gnome.org/Attic/ProjectRidley

      • [^] # Re: Inspiration

        Posté par  . Évalué à 3.

        On va se retrouver comme dans le passé avec des applications GNOME et des applications pure GTK ne proposant pas la même ergonomie.

        Bah oui, et c'était bien mieux, avant que GNOME ne vienne nous enquiquiner avec ses pitreries sur d'autres bureaux. Au hasard, les fichues CSD.

        "Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)

  • # Thème GTK ?

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

    À ma connaissance, Adwaita est un thème GTK3, et il est possible d'en utiliser d'autres. Si ça devient une bibliothèque dont la fonctionnalité m'échappe un peu faute de m'être penché sur la question, que devient le thème GTK3 correspondant et la possibilité d'utiliser un autre thème ?

    • [^] # Re: Thème GTK ?

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

      C'est expliqué dans le billet :

      Adwaita est le nom de l’identité et du langage visuel de GNOME et il est déjà utilisé par deux projets qui l’implémentent: la feuille de style GTK Adwaita et l’ensemble d’icônes Adwaita. Cette nouvelle bibliothèque libadwaita a l’intention d’étendre ce concept en étant la partie code logiciel qui manque à Adwaita.

      Le thème GTK ne s'en va nulle part, et il sera toujours possible de choisir un thème de son choix (même si les devs GNOME ont tendance à déconseiller aux distros de remplacer Adwaita par défaut).

      • [^] # Re: Thème GTK ?

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

        J’ai eu beau lire attentivement le billet, je trouve ce choix de nom un peu maladroit.

        Ça fait longtemps pour moi que "Adwaita" désigne un thème GTK. Qu’il désigne aussi un thème d’icônes à la rigueur ça reste dans le même domaine.

        Mais que le même nom désigne maintenant une bibliothèque, ça commence à être un peu confus. Peut-être que quand on suit activement le développement de GTK et GNOME ça a du sens, mais de mon point de vue de simple utilisateur je ne sais plus vraiment de quoi on parle quand le terme "Adwaita" est utilisé.

        • [^] # Re: Thème GTK ?

          Posté par  (Mastodon) . Évalué à 3.

          C'est une lib, pas un thème donc il n'y a pas vraiment de risque de confusion.

          Adwaita est le thème GTK par défaut de gnome développé pour gnome, en un sens il pourrait s'appeler Gnome. Et la libadwaita pourrait s'appeler libgtk-gnome. Est-ce que tu dirais dans ce cas qu'il y a un risque de confusion ? J'en doute, et là c'est pareil.

          • [^] # Re: Thème GTK ?

            Posté par  (Mastodon) . Évalué à 4.

            Je me corrige, adwaita est le moteur de thème par défaut de GTK et adopté par Gnome.

            Cependant biien que GTK signifie the Gimp Toolkit à l'origine, aujourd'hui on est plus proche de the Gnome Toolkit. Si tu visites la page officielle du toolkit tu y verras plusieurs mentions de gnome dans la première page, pas une de Gimp. Alors certe on peut faire des applications non gnome avec GTK, et c'est bien, mais ce n'est pas un secret que les deux projets fonctionnent en collaboration.

            • [^] # Re: Thème GTK ?

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

              Adwaita est le thème GTK par défaut de gnome développé pour gnome, en un sens il pourrait s'appeler Gnome.
              (…)
              Je me corrige, adwaita est le moteur de thème par défaut de GTK et adopté par Gnome.

              Et après ça tu me dis qu’il n’y a aucun risque de confusion ? ;P

          • [^] # Re: Thème GTK ?

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

            Est-ce que tu dirais dans ce cas qu'il y a un risque de confusion ? J'en doute, et là c'est pareil.

            Pour moi ce n’est pas la même chose. Un des choix de noms est confus, l’autre non.

            GNOME je sais ce que c’est. Donc si je vois un thème GTK nommé "Gnome", je comprends que c’est celui de cet environnement de bureau. Et si je croise une bibliothèque "libgtk-gnome", je comprends que c’est quelque chose servant à intégrer GTK au reste de GNOME.

            Par contre, jusqu’ici "Adwaita" désignait pour moi un simple thème graphique, composé d’un thème GTK et d’une collection d’icônes. Si je vois une bibliothèque "libadwaita", je n’ai aucune raison de penser qu’elle est liée à l’intégration de GTK au sein de GNOME. Au contraire, je vais me demander quel rapport ça a avec le thème que je connais, et pourquoi celui-ci a maintenant besoin d’une bibliothèque.

            • [^] # Re: Thème GTK ?

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

              Ce n'est qu'une question d'habitudes… Attention, elles changent souvent 😂

              L'article explique justement qu'Adwaita est maintenant clairement le langage visuel et comportemental de GNOME et, surtout, validé par l'équipe design de GNOME.

              De fait, c'est un thème GTK, un set d'icônes et de widgets GTK prêt à l'emploi pour créer une application estampillée GNOME (ou qui cible uniquement la plateforme GNOME).

              Le thème Adwaita que tu as connu avant va s'appeler dorénavant "Défaut" dans GTK et sera une copie de l'ancien Adwaita. Il ne suivra plus les préceptes de GNOME et deviendra naturellement compatible multi-plateforme, car GTK ne cible plus aucune plateforme en particulier (Windows, MacOS, Elementary, XFCE…).

              La bonne nouvelle de ce changement d'habitude, c'est que GTK pourra enfin mieux fonctionner sur Windows, MacOS, Elementary, XFCE… et ce sans avoir besoin de triturer le thème par défaut ni les widgets par défaut.

              Il faut voir Adwaita, comme la marque de GNOME. Avant, GTK 3 était très lié à GNOME et c'est pour ça que Adwaita était directement dans GTK.

              Aujourd'hui, GTK n'a plus besoin d'évoluer aussi vite que GNOME, il faut voir ça comme un bon signe: GTK est devenue plus mûre et assagit sa vitesse de développement pour être à nouveau plus stable, générique et multiplateforme :-)

              Toutefois, je pense que l'on ne va pas se retrouver bloqué avec de vieux widgets comme à l'époque de GTK+ 2 et GNOME 2: en effet, libadwaita permettra d'expérimenter de nouveaux widgets et, à terme, s'ils sont intéressants pour toutes les plateformes cibles de GTK, de les intégrer dans GTK directement.

              J'ai le sentiment que GNOME et GTK ont enfin pu se séparer correctement grâce à GTK 4 et son nouveau paradigme où "tout est un widget" (enfin, si j'ai bien suivi GTK 4, je ne suis pas sûr).

Suivre le flux des commentaires

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