web-dev-qa-db-ja.com

デスクトップアプリにHTML、CSS、JavaScriptが使用されないのはなぜですか?

HTML、CSS、JavaScriptを使用して、美しい(そして便利な)UIを構築できます(特に、現在はHTML5とCSS3があります)。多くの人がすでにそれらを知っています。まだ手が届きませんが、ウェブアプリ全体をデスクトップアプリに組み込むのはどれほど難しいのでしょうか。アプリをホストする前に、ローカルサーバーでアプリをテストしています。

私の意見では、これはデスクトップアプリにブームをもたらす素晴らしいシンプルなアイデアです。さらに、これらのアプリはすでに多くのコードをWebアプリと共有しているため、接続性を向上できる可能性があります。

なぜそれが行われていないのですか?

17
kapv89

Adobeはすでに Adobe Air でそれを行い、Mozillaも Prism でそれを行いました。 Googleは Google Gears でデスクトップとウェブのギャップを埋めようとしました。

しかし、一般的に、Webテクノロジーは多くのタイプのデスクトップアプリケーションには適していません。その理由を次に示します。

  • すぐに利用できる完全なハードウェアアクセスはありません。
  • 低レベルのシステムアクセスはありません。
  • 簡単に利用できるファイルシステムへのアクセスはありません(前述のテクノロジーではfsへのアクセスが可能ですが、それぞれが独自のソリューションとして使用できます)。
  • パフォーマンス。ネイティブのコンパイル済みアプリケーションは、一般にJavascriptアプリケーションよりも高速です。
  • 競合他社がソースコードを盗むのは簡単
  • 特別なタスクに使用できるライブラリはありません。例画像処理、サウンドエンコーディング、データベースアクセス、ネットワークプログラミングなど...
30

頭に浮かぶフレームワークはAdobe Airです。これにより、Web開発者はJavascript/HTMLを使用してデスクトップアプリケーションを開発できます。それ自体のJavascript/HTMLは、デスクトップアプリケーションには適していません。これは、デスクトップアプリケーションが、オペレーティングシステムによって提供されるサービス(例:ファイルを開く、他のアプリケーションを起動するなど。JavaScriptだけではそのようなサービスへのアクセスは許可されないため、何か特別なものが必要であり、Adobe Airのようなフレームワークがその追加の接着剤を提供します。

2
davidk01

IMO、私はGUIをレイアウトする方法としてHTMLとCSSを採用していません。これらの言語について知っているコンパイラがないからです。コードにエラーがある場合は、自分で探しなければならないか、気付かない場合もあります(または、HTMLサイトにアクセスしてテストします)。

C++では、コードが正しくない限り(ランタイムの問題をキャッチする場合を除いて)コンパイルできないのが好きです。

また、CSSでHTMLを使用するなど、CSSとHTMLがまだうまく連携していないと思います。HTMLコードと使用方法によっては、floatの結果は異なる結果になります-win32で絶対位置を使用する場合と比較すると、一貫性がありませんまたは素晴らしいJava Swingレイアウトマネージャー。

1
user14321

これを行うには、いくつかの方法があります。 Mozilla Application Framework があります。これは、FirefoxなどのWebブラウザでよく使用されますが、たとえば、ActiveStateの Komodo IDE でも使用されます。

Qt Quick には、CSSとJavaScriptに似た言語を持つQtもあります。

1
Andrew Dalke

少し遅れますが、Firefoxで AsYouWish を使用する場合(または、ファイルを圧縮してツールでテストすることを気にしない場合は、Firefoxアドオンを作成します)、次のようなHTMLでアプリを作成できます。デスクトップ権限。 WebAppFind (現在はWindowsのみ)を使用する場合、デスクトップファイルをデスクトップから直接(ドラッグアンドドロップの必要なしに)Webアプリに開くこともできます。

免責事項:これらの(オープンソース)アドオンは私が作成しました。

0
Brett Zamir

JavaScript、HTML、CSSを使用して、Windowsストア、Windows Phone、および「ユニバーサルアプリ」経由のXBox用のアプリを作成できます。 (明確にするために、File | New Project ...を使用してVisual Studioで開始します)

これは、上記を使用して、UXおよびアプリケーションコードをnative APIの実装に対してビルドします。

当然のことながら、これは、Microsoftがプラットフォームをより多くの開発者に開放しようとする試みと見なされるのではなく、C#およびXAMLベースの開発を非推奨と見なされました。これらは、質問がネイティブであると考える種類のデスクトップアプリであるとは限りません。

0
Murph

主な理由の1つは、アプリが簡単に盗まれたりコピーされたりしたくない場合は、何らかの方法でパッケージ化されたファイルに直接リンクするWebControlを保持するアプリケーションも作成する必要があることです。
実際、これを行うアプリケーションがあります。 Titanium Appceleratorもその1つです。前回見たときはバグが多くサポートも不十分だったので、使用をお勧めしません。それが価値があるかどうかについて、独自の調査を行う必要があります。

0
James P. Wright