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


151

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、などの一般的に使用されるツールとの互換性など
  • ... 等々。

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


それまでの違いを見て、運が良かったですか?今週末、掘り下げを行うかもしれません
ステファン、2014年

@stefanまだです、いいえ:/実際的な意味でnode-webkitを少し実験しましたが、それをまだ超えていません。違いの正式なドキュメントを探すことに
慣れ

3
さて、ここに、アトムシェルチームgithub.com/atom/atom-shell/blob/master/docs/development/…で概説されているnode-webkitとアトムシェルの主な違いがあります。
sepulchered

2
部屋の象はどうですか:デバッグ。私はnw.jsを使用しており、Linuxプラットフォームを使用して開発する場合、デバッグが非常に不足していることがわかりました。大規模なアプリケーションを開発するには、デバッグはIMOの重要な機能です。話したい望ましい機能のリストにデバッグを追加できますか?
Timothy C. Quinn

@JavaScriptDudeおかげで、私はそれをリストに追加しました。
Sven Slootweg、2015年

回答:


42

私は2か月ほど前に同様の調査を行い、結局、node-webkitを使いました。node-webkitの最大の利点は、node.jsとnpmです。npmのパッケージ管理は本当に素晴らしく、ノードはファイルシステムへのアクセスをうまく行っています。

ブラケットシェルは面白そうに見えましたが、素敵なIDE以外は、このIDEを他のIDEと同じかそれ以上に優れたものにすることができませんでした。彼らは、「ブラケットシェルは、ブラケットプロジェクトで使用するためにのみ維持されている」ことをはっきりと示しています。

https://github.com/adobe/brackets-shell#overview

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

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

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

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


ブラケットシェルとアトムシェルでのMP4再生に関して違いがあるかどうか、詳しく説明してもらえますか?これがほとんどのWebKitディストリビューションの奇妙なことなのか、それとも単にノードWebkitの奇妙なことなのかは、あなたの答えからははっきりしません。
Sven Slootweg、2014年

MP4の再生が問題になるのは、Webkitの問題です。あなたはwebkitが本当はクロムであることを覚えておく必要があり、AV技術がオープンでフリーでない限り、そのままではサポートしません。標準的な答えは、ffmpegsumoを置換/再構築することです。現在のChromeインストールのものと置き換えると、かなりうまくいくようです。
ジョンW.クラーク

1
たまたま、Bracketsが構築されてbracket-shellおり、Atomが構築されてatom-shellいますが、任意のエディターまたはIDEを使用して、それらでコードを作成できます。OPが望んでいるのは、3の技術的な違いのほうがいいと思います。3つのランタイムのような環境でTodoMVCのようなものを見るのは素晴らしいことです。
Ehtesh Choudhury 2014

@SvenSlootwegコーデックのサポートは、使用しているWebkitで使用されるライブラリの詳細です。3つすべてがWebキットのベースとしてChromiumを使用しているため、すべて同じコーデックの問題があり、同じ方法で解決できます。
John W. Clark、


40

私は過去数日間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のダッシュボードサンプルテンプレートといくつかのノードモジュール(bluebird、Paypal SDK、Teamwork PM Client)を正常に組み込んで、やや複雑なアプリを作成しました。それは私に数日かかり、その仕事はうまくいきます。

Atom-Shellについて否定的なことは何も考えられません。Atom-Shellは、その堅固で安定していて、高速で、コーディングが簡単です。これが誰かの役に立つことを願っています。


特にnode-webkitとの違いについて詳しく教えてください。私の知る限り、これらのポイントのすべて(ほとんど?)もnode-webkitによって提供されていますが、何か足りないものがあるかどうかはわかりません。
Sven Slootweg、2014

こんにちはルーク、アトムシェルアプリケーションを自分で更新することは可能ですか?
Munish Kapoor 2014

@SvenSlootweg申し訳ありませんが、数か月前のコメントがありませんでした。残念ながら、私はnode-webkitに精通しておらず、2つを効果的に比較できませんでした。しかし、私はこのStrongLoopの記事を読みました。これは、少なくともAtomシェルが新境地を開いたことを示しています。:\
Luke Chavers 2014年

@MunishKapoor開発用?最新のリリースをダウンロードできます。多かれ少なかれ、古いatomディレクトリの名前を変更して、新しいものに置き換えます。彼らは「npm update」のような巧妙なプロセスを持っているかもしれません-しかし私はそれを調査していません。クライアントでapp + atomシェルを更新する場合、それらは直接(まったく)対応しておらず、おそらくインストーラーまたはその他の外部プラットフォームを使用することを期待しています。けれども私はこの記事を彼らのドキュメントで興味深いと思いました。
ルークチャバース2014年

1
@Moonwalkerはい、それは「と呼ばれるアプリ使用ASARの包装のために」。(「アプリケーションのパッケージ化」を参照)。このNode-Webkit / Atom-Shellの比較も見つけました。
ルークチャバーズ

22

NW.jsは、Web標準を完全にサポートするだけでなく、次のようなネイティブアプリ開発のための非標準機能のリストをサポートしています。

メニューやトレイなど、wikiにはもっとたくさんの情報があります。


3
キオスクモードのロジャーで+1。それは将来使用する機能であることがわかります。うまくいけばデバッグ機能が改善されてnw.jsに留まることができますが、今は真剣にAtom Electronに切り替えて水域をテストすることを検討しています。nw.jsのデバッグが少し面倒だと思いました。
Timothy C. Quinn

私はそこに「JSソースの保護」が含まれていることについて少し心配しています-それは機能しないという意味でDRMと同じクラスにあります。そもそも、「保護」する必要がなかったものから「保護」するだけです。私に機能として宣伝されるべきもののようではないようです。
Sven Slootweg、2015年

1
これはDRM for Webのようなものではありません-JSプログラマーは、ネイティブアプリケーションを開発するときに、ソースコードをマシンコードにコンパイルするなど、C ++プログラマーと同じように何でもできるはずです。
Roger Wang

@JavaScriptDudeはdevtoolsを意味しますか?次のバージョン(0.13)では、エクスペリエンスはChromeブラウザとほぼ同じになります。
ロジャー王

@ロジャー。返信が遅れて申し訳ありません。はい、devtools。次の制限があり、その一部はdevtools自体にある可能性があることがわかりました。1)起動された新しいウィンドウのデバッグがありません。2)リモートデバッグが機能しなかった。3)ブレークポイントを呼び出したり、変数やソースを開いたりするのを監視できない(アプリを再起動するたびに、すべての設定がクリアされる)4)(本当に重要)require()でロードされたコードをデバッグできない
ティモシーC.クイン

10

私はしばらくの間ブラケットシェルを使ってきました、これが私の発見のいくつかです:

  • ブラケットシェルは、主にブラケットIDEプロジェクトのシェルとして開発されますが、プロジェクトは任意のWebアプリケーションを実行できます。あなたはそれをあなた自身のhtmlページに向ける必要があるだけです。クリントベリーは、これだけを行うことについて優れたチュートリアルを書いています。http//clintberry.com/2013/html5-desktop-apps-with-brackets-shell/
  • プロジェクトはアドビに支えられており、多くの活動があります
  • ドキュメントはより良いかもしれません

  • プラットフォームサポート Windows、Mac、Linuxをサポートしています。インストーラパッケージも作成できます。私はWinとMacでのみテストしましたが、うまく動作します。

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

6
私がブラックスシェルから遠ざかったのは、彼ら自身の概観でした。 github.com/adobe/brackets-shell "注:Brackets-shellはBracketsプロジェクトでのみ使用できるようにメンテナンスされています。他のプロジェクトのアプリシェルとして使用することに間違いなく成功している人もいますが、公式には提供していませんアプリシェルを簡単に再利用できるようにするために多くの作業を行っていません。多くの人は、設計上より一般的なnode-webkitのようなプロジェクトを使用する方が簡単だと思うでしょう。」
ジョンW.クラーク

5

注意すべき点の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はWindows 7以降のみをサポートしているため、おそらくNW.js(0.14.7)の方が適しています。

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


1
MSはそれをやった後にChromeがサポートを停止していない- -サポートは2015年末まで延長されたchrome.blogspot.com/2015/04/...
カロルKlepacki

electron(atom-shell)はRHEL 6.6以下では動作せず、ソースコードはこれらのディストリビューションでコンパイルできません。
Michael Kruglos、2015


あなたは使用することができNW-ビルダーを MASのバージョンを作成します。あり、アームがNW.jsのためのビルドにも。
Jaredcheeda
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.