リリース・改善中
Framework · 2013年公開
Electron は JavaScript、HTML、CSS で Windows・macOS・Linux 向けのデスクトップアプリを作るオープンソースのフレームワークです。
Electron は Web 技術でデスクトップアプリケーションを作るためのオープンソースのフレームワークです。描画を担う Chromium と OS の機能にアクセスする Node.js を一つのランタイムにまとめているため、同じコードから Windows・macOS・Linux 向けのアプリを作れます。2013 年に GitHub で Atom エディターの基盤 Atom Shell として始まり、現在は OpenJS Foundation のプロジェクトとして開発されています。
Electron は、Web 開発の経験があるチームが短期間でデスクトップアプリを作りたいときに力を発揮します。Visual Studio Code や Slack、Discord のデスクトップ版にも使われており、React や Vue などの Web フレームワークと npm のエコシステムをそのまま活用できます。一方で、アプリごとに Chromium を同梱するため、インストーラーのサイズやメモリ使用量は大きくなりがちな点を最初に考慮しておく必要があります。
始めるには Node.js をインストールし、Electron Forge でプロジェクトを作成するか、空のプロジェクトに electron パッケージを追加します。公式チュートリアルでは、メインプロセス、プリロードスクリプト、レンダラーの構成と、それらをつなぐ IPC 通信を順を追って説明しています。Electron Fiddle を使えば、プロジェクトを用意せずに小さなサンプルを実行して API を試せます。
Chromium が HTML と CSS を描画し、メインプロセスでは Node.js でファイルシステムやネットワークなどの OS 機能を扱います。
同じ JavaScript・TypeScript のコードから Windows・macOS・Linux 向けアプリを作り、各プラットフォームのインストーラーとして配布できます。
ウィンドウ、メニュー、トレイアイコン、通知、ファイルダイアログ、クリップボード、自動アップデートなどを JavaScript の API で利用できます。
メインとレンダラーのプロセスを分け、コンテキスト分離とプリロードスクリプトで画面に必要な機能だけを公開します。
Electron は Node.js と npm でインストールして実行します。Node.js の LTS 版をインストールし、両方のバージョンが表示されることを確認します。
node -v && npm -v新しいフォルダーで package.json を作成し、electron を開発用の依存関係としてインストールします。続いて package.json の main フィールドを main.js にし、electron . を実行する start スクリプトを追加します。
mkdir my-electron-app && cd my-electron-app && npm init -y && npm install --save-dev electronパッケージングや公開まで揃ったプロジェクトが欲しい場合は、公式ツール Electron Forge の作成コマンドを使います。生成されたフォルダーで npm start を実行するとアプリが起動します。
npm init electron-app@latest my-appmain.js はメインプロセスの入口です。アプリの準備ができると 800×600 の BrowserWindow を作成し、同じフォルダーの index.html を読み込みます。macOS ではすべてのウィンドウを閉じてもアプリが残るのが慣例なので、それ以外の OS でのみアプリを終了します。main.js の隣に簡単な index.html を置き、npm start で実行します。
main.js
const { app, BrowserWindow } = require('electron')
function createWindow() {
const win = new BrowserWindow({ width: 800, height: 600 })
win.loadFile('index.html')
}
app.whenReady().then(() => {
createWindow()
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') app.quit()
})
npm init -y
npm install --save-dev electron
npm pkg set main=main.js scripts.start="electron ."
npm startインストールから Electron の中心となる考え方まで、6 章で順を追って学びます。
Electron について質問し、経験を共有し、意見を交わす場所です。
まだディスカッションはありません。最初の話題を始めましょう。
コメント 0件
ログイン · ログインするとコメントできます。
最初のコメントを書いてみましょう。