treviewにlorcaでGUIをつけてみた

前作った「GitHubのtrendingって面白いけど毎日同じのでがちだから今日の新着的なのだけみたいなー」と思って作ったやつに画面をつけてみました。

GitHub Trendingに毎日同じリポジトリがいるのを見たくないので俺がその日初めて見るリポジトリだけを見るためのツールを作った - チョキチョキかにさん

インストールとかはGitHubからです。とりあえずmacosの64ビットのバイナリしかないです。

github.com

画面はこんなんです。余白が多いのでなんとかしたい。

f:id:inabajunmr:20190211003059p:plain

技術とかの話

Lorca

Lorcaを使いました。 github.com

めちゃくちゃ雑にいうとElectronみたいな感じで画面作れてさらにJSの関数にGoの関数をバインディングできるやつです。 ただし

Unlike Electron it doesn't bundle Chrome into the app package, but rather reuses the one that is already installed.

です。 HTMLだけ書けばあとは雰囲気でCLIGUIにできる気がします。 データの受け渡しはJS->Goは勝手にJSONをオブジェクトにマッピングしてくれて、逆はJSONで受け渡しができます。

JSからGoはこんな感じでGoからJSはこんな感じでした。

静的コンテンツ込みのビルドがよくわかんなかったのでゴニョゴニョしたらできたのでそっちはQiitaにあげました。

qiita.com

ロスコンパイルはよくわかんないというか手元で起動できなくてどっちにしろテストできないので一旦やめました。workspaceとかを使えばいいという説もあります。

Vue.js

使ったけどなんか使った範囲ではわかったけど、って感じでなんとも言えない感じでした。ただまあ使った範囲では便利っぽい感じでした。 とりあえずAPIでとってくるデータとformの入力値を定義して前者はビューにバインドして後者はwatchでGoの関数を呼び出してました。それくらいしかしてないです。

今ふと「開発用のVue.jsでそのままバイナリをリリースしてしまった・・・」ってのを思い出したんですが全部HTMLに直接CDNで埋め込んでるのでビルドがめんどくさいですね。 この辺のフローとかはちゃんと学ばないといけない気がしました。