BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース GitHubがデスクトップクライアントをElectronで再実装

GitHubがデスクトップクライアントをElectronで再実装

ブックマーク

原文(投稿日:2017/05/16)へのリンク

GitHubはmacOSとWindowsクライアントのアプリをネイティブの実装からElectronベースに書き換えた、と同社でクライアントアプリケーションのディレクターをしているPhil Haack氏が発表した。GitHub Desktop Betaに加えて、GitHubはGitとGitHubとの統合が最初からサポートされている新しいAtomのベータ版も発表した。

この書き換えを行ったチームの説明の通り、GitHubがスクラッチでデスクトップクライアントを書き換えた理由はマルチプラットフォームサポートのコストを最小化するためだ。WindowsとmacOSで別々のネイティブアプリを作るのは完全に異なるスタックが必要となる。実装、デバッグ、メンテナンスの全てを2度行わなければならない。また、Linuxのような別のプラットフォームに対応するなら、また別の労力が必要になる。

複数のプラットフォーム向けにネイティブアプリを作るのはスケールしないのです。

GitHubのチームはウェブの技術をベースに新しいアプリを作ることにした。特に、ElectronとTypeScriptだ。ウェブの技術を使う利点の中には、コーディングしてビルドして走らせるというサイクルが数分から数秒に短縮されたということがある。コードの変更がすぐ反映される。しかし、ウェブの技術でデスクトップアプリを作るということにも、限界と制限がないということはない。

ウェブは完璧なプラットフォームではありません。しかし、ネイティブアプリも完璧なプラットフォームの上で構築されていません。Electronで実装するということは、トレードオフがあるということです。

ここでElectronの出番だ、と開発者は説明する。Electronはプラットフォーム固有のAPIの上のElectronを拡張することで手を入れる余地が生まれるからだ。

それから1年の開発を経て、新しいElectronベースのクライアントがダウンロードできるようになり、フォークできるようになった。InfoQはPhil Haack氏にElectronへのコミットメントについて詳しい話を聞いた。

Electronは当初から、著名な多くのアプリに使われていました。クロスプラットフォームのソリューションを作る上で、現在の状況では、Electronの役割はどのようなものでしょうか。

Electronはウェブが第一級のプラットフォームになったという成功を活用します。Electronとウェブは、お互いに反対側から同じ方向を目指しています。デスクトップアプリ開発でウェブの技術のスキルを生かしたいと考えているユーザーがいるという事実がElectronの成功の一つです。

最近、RedditでElectronが“デスクトップ向けFlash”と呼ばれ、議論が白熱したことがありました。これは、Electronのメモリの要件と性能によるものです。Electronに批判的な開発者に向けて、これが大事な技術であることを説明するとしたら、どんな話をしますか。

前に述べた通り、Electronはプラットフォームとしてのウェブ技術の成功に乗っています。Chromium、Node、JavaScript、HTML、CSSなどが、Google、Microsoft、Facebook、Slack、GitHubなどの大規模な投資の下で今後も改善され続けます。Electronはその恩恵を受けます。これらの技術には多くのエネルギーが投入されているのです。Electronに批判的な人には、これらの技術の一般的な歴史、どのようにして改善され、今後も改善されていくか、について示します。Electronを改善することについても良い議論ができています。

モバイルでのElectronについてはどうでしょうか。意見を聞かせてください。

コミュニティからは、彼らの望んでいる方向だと聞いています。しかし、現在、90%のコードベースがChromiumだということを考えると、ChromiumとNode.jsが動く環境に縛り付けられてしまいます。iOSは除外されますし、Androidも難しいです。APIに互換性のある実装を開発するのには大きな機会がありそうです。

また、同社はGitとGithub統合がされている新しいAtomを発表した。Atom 1.18ベータとして利用できる。GitのワークフローをAtomの中から管理できるようにするのが目的だ。これによって、コンテキスト切り替えが少なくなり、コマンドラインや別のツールが不要になる。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT