Wails+Go+React+Typescriptで作るデスクトップアプリ(Dropbox除外設定アプリ)
こんにちは。音楽ディレクター&プロデューサーの村上です。
またアプリを作ったので、ご紹介です。
今回はまたニッチなアプリで、Dropboxの除外設定を一括で行うだけのアプリです。主にソースコードなどを同期する時にnode_modulesフォルダやdistフォルダなど、ローカルでは使うけど、他のマシンに同期したくないものがある時に使いたくて作りました。
というかむしろ他の使い方はあまり思い浮かびません。
こちらからダウンロードできます。
さて、今回の裏テーマは、「Electron以外のフレームワークを使ってデスクトップアプリを作ってみる」です。そこで、Wailsに挑戦してみることにしました。
Wailsは、バックエンドにGO(Googleが開発したかなり新しい言語)、フロントエンドにJavascriptを使用するデスクトップアプリの開発フレームワークで、今どきのツールらしくViteを組み合わせたビルドまで一貫して提供するモダンで至れり尽くせりなCLIと、Typescriptの型生成までサポートした、フロントエンドとバックエンド関数のスムーズな接続が特徴です。
比較対象としてはやはりTauriが近くて、RustがGOになったものと考えればほぼ想像つくと思います。ただし、前述の関数の同期方法がすごく便利で感心しました。また、Rustに比べるとGOはかなり初心者にもやさしいです。
GUIの表示もTauriと同じく、OSにインストールされているWebViewを使うため、アプリのバンドルサイズも小さいです。
Electronは歴史もあるのでライブラリや周辺技術が充実していたりする利点はありますが、とにかくPreloadを介したフロントとバックエンドの通信がまだるっこしくて、TauriやWailsに触れるともう戻りたくなくなります。
個人的には初めて触ったGOの扱いやすさに感心したので、個人的には圧倒的にWails推しです。ただ、Tauriはモバイルまで視野に入れているのでそこは今後大きなアドバンテージになってくるかもしれません。
そんな感じです。
ではでは、村上でした。