Wails
https://wails.app/
A framework for building desktop applications using Go & Web Technologies.
- バックエンドはGo、フロントエンドはHTML/CSS/JS
- JSとGoの関数/メソッドがバインディングされている
- promiseとしてコールするらしい
- JSとGoの関数/メソッドがバインディングされている
- Mac、Linux、Windowsをサポート(Windowsはバグがありこの[PR] (https://github.com/wailsapp/wails/pull/82)が必要みたい)
- レンダリングエンジンは組み込みブラウザではなくネイティブ
- これを使っているみたい https://github.com/zserge/webview
- Tiny cross-platform webview library for C/C++/Golang. Uses WebKit (Gtk/Cocoa) and MSHTML (Windows)
- これを使っているみたい https://github.com/zserge/webview
- レンダリングエンジンは組み込みブラウザではなくネイティブ
インストール、初期設定
$ go get github.com/wailsapp/wails/cmd/wails
$ wails setup
goの環境構築は出来ている前提です
go 1.12以上が推奨みたいです
プロジェクトテンプレート作成
$ wails init my-app
ビルド、起動
$ cd my-app
$ wails build
$ ./my-project
これだけでデスクトップアプリが起動しました
圧倒的に立ち上げが早いですね
ディレクトリ中身
$ ls
frontend/ go.mod go.sum main.go my-project* project.json
$ ls frontend
babel.config.js node_modules/ package.json.md5 README.md vue.config.js
dist/ package.json package-lock.json src/
$ ls frontend/src
App.vue assets/ components/ main.js wailsbridge.js
wails initではfrontendはVueになるようですが恐らくvue以外で書き換えても動かせると思います
Electronとの違い
- ネイティブレンダリング
- 軽量
- 現時点ではGUIメニューがない
その他
- Webview on RailsからWrailsと名付けられたらしい
- awesome-goに追加された
- 現時点ではクロスコンパイルができない (Linux環境でWindows用バイナリを作ったりできない)
- v1.0のロードマップには入っているみたい
- GoでちょっとしたGUIツールを簡単に作れそうですね
- 暫く追っかけてみたいと思います