田舎人の書斎作ったり、試したり、書き留めたり。

田舎人、Electronでグラフを描く。

Go+Electronによるグラフ作成アプリの製作記

公開

この記事は2021年に書いたものです。ソフトウェアのバージョンや配布状況など、いまとは異なる場合があります。

GoとElectronを組み合わせて、グラフを作るGUIアプリを作りました。

GoでGUIを作ろうと、Goのフレームワークをあれこれ探していましたが、どれもあと一歩届かない感じがありました。しばらく悩んだ末、Electronをベースにし、Go側で作ったDLLをElectronから読み込む方法でアプリを完成させました。

Electronを使うのは初めてで、JavaScriptとGoの両方を勉強できたのは良い経験でした。時間はかかりましたが。

作ったもの

グラフ作成アプリの画面

作ったグラフの例です。

アプリで作成したグラフの例1

アプリで作成したグラフの例2

アプリで作成したグラフの例3

アプリで作成したグラフの例4

当時はVectorでの公開を予定していました。

LorcaからElectronに乗り換えた理由

最初はGo+Lorcaで作り始め、途中からElectronに切り替えました。ただ正直なところ、同じものはLorcaでも作れました。

乗り換えたのは、Lorcaでできないことが、Electronならできるのではないかと考えたからです。結局はどちらでもできませんでした。それが分かったのが、Electronで完成間近まで作ったあとだったので、そのままElectronで仕上げました。

これから

今回初めてWebの技術でGUIの画面を作りましたが、WPFより手軽に質の高い画面が作れて、とても楽しかったです。特にスクロールが便利でした。WPFでは画面からはみ出した部分が見切れてしまうので。

今回はVue.jsで画面を作りましたが、React.jsもいずれ試したいと思っています。実はこのブログ(当時はGatsby)もReactベースなのですが、まだ使いこなせておらず、細かいレイアウトの調整ができていません。

Goはかなり気に入りました。そしてGoについて調べるうちに、同じく簡潔さを重んじる言語としてRustを見つけ、いまはRustにも興味があります。

GUIアプリを作るのが好きなので、GoもRustも決定的なGUIフレームワークがまだないのは残念なところです。ただ、今回Webの技術で画面を作る手応えをつかめたので、Rustでも同じように画面をWebで作れば形にできるのではないかと考えています。