開発
環境の
構築
エレクトロンの開発環境を構築しアプリを開発する
- エレクトロンを導入する前に再び問う。なぜアプリ化?
前章でも解説しましたが、WEBブラウザで展開するカレンダーでは、ブラウザを閉じると通知が来ない。
デスクトップへ通知がこないと、気が付かないで予定時刻が過ぎ去ってしまう。
これでは予定表をつくる意味がない。
OSへインストールできるアプリにすると通知でサウンドも鳴らせ、さらにタスクバーへアイコンを表示させ、PC起動と同時にバックグランドで常時予定を監視し時間がきたら通知してくれる。
つまり使えるリマインダーの条件はOSへインストールできることが重要になるのです。アプリ化はわかった、ではなぜエレクトロンか?ElectronはHTML / CSS / JavaScript で作ったWebアプリを、そのまま Windows / Mac / Linux のアプリに変換できる仕組みを持っている。つまり移植が楽にできる。開発コストが非常に少なくすむ。
基盤がNode.js + Chromium(googleクロム)なので、他のアプリと違いHTML、CSS、Javascriptがそのまま使え、WEB技術がそのまま使える。アプリ専用のネイティブ言語を覚える必要がない。
しかもOS専用のインストーラーを作成できる。windows の場合、EXEファイルのインストーラを書き出せる。
余談ですが、VSCode、Slack、Discord もElectronで作られているそうです。
エレクトロンの開発環境を構築する
- 構成内容
ファイル構成は下記の様に構築します。
第一章までで制作したindex.htmlはJS,CSSひとまとめにしてこの段落の下で確認できます。
また、PHPは今後不要なので削除します。D:\xampp8\htdocs\shv-reminder ├index.html ← カレンダー 兼リマインダー ├main.js ← Electron起動用 └node_modules/ ← npm install electron したら自動でできる
Powershellを使いコマンドでインストール
- まずはNode.js とElectronをインストール
エレクトロンはNode.js上に展開されますので、まずはNode.jsをインストールします。
ここからの作業はコマンド入力がメインになります。
数行で済むので、コマンド入力が苦手な人でもなんとかなるかと思います。
windowsはデフォルトのコマンドプロンプトもいいですが、私はpowershellを使ってます。
さて、インストールする場所はプロジェクト用のフォルダを専用に作り、そこへインストールします。
私は『shv-reminder』としました。
ちなみに私の場合、毎回プロジェクトディレクトリへ行くのが面倒なのでpowerShellのショートカットに作業フォルダの場所を設定して使ってます。
electronまでインストールするインストールサイズは5~600MBとかなりでかいですが、まあ、そういうもののようで気にせず進めましょう。(-_-;)
※Node.jsのインストールは割と環境に左右されず、楽にインストールできます。
Electronのインストールまで完了したらルートに node_modulesフォルダ ができます。mkdir my-calendar cd my-calendar npm init -y npm install electron --save-devNode.js の簡単な説明Node.js はElectron以外にもいろいろに使われます。Net上のJS関連プロジェクトはほとんどNode.jsでインストールできるものがほとんどです。私の場合は他に、WebPackで使ってます。
さて、Node.js はシステム全体にインストールされる(例:C:\Program Files\nodejs\)のでプロジェクトのフォルダで npm install すると、そのフォルダに node_modules が作られます。
このnode_modulesはプロジェクト別に必ず自動で作られます。名前は同じでも中身はまったく別、今回はelectron専用のモジュールになります。
つまり、Electronは 「そのプロジェクトのフォルダ」 にインストールされるのが普通です
そのためプロジェクトのサイズがかなり膨大になります。
私の場合でいうと600MB以上になりました。
なんとかしたいなと思ってます(-_-;)
必要ファイルの作成
- そのほかの必要ファイルの作成:main.js
これまでの作業でNode.jsとElectronが入りました。
この後はpowershellから離れていくつかJSONファイルなど必要なファイルを作成します。
まずはmain.jsを作成します。const { app, BrowserWindow, Notification } = require('electron'); function createWindow() { const win = new BrowserWindow({ width: 1000, height: 800, webPreferences: { nodeIntegration: true } }); win.loadFile('index.html'); // ←これまで作ったカレンダーがそのまま使える! } app.whenReady().then(createWindow); app.on('window-all-closed', () => { if (process.platform !== 'darwin') app.quit(); });そのほかの必要ファイルの作成:package.jsonpackage.json にスタートスクリプトを追記
今後使うコマンドを設定します。
これで Electronアプリとしてカレンダーが開くようになります。
普通のブラウザじゃなく、アプリのウィンドウとして出てきます。"scripts": { "start": "electron ." }package.json にmain.jsを設定最初の方に'description'というプロパティがあるので
"index.js"を"main.js"と修正。//package.jsonサンプル↓ "name": "shv-reminder", "version": "1.0.0", "description": "Simple Reminder and Calendar", "main": "main.js",
