皆さん、Electron 使ってる?
さくっと、アプリ作りたいときにいいですよねElectron。
有名ですし。
でも
Electronで作ったアプリケーション毎に、ブラウザインストールしているようなものですもの。
正直、作りたいものに比べて、ライブラリが大きすぎる。
Eelのサイズは?
約30KB(多少手を加えてはいる)
Python自体が約170MBあるけど、Electron製アプリを4,5個入れたら吹っ飛ぶ
Eelって何をやっているの?
平たく言うと
- Pythonでローカルサーバ立ち上げ
- Chromeをappmodeで起動してindex.htmlのパスを渡す
くらい
Chromeないとダメ?
No
Eel/chrome.py を参考に
find_chrome_[OS name]が返すブラウザのパスを変えれば、FirefoxでもIEでもEdgeでもVivaldiでも開ける。
実行するときに書くもの
Electronを始めるとき
index.js とかを用意して npm run start
package.json(略)
{
  "scripts": {
    "start": "electron .",
  }
}
index.js
const {app, BrowserWindow, ipcMain} = require('electron');
const isDebug = true;
var win = null;
const createMainWindow = () => {
	isDebug ? console.log(require.resolve('electron')) : void 0;
	win = new BrowserWindow({
		title: '',
		width: 1280,
		height: 720,
		minWidth: 350,
		minHeight: 100,
		alwaysOnTop: false,
		darkTheme: true,
		fullscreenable: true,
		webPreferences: {
			devTools: isDebug
		}
	});
	win.webContents.openDevTools();
	win.loadURL(`file://${__dirname}/index.html`);
	win.on('closed', () => {win = null;});
};
app.on('window-all-closed', () => process.platform !== 'darwin' ? app.quit() : void 0);
app.on('acrivate', () => win === null ? createMainWindow() : void 0);
app.on('ready', createMainWindow);
ディレクトリ構成
/
┝ web/
│ └ ........
┝ package.json
┝ index.html
└ index.js
Eelを始めるとき
main.py とか用意して py main.py
main.py
import eel
eel.init('web')
eel.start('index.html')
ディレクトリ構成
/
┝ web/
│ └ index.html
└ main.py
超簡単でしょ?
Eelでデストップアプリはできるの?
できるよ。そう、PyInstallerがあればね


