Electronはnodeを使ってJavaScriptでデスクトップアプリケーションを開発できます。UI部分は致し方ないとしても、デスクトップ側の機能については別な言語を使いたいと言う方もいるのではないでしょうか。 もしあなたがGoが好きなのであれば、Wailsを使ってみましょう。GoとWebテクノロジーでデスクトップアプリケーションが開発できます。

Wailsの使い方

Wailsのサンプルコードです。JavaScriptファイルを読み込んで、GUIアプリになります。

package main

import (
  "github.com/leaanthony/mewn"
  "github.com/wailsapp/wails"
)

func basic() string {
  return "Hello World!"
}

func main() {

  js := mewn.String("./frontend/dist/app.js")
  css := mewn.String("./frontend/dist/app.css")

  app := wails.CreateApp(&wails.AppConfig{
    Width:  1024,
    Height: 768,
    Title:  "My Project",
    JS:     js,
    CSS:    css,
    Colour: "#131313",
  })
  app.Bind(basic)
  app.Run()
}

ビルドしたアプリです。実行ファイルは一つです。

メニューを出しました。

アラートです。

Wailsはbackendというオブジェクトを通してGoのメソッドを呼び出せます。UIフレームワークとしてVueやReact、Angularのテンプレートが用意されており、さくさくと開発が進められるようにCLI機能を充実させています。

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

Wails wailsapp/wails: Create desktop apps using Go and Web Technologies