techium

このブログは何かに追われないと頑張れない人たちが週一更新をノルマに技術情報を発信するブログです。もし何か調査して欲しい内容がありましたら、@kobashinG or @muchiki0226 までいただけますと気が向いたら調査するかもしれません。

Electronのライフサイクル

Electronをアプリを作成する際にライフサイクルを知る必要があります。 どのタイミングでどのような挙動をすべきかの考える時にそれぞれのイベントのタイミングを把握しておきましょう。

platform依存のイベントとlogin系のイベントを除いたライフサイクルは次の様になります。

ライフサイクル

f:id:muchiki0226:20160306221816p:plain

イベントの詳細

各イベントの詳細は次の表のようになります。

イベント 詳細
will-finish-launching 基本的な起動が完了した時のイベント。WindowsLinuxはreadyイベントと同じ意味を持ちますが、OS Xの場合はapplicationWillFinishLaunchingの通知と同じ意味を持ちます。自動アップデータやクラッシュレポートなどを実施するタイミング。
ready 初期化完了イベント。BrowserWindowのインスタンスを生成し、ウィンドウを表示したりなどを実施する。
window-all-closed すべてのウィンドウを閉じたイベント。全ウィンドウを閉じた時にアプリの終了を促したりを実施する。
before-quit ウィンドウを閉じている最中で、アプリが終了を始めたイベント
will-quit ウィンドウが閉じ、アプリ終了前のイベント。
quit アプリ終了中イベント。
browser-window-blur BrowserWindowからフォーカスが外れたイベント。
browser-window-focus BrowserWindowにフォーカスがあたったイベント。
browser-window-created BrowserWindowが作成されたイベント。

上記のようなイベントを取得できるため、そのタイミングによって動作を考え実装を行う事になります。

サンプルコード

動きを確認するサンプル

github.com