Goで書かれたデスクトップアプリケーション用のElectronでGUIを作成したいと思います(現在はコマンドラインツールです)。
ElectronとGoのプロセス間で通信するための慣習は何ですか?
GoバイナリをAPIとして使用するだけですか?何らかのWebsocket通信?
Electronで記述されたアプリケーションとそのバックエンドの相互作用はWebブラウザーとまったく同じであるため、同じオプション(Web Api、Web Sockets、Ajaxなど)があります。
go-astilectron を使用して、GOおよびHTML/JS/CSS(Electronを使用)でクロスプラットフォームGUIアプリを構築できます(開示:I ' m著者)
Electronアプリからコマンドラインアプリを実行するには、 child_process.spawn
そしてstdin
/stdout
を介して通信します。
Murloc GolangのElectronラッパーで、この種のMac用アプリを簡単に作成できます。彼らはWindowsで作業しており、他のプラットフォームへの貢献を探しています。
Murlockと同様に、あえて Webview libraryを提案できますか。これは、Windows 7以降、MacOS、Linux、およびOpenBSDで実行されるWebkitおよびMSHTMLの薄いラッパーです。
Electronよりもずっと小さくて簡単です。また、結果のアプリは小さくなり、メモリ消費が少なくなります。
小さなスタンドアロンバイナリにコンパイルされるTodoアプリの例については、 https://github.com/zserge/webview/tree/master/examples/todo-go をご覧ください。