Electron 0.37 の新機能
Electron 0.37
が先日 リリースされました。Chrome 47 から Chrome 49 へのメジャーアップグレードと、いくつかの新しいコア API が入っています。 この最新リリースでは、Chrome 48 と Chrome 49 に搭載されているすべての新機能が搭載されています。 これにより、CSS カスタムプロパティ、ES6 サポートの強化、KeyboardEvent
の改善、Promise
の改善、その他多くの新機能が Electron アプリで利用可能になります。
新機能
CSS カスタムプロパティ
Sass や Less のようなプリプロセス言語を使用したことがある方は 変数 に慣れていると思いますが、これを用いてカラースキームやレイアウトなどの再利用可能な値を定義できます。 変数は、スタイルシートを DRY に保ちメンテナンス性を高めるのに役立ちます。
CSS カスタムプロパティは、再利用可能という点ではプリプロセスでの変数に似ていますが、JavaScript で操作できる という更に強力で柔軟性の高い独自性があります。 この小さいながらも強力な機能により、 CSS ハードウェアアクセラレーション の恩恵を受けながら、ビジュアルインターフェイスに動的な変更を加えられ、フロントエンドコードとスタイルシートとの間でコードの重複を減らせます。
CSS カスタムプロパティの詳細は、MDN の記事 や Google Chrome のデモ を参照してください。
CSS 変数の動作
シンプルな変数の例として、アプリ内での実行時の変更を見ていきましょう。
:root {
--awesome-color: #a5ecfa;
}
body {
background-color: var(--awesome-color);
}
変数の値は直接 JavaScript で取得や変更ができます。
// 変数の値 '#A5ECFA' を取得
let color = window
.getComputedStyle(document.body)
.getPropertyValue('--awesome-color');
// 変数の値を 'orange' に設定
document.body.style.setProperty('--awesome-color', 'orange');
変数の値は、デベロッパー ツールの Styles セクションからも編集でき、素早いフィードバックと微調整ができます。
KeyboardEvent.code
プロパティ
Chrome 48 では、新しい code
プロパティが KeyboardEvent
イベントで利用できるようになりました。これは、オペレーティングシステムのキーボードレイアウトとは独立した、押された物理キーです。
これにより、Electron アプリにカスタムキーボードショートカットを実装する際に、マシンや構成の違いに影響されずに正確で一貫性のあるキーボードショートカットを実装できるようになります。
window.addEventListener('keydown', function (event) {
console.log(`${event.code} was pressed.`);
});
こちらのサンプル で実際にどうなるのか確認できます。
Promise 拒否イベント
Chrome 49 では、拒否された Promise が処理 されなかった場合に通知される window
のイベントを 2 つ追加しました。
window.addEventListener('unhandledrejection', function (event) {
console.log('A rejected promise was unhandled', event.promise, event.reason);
});
window.addEventListener('rejectionhandled', function (event) {
console.log('A rejected promise was handled', event.promise, event.reason);
});
こちらのサンプル で実際にどうなるのか確認できます。