Flutterがバージョンアップし、UIのレンダリングにCanvasを用いることが発表されました。さらにGoogleドキュメントも描画がCanvasベースになるといわれており、徐々にDOMの差分対応がボトルネックになるのを嫌がり、Canvasへ移行するケースが見られています。 今回紹介するGioはGo向けのUIライブラリになります。その描画がWebAssemblyやWebGLを使っているのが特徴です。

Gioの使い方

表示例です。HTMLではないのは何となく分かりますが、綺麗に描画されています。

クリックイベントも扱えます。

回転や大きさの変更も自在です。

GioはWebGL/WebAssemblyを用いることで、幅広いプラットフォームに対応します。Windows/macOS/Linux/iOS/tvOS/Android/FreeBSD/OpenBSD/ブラウザと多種多様です。一般的なGUI部品を用いずに描画することでプラットフォームに依存しない形でUIを提供できるようです。

GioはGo製のオープンソース・ソフトウェア(MIT License)です。

Gio - immediate mode GUI in Go gio: Portable, immediate mode GUI in Go