この記事を読むのに必要な時間:およそ 1 分
目覚ましく進化するWebの技術
みなさんは,Webブラウザを使わない日があるでしょうか。メール,ネットショッピング,データ管理,動画の閲覧,チャットなど,さまざまな用途でブラウザは使われます。いまや,Webブラウザは私たちの生活に欠かせないものとなっています。
こうした背景には,ここ数10年のWeb技術の進化があります。HTML5の登場以降,各ブラウザはHTML5に対応するようになりました。それにともない,ブラウザの表現力を上げるためのさまざまなフレームワークやライブラリが作られたのです。
サーバサイドでJavaScriptを動かせる「Node.js」も登場しました。これにより,Webの技術はブラウザ上で動かせるアプリケーションだけでなく,デスクトップ上で動かすことのできるアプリケーションも開発できる能力を得たのです。
Electronとは
そんな中登場したのが,「Electron」です。GitHub社製のテキストエディタである「Atom」のために作られたフレームワークで,Atomのほかに,「Slack」「Visual Studio Code」「Kobito」といったアプリケーションにも使われています。
このElectronが注目された理由は,なんといっても「JavaScript/HTML/CSSのようなWebの技術でデスクトップアプリケーションが開発できる」という点です。普段Webアプリケーションを作成している人であれば,開発言語やライブラリを新たに学ぶ必要がありません。画面表示にはChromiumというブラウザを利用し,ファイル操作などの機能はNode.jsを実行エンジンとして使用しています。
クロスプラットフォーム開発が行えるのも,魅力の1つです。Windows,macOS,Linuxに対応しています。メニューやダイアログ操作といった,デスクトップアプリケーション必須の機能は,Electronが内部的にAPIをラップし,JavaScriptから呼び出せるようにしています。それにより,プラットフォームの違いを意識することなく,コードを書くことができます。
デスクトップアプリケーションを作ってみよう!
本書『Electronではじめるアプリ開発』では,このElectronを使用して,3つのデスクトップアプリケーションを作成します。
Firebaseを使ってリアルタイム通信をしたチャットアプリケーション
ライブプレビューやPDF出力に対応したMarkdownエディタ
画面をドラッグ操作で切り取り,TwitterにPostするキャプチャアプリケーション
アプリケーションのテスト,パッケージングの方法も解説します。
セキュリティ対応は大丈夫?
Webの技術を使ってアプリケーションを解説できるのがElectronのメリットですが,特有のセキュリティリスクも存在します。
Electronは,Nodeインテグレーション機能のおかげで,Node.jsを利用できます。しかし一方で,Node.jsを利用したさまざまな攻撃が行えることも意味しているのです。通常のWebアプリケーションよりもはるかに危険度が高いといえるでしょう。
では,どのような対策を取ればよいのでしょうか。開発時には,次の3つを検討してみてください。
- Nodeインテグレーションを無効にする
- webviewを利用する
- shellモジュールを利用する
本書でアプリケーション開発を体験することで,Electronの知識を身につけながら,自分だけのデスクトップアプリケーションを作ってみてはいかがでしょ