Electron を使ってみた感想を書いていきます。
※ 自分はまだまだ Electron を使いこなせてはいないと思います。簡単なアプリを作って、Windows で実行体(exe)を生成できる程度です。
良い点
あくまで主観ですが、次のような点が良いなぁと思いました。
- クロスプラットフォームなアプリが作れる
- JavaScript, HTML, CSS で開発できる
- Node.js などの API が使える
特に2つ目は、Web技術を知っていれば、他の GUI 開発技術を勉強しなくて良いので嬉しいところです。CSSフレームワークを使ったり、カッコよいサイトを参考にできるので、アプリの UI もモダンな感じにできると思います。レスポンシブにしやすいのも良いところだと思いました。
悪い点
こちらも主観になります。Electron のバージョンアップなどで改善されていく可能性はあります。
- 日本語の文献が少ない
- アプリのサイズが大きい
- 初回起動が少し遅いかも
- 動きが少し重いかも
アプリのサイズですが、今のところ小さいアプリでも 200MB くらいになると思います。ただ、Java のデスクトップアプリも、JVM を梱包して配布できる形式にすると同じくらいになります(javapackager を使用)。クロスプラットフォームなアプリで、ランタイムとかを梱包するものは仕方ないのかと思います。
初回起動や動きは、PCのスペック次第なところがあります。それなりのスペック(高速なCPU、SSD、等)だと、初回起動も速くて軽い気がします。特に Visual Studio Code や、GitHub Desktop は起動も速くて軽いです。ただ、自分が作ったアプリは、大手のアプリほど起動を速くできませんでした。チューニングとかが必要なのかもしれません。
用途
あくまでデスクトップアプリを作るための技術なんだと思いました。
なので、
- 既存の Webサービスを Electronアプリにしてみる
- Electron アプリを Web でも公開する
といった用途は、ちょっと違う気がしました。
Webサービスとかはブラウザで使い続けたほうが便利だと思います。クライアントへの配布やインストールとかもいらないので。パフォーマンスとかも、あんまり変わらないと思います。Electron も Chrome(クロミニウム)を使ってるので。
Electron のサイトに "Build cross platform desktop apps with JavaScript, HTML, and CSS" と書かれている通り、Web開発じゃなくてデスクトップアプリ開発向けで、Node.js の API を使ってローカルファイルにアクセスするとか、そういった使い方なんだと。
自分も使い始めは資源を Webでも(Webサーバを介して)公開したいなと思ってたんですが、徐々に Node.js に依存するコードが増えていきました。でも、それが自然というか、そういうものなんだと分かってきました。
有名な Electronアプリ(Microsoft の Code や GitHub の Desktop や Atom など)も、ローカルにインストールして使うデスクトップアプリで、ブラウザから使うものじゃないなぁと。