2 points par GN⁺ 2024-05-19 | 1 commentaires | Partager sur WhatsApp
  • Gio est une bibliothèque permettant d’écrire des interfaces graphiques cross-platform en mode immédiat avec le langage Go.
  • Plateformes prises en charge : Linux, macOS, Windows, Android, iOS, FreeBSD, OpenBSD, WebAssembly.
  • Dépendances : Gio ne nécessite que des bibliothèques de plateforme pour la gestion des fenêtres, les entrées et le rendu GPU.

Pourquoi Gio ?

  • Développement GUI efficace et flexible : Gio aide à construire des interfaces graphiques efficaces et flexibles sur toutes les principales plateformes.
  • Technologies graphiques 2D modernes : il combine la flexibilité du paradigme graphique en mode immédiat avec des technologies graphiques 2D modernes, afin d’offrir une base cohérente pour le développement d’applications.
  • Rendu vectoriel efficace : inclut un moteur de rendu vectoriel efficace implémentant le projet Pathfinder, basé sur OpenGL ES et Direct3D 11.
  • Rendu de texte et de formes : prend en charge des animations efficaces, le dessin avec transformations et l’indépendance vis-à-vis de la résolution en pixels, en utilisant uniquement des contours au lieu de rasteriser le texte et les autres formes en images de texture.

L’avis de GN⁺

  • Utilité de Gio : Gio facilite le développement de GUI offrant une expérience utilisateur cohérente sur de multiples plateformes.
  • Atouts techniques : exploite des technologies graphiques modernes pour offrir à la fois performance et flexibilité.
  • Courbe d’apprentissage : si vous connaissez déjà le langage Go, l’approche est accessible, même s’il peut falloir du temps pour s’habituer à ce nouveau paradigme graphique.
  • Produits concurrents : par rapport à d’autres bibliothèques GUI cross-platform, Gio se distingue par son excellente intégration avec le langage Go.
  • Points à considérer avant adoption : selon la complexité du projet, les fonctionnalités de Gio peuvent être excessives ou insuffisantes ; il est donc nécessaire de vérifier son adéquation aux besoins du projet.

1 commentaires

 
GN⁺ 2024-05-19
Avis sur Hacker News

Résumé des commentaires de Hacker News

  • Rendre l’ensemble via un canvas peut poser des problèmes d’accessibilité et donner une impression peu native

    • Comme pour la version web de Flutter, le rendu via <canvas> peut entraîner des problèmes d’accessibilité et une impression peu native.
  • Question sur la meilleure méthode actuelle de développement d’applications cross-platform

    • Question sur la meilleure façon, aujourd’hui, de construire des applications mobiles et web cross-platform. Discussion sur les approches qui incluent à la fois la logique métier et l’UI, ou seulement la logique métier.
  • Limites de l’implémentation de la logique métier en TypeScript

    • Tentative d’implémenter la logique métier en TypeScript, mais constat que les performances d’exécution JavaScript sur iOS ne sont pas bonnes.
  • Retour d’expérience sur le développement d’applications avec Go et Fyne

    • Partage d’une expérience de développement de petites applications avec Go et Fyne, avec le constat qu’il manque beaucoup des fonctionnalités et du niveau de finition offerts par Flutter.
  • Problème de rendu de la démo WASM

    • Expérience d’un problème où la démo WASM ne s’affiche que comme un rectangle noir dans Chrome sur un PC Windows 10.
  • Question sur la conception « zéro allocation » de Gio

    • Question d’un débutant en Go qui a du mal à comprendre l’explication de la documentation sur la conception « zéro allocation » de Gio. Interrogations sur les raisons des allocations, ce qui est alloué et la manière dont elles sont économisées.
  • Problèmes de design des GUI cross-platform

    • Remarque sur le fait que beaucoup de GUI cross-platform ont un aspect daté.
  • Difficulté à écrire des applications complexes

    • Partage d’une expérience montrant qu’il est difficile d’écrire des applications complexes. Il manque des composants de base comme la vidéo, les cartes et le texte enrichi, l’API change souvent et il est impossible de définir un thème.
  • Limites du graphisme en mode immédiat

    • Le graphisme en mode immédiat pose problème lorsqu’il faut gérer un état complexe, au point de devoir implémenter soi-même un graphisme en mode conservé.
  • Limites du moteur de rendu basé sur piet GPU

    • Le concept du moteur de rendu basé sur piet GPU, qui prend en entrée les points de contrôle de courbes de Bézier et tesselle tout, est séduisant, mais il reste difficile de dessiner un vrai cercle.
  • Manque de maturité de WASM pour la production

    • WASM n’est encore qu’une preuve de concept, et des années d’ingénierie seront nécessaires avant qu’il soit prêt pour la production.
  • Problème de rendu du texte CJK dans Fyne

    • Fyne ne parvient pas à afficher le texte CJK. Remarque selon laquelle Fyne ne peut pas être utilisé lorsqu’il faut gérer du contenu généré par les utilisateurs ou de la localisation.
  • Support Unicode insuffisant

    • Problème lié à l’absence de prise en charge correcte d’Unicode.