本文へスキップ

Electron 1.0におけるAPI変更

·4分間の読書

Electronは、Atom-Shellと呼ばれていた初期から、ChromiumのコンテンツモジュールとネイティブGUIコンポーネントのための優れたクロスプラットフォームJavaScript APIを提供することに取り組んできました。APIは非常に有機的に開始され、時間の経過とともに、初期設計を改善するためにいくつかの変更が行われました。


Electronが1.0リリースに向けて準備を進めている今、最後の細かいAPIの詳細に対処することにより、変更の機会を設けたいと思います。以下に説明する変更は**0.35.x**に含まれており、古いAPIは非推奨警告を報告するため、将来の1.0リリースに備えて最新の状態にすることができます。Electron 1.0は数ヶ月後に出荷されるため、これらの変更が破壊的になるまでには時間があります。

非推奨警告

デフォルトでは、非推奨のAPIを使用している場合に警告が表示されます。警告をオフにするには、process.noDeprecationtrueに設定します。非推奨APIの使用ソースを追跡するには、警告を表示する代わりに例外をスローするようにprocess.throwDeprecationtrueに設定するか、非推奨のトレースを表示するようにprocess.traceDeprecationtrueに設定します。

組み込みモジュールの新しい使用方法

組み込みモジュールは、独立したモジュールに分割されるのではなく、1つのモジュールにグループ化されるようになりました。そのため、他のモジュールとの競合なしに使用できます

var app = require('electron').app;
var BrowserWindow = require('electron').BrowserWindow;

下位互換性のために、require('app')の古い方法は引き続きサポートされていますが、無効にすることもできます。

require('electron').hideInternalModules();
require('app'); // throws error.

remoteモジュールのより簡単な使用方法

組み込みモジュールの使用方法が変更されたため、レンダラープロセスでメインプロセス側のモジュールを使用することが容易になりました。アクセスするだけで使用できるようになりましたremoteの属性を使用します。

// New way.
var app = require('electron').remote.app;
var BrowserWindow = require('electron').remote.BrowserWindow;

長いrequireチェーンを使用する代わりに

// Old way.
var app = require('electron').remote.require('app');
var BrowserWindow = require('electron').remote.require('BrowserWindow');

ipcモジュールの分割

ipcモジュールはメインプロセスとレンダラープロセスの両方で存在し、APIは各側で異なっていました。これは新しいユーザーにとって非常に混乱を招きます。混乱を避けるため、メインプロセスではモジュール名をipcMainに、レンダラープロセスではipcRendererに変更しました。

// In main process.
var ipcMain = require('electron').ipcMain;
// In renderer process.
var ipcRenderer = require('electron').ipcRenderer;

そして、ipcRendererモジュールでは、メッセージの処理方法と一致するように、メッセージを受信したときに追加のeventオブジェクトが追加されましたipcMainモジュール。

ipcRenderer.on('message', function (event) {
console.log(event);
});

BrowserWindowオプションの標準化

BrowserWindowオプションは、他のAPIのオプションに基づいて異なるスタイルがあり、名前の-のため、JavaScriptでは使いにくかったです。現在は、従来のJavaScript名に標準化されています。

new BrowserWindow({ minWidth: 800, minHeight: 600 });

API名に関するDOMの規約に従う

ElectronのAPI名は、UrlURLのように、すべてのAPI名でcamelCaseを優先していましたが、DOMには独自の規約があり、URLUrlIdIDの代わりに使用することを好みます。DOMのスタイルに合わせて、次のAPIの名前変更を行いました。

  • UrlURLに名前変更されました。
  • CspCSPに名前変更されました。

これらの変更のため、アプリでElectron v0.35.0を使用すると、多くの非推奨事項が表示されます。それらを修正する簡単な方法は、UrlのすべてのインスタンスをURLに置き換えることです。

Trayのイベント名の変更

Trayイベント名のスタイルは他のモジュールとは少し異なっていたため、他のモジュールと一致するように名前が変更されました。

  • clickedclickに名前変更されました。
  • double-clickeddouble-clickに名前変更されました。
  • right-clickedright-clickに名前変更されました。