【エレクトロン】

Electron(エレクトロン) とは?

最終更新:
💡 Webの技術でデスクトップアプリが作れる魔法の箱

JavaScript・HTML・CSSというWeb技術でデスクトップアプリを作れるフレームワーク。ChromiumとNode.jsを組み込んでおり、1つのコードからWindows・macOS・Linux向けのアプリを作れる。

📌 このページのポイント
Electron の構成とマルチOS対応 Electron Chromium HTML / CSS / JS 画面の描画 レンダラープロセス Node.js ファイル操作 OS機能アクセス メインプロセス Windows macOS Linux 採用アプリ VS Code Slack Discord Notion 注意点 zipで80〜100MBほど Chromiumを同梱 定期的な更新が必要
Electronの構成とマルチOS対応のイメージ
ひよこ ひよこ
デスクトップアプリって、普通は専用の言語で作るんじゃないの?
ペンギン先生 ペンギン先生
OSごとに用意された言語や道具で作る方法もあるよ。Electronは別のやり方で、JavaScript・HTML・CSSで書いた1つのコードから、Windows・macOS・Linux向けのアプリを作れるようにしたフレームワークなんだ
ひよこ ひよこ
どうやってWebの技術でデスクトップアプリになるの?
ペンギン先生 ペンギン先生
ElectronはChromium(ブラウザーの中身)とNode.jsをアプリの中に組み込んでいるんだ。画面はWebページと同じ仕組みで表示する「レンダラープロセス」が担当し、ウィンドウの作成やOSの機能を使う処理はNode.jsが動く「メインプロセス」が担当する。この役割分担はChromiumの作りを受け継いだものだよ
ひよこ ひよこ
じゃあ画面側のコードから、ファイルを直接読み書きできるの?
ペンギン先生 ペンギン先生
既定ではできないよ。レンダラープロセスは、安全のためにNode.jsのAPIを直接は使えない設定になっているんだ。必要な機能だけを「プリロードスクリプト」とcontextBridgeという仕組みで画面側に渡す作りにする。外から読み込んだWebコンテンツに、パソコンを自由に操作させないための工夫だね
ひよこ ひよこ
弱点はあるの?
ペンギン先生 ペンギン先生
アプリごとにChromiumを同梱するから、配布サイズが大きくなりやすいんだ。公式ドキュメントは、zip圧縮したElectronアプリはふつう80〜100MBほどと説明していて、サイズを小さくしたい用途には別の方法を勧めているよ。たとえばTauriは、OSに入っているWebViewを使うことでサイズを小さくする方針のフレームワークなんだ
ひよこ ひよこ
わざわざChromiumを同梱するのはなぜ?
ペンギン先生 ペンギン先生
どのOSでも同じブラウザーエンジンで動かすためだよ。OSに入っているWebViewを使う方式だと、サポートする一番古いOSに入っているバージョンに合わせる必要が出てくる。同梱すれば、アプリ側でバージョンを決められるんだ。そのかわり更新は自分で追う必要があって、Electronは8週間ごとに新しいメジャーバージョンを出し、最新の3つをサポート対象にしているよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Electron」って出てきたら「Web技術でデスクトップアプリを作れるフレームワーク」と思えればだいたいOK!
📖 おまけ:英語の意味
「Electron」 = 電子
💬 もともとはGitHubがAtomエディター用に作った「Atom Shell」で、2015年4月にElectronへ改名されたよ。今はOpenJS Foundationのプロジェクトなんだ

参考資料

← 用語集にもどる