Go+Lorca+VuetifyでマテリアルデザインのGUIを作る
公開
この記事は2021年に書いたものです。ソフトウェアのバージョンや配布状況など、いまとは異なる場合があります。
GoでGUIアプリを作りたくて、1か月ほど試行錯誤してきました。ようやく道が開けました。結論はLorcaです。
Go、Lorca、Vuetifyを苦労しながらつなぎ、フロントエンドのVuetifyとバックエンドのGoの間で互いにデータをやり取りするサンプルを作りました。
おまけとして、実行ファイルのアイコンと、アプリ画面のファビコンも付けています。ファビコンはHTMLで普通に指定すれば表示されます。アイコンは、画像をsyso形式に変換してmain.goと同じ場所に置き、そのままビルドするだけでした。
理屈の上ではどのOSでも動くはずですが、手元にWindowsのPCしかないため、ほかのOSでの動作はまだ確認できていません。
サンプルの見た目

中身は簡単なものですが、ボタンやリストはVuetifyのおかげできれいな見た目になっています。テキストボックスもプレースホルダー付きです。ほぼWebページなので、日本語入力も特に何もせず使えます。
このためにHTML、CSS、JavaScriptとVuetifyの勉強を始めたばかりで、レイアウトはまだ調整しきれていません。
感じたこと
慣れれば、C#でWPFを使うより簡単に見栄えの良い画面が作れそうな手応えがあります。趣味のアプリはしばらくこの組み合わせで作り、腕を磨くつもりです。
性能の面でも、すべてをJavaScriptで書くElectronのアプリより、内部の処理をGoに任せれば有利になるはずです。
フロントエンドのためにJavaScriptを学んだことで、思わぬ収穫もありました。WPFではグラフの表示にずいぶん苦労しましたが、JavaScriptには簡単にきれいなグラフを描けるライブラリがあります。新しいアプリづくりに活かせそうです。
GoでGUIを作るときの、自分なりの型が決まりました。しばらくはVuetifyの勉強が続きそうです。