ElectronよりNWjsが使いやすかった話
クロスプラットフォームおデスクトップアプリケーションを開発する場合、選択肢に上がるのはElectron
、NWjs
、NeutrinoJS
あたりでしょう。
NeutrinoJS
はまだ日が浅く、機能面の不足が大きいので実質、Electron
、NWjs
になるかと思います。
Electron
、NWjs
を少しですが両方使ったので感想をまとめます。
Electronとは
Electronは、GitHubが開発したオープンソースのソフトウェアフレームワークである。 ChromiumとNode.jsを使っており、HTML、CSS、JavaScriptのようなWeb技術で、macOS、Windows、Linuxに対応したデスクトップアプリケーションをつくることができる。
NWjsとは
NW.js(エヌダブリュージェイエス)とは、HTML/CSS/JavaScriptで書かれたWebアプリケーションを、デスクトップ(Windows/Mac/Linux) 向けにパッケージングし、ネイティブアプリケーションとして実行するためのクロスプラットフォーム実行環境です。(「node-webkit」から「NW.js」に改名されました。)
NWjsとElectronについて
Electronは情報量が多い
npmのダウンロード数やGithubのスター数もNWjs
より多く、VSCodeやAtomがElectron製なこともあり、NWjs
より人気です。
それにともなって、情報量も多く躓いたときに解決しやすいです。
それに比べて、NWjs
は圧倒的に情報が少ないです。またドキュメントも昔風で読みにくく、サンプルコードがないです。
NWjsはシンプルで分かりやすい
NWjs
はウェブアプリケーションを作る要領でデスクトップアプリケーションを作成できます。
画面の作成処理など面倒なことはしなくてよいのが楽です。
Electron
はメインプロセスやレンダープロセスとのIPC通信が必要になる、都度ブラウザ生成処理が必要など複雑です。
Electron
のJavaScriptコンテキストの明確な分離、個別のノードコンテキストの導入、および相互通信機能は、多くのパワーと柔軟性を提供します。しかし、NW.js
もコンテキストの分離も出来ますし、Electron
ほど複雑ではないのが良いです。
NW.jsは1枚ペラの、WebアプリをEXE化するだけではない
コラム:ElectronとNW.js-マンガで分かる JavaScriptプログラミング講座にて、1枚ペラの、WebアプリをEXE化するのに向いている。とあります。 しかし、そのようことはなく、ReactやVueなどのフレームワークも利用できますし、ES6やTypeScriptももちろん使用できます。 SPAを構築したことがある方なら慣れたように開発が可能です。
フレームワークの規律や利便性のおかげで1ページだけのアプリケーションを作るものではなくなっています。 NW.jsのReactボイラープレート
結局
Webアプリケーションを今まで開発してた人、Webアプリケーションを移行するならNW.js
からが良いと思います。大規模なものや会社などではElectron
を使いたいですが、小さめであればまずNW.js
から始めてみてもよいのでは。
両方簡単に始められるのでまずはお試しあれ。