URL: https://linuxfr.org/news/gnome-annonce-la-nouvelle-bibliotheque-libadwaita Title: GNOME annonce la nouvelle bibliothèque libadwaita Authors: Adrien Dorsaz ted, bobble bubble, Benoît Sibaud, agardelein, Julien Jorge, Ysabeau et 4fages Date: 2021-03-31T12:42:44+02:00 License: CC By-SA Tags: Score: 4 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](https://aplazas.pages.gitlab.gnome.org/blog/assets/blog/introducing-libadwaita-header.svg) 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. ---- [Introduction de libadwaita](https://aplazas.pages.gitlab.gnome.org/blog/blog/2021/03/31/introducing-libadwaita.html) [Projet Gitlab libadwaita](https://gitlab.gnome.org/GNOME/libadwaita/) ---- # Introduction de libadwaita GNOME 41 [NdT: prévu pour l’automne 2021] viendra avec [libadwaita](https://gitlab.gnome.org/GNOME/libadwaita/), la mise à jour GTK4 de la bibliothèque [libhandy](https://gitlab.gnome.org/GNOME/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](https://developer.gnome.org/hig/stable/) (_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](https://blogs.gnome.org/alexm/2021/03/13/reinventing-tabs/). 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](https://gitlab.gnome.org/GNOME/gtk/-/issues/3582) et la demande de fusion [gtk!3079](https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/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](https://gitlab.gnome.org/GNOME/libadwaita/) et vous pouvez joindre les développeurs sur le salon Matrix [#libadwaita:gnome.org](https://matrix.to/#/#libadwaita:gnome.org?via=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.