Web標準の技術でデスクトップアプリケーションを作るフレームワークまとめ
今やJavaScriptはあらゆる場所で動作するようになっています。Webブラウザはもちろん、サーバサイド、IoTなどの小さなデバイス機器など一度覚えてしまえば多くの環境におけるアプリケーション開発で利用できるでしょう。
そんなWeb技術を使ってデスクトップアプリケーションを開発できるのが今回紹介するフレームワークたちです。WindowsやmacOSで動くアプリケーションが作れれば業務で大いに役立つことでしょう。
alexflint/gallium: Build desktop applications in Go and HTML.
GoでHTMLファイルなどをラッピングし、デスクトップアプリケーションを開発できます。JavaScriptの中でGoが使える訳ではありません。メニューやタスクバーなどの処理をGoで記述できるようになっています。
alexflint/gallium: Build desktop applications in Go and HTML.
electron/electron: Build cross platform desktop apps with JavaScript, HTML, and CSS
この手のフレームワークとしては最も有名です。HTMLファイルを開き、そこからNode.jsの機能も呼び出せるようになっています。ローカルのファイルなども操作できます。レンダリングエンジンを内包するのでバイナリファイルのサイズが大きくなるのが欠点です。
electron/electron: Build cross platform desktop apps with JavaScript, HTML, and CSS
pojala/electrino: Desktop runtime for apps built on web technologies, using the system’s own web browser engine
Electronとほぼ変わりませんが、Webレンダリングエンジンを内包せず、OS標準のブラウザのものを使います。そのためバイナリファイルのサイズが小さくて済みます。その代わりにブラウザの互換性によって動作しない場合があります。
NW.js
既存のWebサイトをアプリ化するのがとても簡単です。実行ファイルもElectronに比べるとシンプルな構成になっています。通常のWebサイトに加えてNode.jsの機能を呼び出すことも可能です。
BrentNoorda/slfsrv: Create simple, cross-platform GUI applications, or wrap GUIs around command-line applications, using HTML/JS/CSS and your own browser.
Webサーバとして立ち上がり、ローカルのファイルを扱うためのAPIが幾つか追加されます。最終的にバイナリを生成することもできますので、ごく簡単なWebアプリケーションファイルで、その結果をファイル出力すると言った目的に使えそうです。
jyapayne/Web2Executable: Uses NW.js to generate “native” apps for already existing web apps.
WebアプリをExeファイル化するソフトウェアです。特定のWebサイトをそのままラッピングし、同じドメインではないURLをクリックすると通常使っているブラウザに飛ばせるようになります。
jyapayne/Web2Executable: Uses NW.js to generate “native” apps for already existing web apps.
mozilla/qbrt: CLI to a Gecko desktop app runtime
コマンドラインでURLを渡してあげるだけでパッケージングされたアプリケーションが立ち上がります。エンジンがこの手のソフトウェアでよく使われるWebKitではなく、Geckoエンジンなのが一つの特徴です。コマンドラインなしで起動できるようにすることも可能です。
mozilla/qbrt: CLI to a Gecko desktop app runtime
mozilla/positron: a experimental, Electron-compatible runtime on top of Gecko
Electronとの互換性を重視しつつ、エンジンをGeckoにしたのが Positron です。Mozillaの下で開発されているので期待が持てるプロジェクトになっています。HTML5の実装状況もWebKitとGeckoで異なりますので、Geckoでしか実装されていないものを使う際には便利そうです。
mozilla/positron: a experimental, Electron-compatible runtime on top of Gecko
業務要件によってはWebブラウザではなくデスクトップアプリケーションでないと難しい場合もあるでしょう。そうした時にC#やSwiftなどに行くのでなく、JavaScriptでまとめて提供することで開発リソースの低減や管理の一本化が可能になります。ぜひお試しください。
コメントは受け付けていません。