\r\n\r\n
現在、デスクトップ端末にはさまざまな種類があり、その上で動作するOSも多種多様です。そのため、すべてのプログラムを動作させることは困難です。そこで、この問題を解決する方法として生まれたのが、eOpenフレームワークです。
Electronは、クロスプラットフォームのアプリケーションを容易に開発するためのソフトウェアフレームワークです。これは、Windows、Mac、Linuxなど、ほとんどのデスクトップOSに対応しています。もともと、フル機能のクロスプラットフォーム・テキストエディタであるAtom(Electronの名前の由来)向けに設計されたものです。
つまり、開発者からすると、このフレームワークを使うことで、各プラットフォームに特化したプログラムを書く必要がない(ほとんどの場合)のです。これは、ユーザーと作り手に多くのメリットをもたらします。
Electronのユニークなところは、アプリケーションを書くことができるところです。従来のプログラミング言語とは異なり、Electronを用いたアプリケーションは、今日の多くのWebページの3つの主要コンポーネントで書かれています。つまり、HTML(Hypertext Markup Language)、CSS(Cascading Style Sheets)、JS(JavaScript)である。
そのため、electronopenframeworkは、インターネットブラウザがウェブページをレンダリングする方法と同じように機能するのです。つまり、見た目にはHTMLとCSSを使い、内部の作業や操作にはJSを使うということです。実は、このフレームワークは、Webブラウザと多くの共通点があるのです。基本的には、デスクトップアプリケーションとして使用するための強力なウェブページを作成することになります。
エレクトロニクスは、すべての作業を行うだけでなく、他のソフトウェアに依存しているのです。GoogleのウェブブラウザChromeは、そのために書かれたアプリケーションを処理し、表示するために使用されているのです。しかし、eを単にウェブブラウザと呼ぶのは短絡的である。
また、このフレームワークにはnode.jsというものが使われており、電子化されたプログラムをネイティブアプリケーションのように動作させることができるようになっています。node.jsは、主にWebサーバー言語であり、訪問者にインタラクティブなコンテンツを提供するために設計されています。そのため、ファイルの編集など特定の機能を必要とし、電子工作などに便利です。
さらに、eはグラフィカルなウィンドウなどを表示する方法を提供します。これはnode.jsと一緒で、node.jsはこのようなことはしない。また、MacBookProのタッチスクリーンなど、対象OSとのより良い連携方法を具体的に提示します。
このソフトウェアフレームワークがどのようなものであるかを考えると、多くの潜在的な意味を持ちますが、そのうちのいくつかを後で詳しく説明します。
Electronは様々なプログラムのバックボーンとなっており、そのほとんどがWindows、macOS、Linuxで利用可能です。前述したように、このフレームワークはWeb技術をベースにしているため、それを使って書かれたソフトウェアとの互換性がかなり高く保たれます。
これは、ユーザーにとっても開発者にとっても良いことです。プログラムの代替品を探す手間が省けることは、OSの切り替えのハードルを下げることにつながります。さらに、ソフトウェアを書く人にとっても、最小限の労力でより高いユーザーカバレッジを実現することができます。
例えば、Discordは比較的新しい音声アプリケーションで、デスクトップではElectronオープンフレームワークを使ってネイティブアプリケーションを実装しています(モバイルは別問題)。visualstudioのコードもこのフレームワークを使って動いており、Atomと同じ系統の強力なテキストエディターになっています。
電子機器などに比べると、クロスプラットフォームのアプリケーションを簡単に実装する方法はあまりありません。特にHTML/CSS/JSのような言語では。つまり、デスクトップが何であろうと、より多くのプログラムをどこでも使えるようになるのです。
ElectronはWebで使われる言語だけでアプリケーションを作ることができるため、プログラム開発の敷居を下げることができるのです。つまり、Webページの書き方がわかれば、Electronの使い方がわかるということです。
また、オープンフレームワークを使ったプログラム用に書かれたコードを(実質的に)適応させる必要がないことも特筆すべきメリットである。C言語で書かれたアプリケーションの場合、異なるプラットフォームで使えるように変換するために別のソフトウェアが必要になるのと比較すると、この点は優れています。
その代わり、エレクトロンに必要なのはその特別な実行環境だけで、あとはそれに沿ってコードをパッケージ化すれば、アプリケーションを立ち上げることができる。
アプリケーションをより簡単かつ迅速に書くことができるため、プログラムの開発スピードが上がり、また、ユーザー層がより広く分散されることを意味します。
エレクトロニクスを構築するために使用される技術のおかげで、それを使用するアプリケーションは、実行するプラットフォームに関係なく、同じ外観と動作をする傾向があります。LinuxでもmacOSでも、ほとんど違いはありません(明示的に生成される部分を除く)。
これは、ブラウザ上でウェブページが表示されるのと同じような仕組みです。HTMLとCSSをベースにしているため、ある種のアプリケーションを簡単にデザインすることが可能です。Chromiumをメインコンポーネントの1つとして使用することで、常に当該ウェブブラウザのようなものを表示することができます。
しかし、これは外見だけに限ったことではありません。サポートされているすべてのデスクトップマシンで共通のバックエンドを共有しているため、アプリケーションでも同様の動作が期待できます。このアクションを実行するために使用されるJavaScriptは、プラットフォームに関係なく一貫して実行されます。
とはいえ、アプリケーションの種類によっては、eOpenフレームワークが必ずしも有用であるとは限りません。例えば、モバイルの開発者は、このプラットフォームがデスクトップ用しかないため、他の場所を探さなければなりません。確かにプログラムを素早く書くには良い方法ですが、軽量なアプリケーションを求める人には適さないかもしれません。
ElectronはどのようなOSとも相性が良いのですが、その根底にあるのはWeb技術です。また、(クロムの基となる)クロムは、資源に依存していることがすべての原因ではありません。そのため、些細なことにフレームワークを使うのは、あまり良い選択ではないかもしれません。繰り返しになりますが、すべては仕事に適した道具を使うことです。
もし能力と時間があれば、Electronのオープンフレームワークを使ってプログラムを開発することを検討されますか?
写真提供:Tolokonov/photo