web-dev-qa-db-ja.com

NW.js、Brackets-Shell、Electronの機能の違いは何ですか?

TideSDKは事実上死んでいるので、HTML/CSS/JSアプリケーションをスタンドアロンのデスクトップアプリケーションとして実行するための代替「ラッパー」を検討しました。これまでに実行した3つの実行可能なオプションは、 NW.js (以前のnode-webkit)、 brackets-Shell 、および Electron (以前はatom-Shell)。

問題は、機能セット、互換性などの点で3つの間で十分に完全な比較が行われていないように見えることです。これを(客観的な)違いの(ほぼ)正規のスレッドに変えたいと思っています。特に次の3つ

  • プラットフォームのサポート;オペレーティングシステム、依存関係など.
  • 言語機能サポート、HTML5、CSS3、およびJavaScriptに関する限り。 「HTML5ビデオは機能しますか。もしそうなら、どのコーデックが利用可能ですか?」
  • トレイアイコン、ポップアップ通知、OSレンダリングメニューバーなどの非標準の追加機能
  • 拡張性;例えば。ネイティブコードを「プラグイン」する機能、Node.jsと通信する機能など。
  • アーキテクチャ;特に、開発者としての毎日の使用に影響するアーキテクチャの違い。
  • デバッグ;開発ツール、node-inspectorなどの一般的に使用されるツールとの互換性などが含まれます。
  • ... 等々。

アプリケーション開発者として選択する際に重要な、客観的で技術的な違いは何ですか?

148
Sven Slootweg

約2か月前に同様の調査を行い、最終的にはnode-webkitを使用しました。 node-webkitの最大の利点は、node.jsとnpmです。 npmのパッケージ管理は本当に素晴らしいものであり、nodeはファイルシステムへのアクセスに優れています。

Brackets-Shellはおもしろそうに見えましたが、Nice IDE以外は、これが他のどの製品よりも優れているとか、優れているとは思いませんでした。彼らは、「ブラケットシェルはブラケットプロジェクトで使用するためにのみ維持される」ことを非常に明確にしています。

https://github.com/Adobe/brackets-Shell#overview

Atom-Shellは最近アクティブになったように見えますが、実際にはWebkitランタイムにアタッチされているエディター/ IDEを実際に書いているという点で、ブラケットによく似ています。また、node.jsの上に構築されます。これには、中学生の化学反応を思い出さずにオンラインで検索するのが難しいという欠点があります。

新しいエディターはほしくありませんし、ほとんどのプログラマーはすでにお気に入りを持っています。実際のアプリケーション開発では、すべてWebkitを使用しているため、ほとんど同じように機能します。基本的には、その90〜95%をWebサイトのように記述し、ネイティブ部分といくつかの構成を処理します。

これらの3つのすべてのプラットフォームに当てはまります-Windows、Mac、およびLinux言語サポートで実行-HTML5、CSS3、およびJavascript:javascriptを実行するため、ほぼすべてのライブラリ/フレームワークをダウンロードして実行できます。

Webkitの大きな注意点はコーデックのサポートです。通常、サポートするためにdll/soを再構築しない限り、非フリービデオコーデックで問題が発生します。たとえば、出荷されたnode-webkitはmp4ビデオを再生しません。

40
John W. Clark

私は過去数日間にわたってAtom-Shellで遊んでいましたが、今のところそれを愛しています。

それについての最も良い部分は、GitHubによってサポートされていることです..これにより、特に大きな支持を獲得している場合は、長期にわたってプラットフォームに慣れることができます。 Node.jsの主要な寄稿者であるStrongLoopとの契約により、Node.jsを直接改善することでも可能になりました。 (彼らは、Joyentでさえ他のどの会社よりも多くのNode.jsコア開発者を雇用していると主張しています)。

また、始めるのはかなり快適だと感じました。構造を学び、最初の概念実証を実行するのに約1日かかりました。とてもかっこいい。


箇条書き:

  • プラットフォームのサポート:Windows、Linux、Mac OSX( 詳細はこちら
  • 言語機能のサポート:HTML5、CSS3、Chromium経由のJS-これまでのところ、問題はありませんが、ビデオを特にテストしていません。
  • ネイティブ機能:ネイティブアプリメニュー、タスクトレイサポート、グローバルホットキー、プロトコルハンドラサポート(これまで見てきた)
  • 拡張性:Node.jsの優れた統合。クライアントとサーバーの両方がNode.jsモジュールとネイティブを「必要」にすることができます。また、Bowerライブラリ(jQueryを含む)を問題なくテストできました。
  • アーキテクチャ:他のポイントで説明しましたが、一般的に非常に滑らかです。

(11/25/14)の更新:Atom-Shellの公式の使用例はまだ見つかっていませんが、私自身が使用する小さなアプリをいくつか作成します。最も複雑なのは、PMソフトウェアからタイムログを取得し、Paypalの請求書を作成するアプリです。

プラットフォームについての私の意見は前向きなままです。とても素晴らしいです。

アプリの請求時に、Bootstrap 3の Dashboard Example Template と、いくつかのノードモジュール(bluebird、Paypal SDK、Teamwork PM Client)を正常に作成して作成しましたやや複雑なアプリ。数日かかりましたが、うまく機能します。

私は、Atom-Shell、その堅実で安定した、高速で、コーディングが簡単なことについて、否定的なことを本当に考えることはできません。これが誰かの助けになることを願っています。

39
Luke Chavers

NW.jsは、Web標準を完全にサポートするだけでなく、以下を含むネイティブアプリ開発用の非標準機能のリストをサポートします。

Wikiには、メニュー、トレイなど、さらに多くのものがあります。

21
Roger Wang

しばらくの間、ブラケットシェルを使用してきましたが、ここに私の発見をいくつか示します。

  • ブラケット-シェルは、主にブラケットIDEプロジェクトの下でシェルとして開発されますが、プロジェクトは任意のWebアプリケーションを実行できます。独自のHTMLページを指すようにするだけです。 Clint Berryは、これを行うことに関する優れたチュートリアルを作成しました。 http://clintberry.com/2013/html5-desktop-apps-with-brackets-Shell/
  • このプロジェクトはアドビが支援しており、多くの活動を行っています
  • 文書化の方が良い

  • プラットフォームのサポートWindows、Mac、Linuxをサポートしています。インストーラーパッケージも作成できます。 WinとMacでしかテストしていません。

  • 機能サポートhtml5、css3、js。 Html5ビデオはそのままでは機能しませんが、非常に簡単に有効にできます(デフォルトでは、ffmpegsumo.dllはインストーラーにコピーされません。コピーするようにスクリプトを変更しても機能します)。
  • ネイティブ機能メニューバー、「ファイルを開く」、ファイルシステムアクセス。必要なのはノードプロセスとの通信だけなので、これらのいずれも使用していません。
  • 拡張性nodejsが組み込まれており、Webアプリケーションからノードと通信できます。このようにして、nodeを使用してファイルシステムなどにアクセスできます。
  • architectureプロジェクトは適切に設定されており、Shellプロジェクトとその内部で実行されている独自のWebアプリをうまく分離しています。独自のアプリケーションでは、ブラケット機能(ファイルシステムアクセス、ノードプロセスとの通信など)へのアクセスを提供するグローバルappshellオブジェクトを使用できます。
10
Karel Braeckman

注意するべきことの1つは、ElectronがWindows Vistaを公式にサポートしていないことです。 Vistaの市場シェアは約 OSX 10.9と10.10の中間 (両方ともElectronによって完全にサポートされています)。 Vistaも2017年までMicrosoftによってサポートされています。

NW.jsは、VistaおよびOSX 10.9+で正常に動作します。 NW.jsは、Ubuntu、Debian、Zorin、Manjaro、Arch、および他のほとんどのDebianベースのLinux OSで動作します。 Electronは、懸念しているプラ​​ットフォーム上のUbuntu固有のバグを修正するためにPRを拒否しました。

NW.jsはXPでも機能します。現在、市場の18%はまだXP上にあります。したがって、デスクトップアプリケーションがより一般的な目的である場合、またはXPでまだレイトアダプターにアクセスしたい場合、ElectronはWin 7以降のみをサポートしているため、NW.js(0.14.7)を使用する方がよいでしょう。

NW.js 0.12.3を使用している場合は、OSX 10.6+と、UbuntuやWin XP +などの非常に古いバージョンのDebianベースのLinux OSもサポートできます。ただし、これらのレガシーシステムだけに特別なビルドを行い、新しいOSには新しいバージョンのNW.jsを使用することをお勧めします。

5
Jaredcheeda