9

システム間(win、mac、linux)で使用するデスクトップアプリを開発したいのですが、3つのプラットフォームすべてに対して1回コードを記述し、完全にスクリプト可能な組み込みWebコンポーネントを使用できるGUIフレームワークはありますか?

アプリとウェブページのJavaScriptの間で通信するためのAPIが必要です。

私はC#、JavaScript、そして少しのpythonを知っています。

4

9 に答える 9

24

正式にはチタンとして知られているTideSDKもあります。これにより、Chrome開発者ツールの実行など、必要なほとんどすべてのことを実行するWebKit HTML/JavaScriptウィジェットが提供されます。


以下で編集してください。TideSDK開発者からのフィードバックを使用して更新を統合します。

TideSDK(以前のTitanium Desktop)は、HTML5、CSS3、JavaScript、およびその他の一般的なスクリプト言語を使用してマルチプラットフォームのデスクトップアプリを作成するためのオープンソースソフトウェア開発キットです。プロジェクトはGithubでホストされています。メインのWebサイトには包括的なドキュメントがあり、アクティブな開発者コミュニティをホストしています。何千人もの開発者が以前のTitaniumDesktopを使用してデスクトップアプリケーションを開発してきました。おそらく最も認識されているアプリケーションはWunderlistです

TideSDKを使用すると、Web開発スキルを使用してデスクトップアプリを作成し、さまざまな特権APIを提供できます。Python、php、またはrubyの成熟したライブラリを使用して、アプリの機能を簡単に拡張できます。

TideSDKの心臓部は、WebKitコンポーネントにコンパイルされたオブジェクトブリッジです。このブリッジを使用すると、JavaScriptと同様に、他のスクリプト言語(python、php、ruby)をDOMのスクリプトタグを使用してHTMLページで実行できます。アプリケーション内から.py、.rb、または.phpファイルを直接呼び出すこともできます。

TideSDKは、基本的なテキストエディタでのみ使用できます。多くの開発者はより豊富なツールを好みますが、特別なツールやIDEは必要ありません。TideSDKには、アプリケーションをローカルで実行するための(開発およびデバッグ用)コマンドラインツールと、開発中のOSのインストーラーにパッケージ化するためのコマンドラインツールが含まれています(Windows、Mac OSX、およびLinuxがサポートされています)。必要なすべてのインストーラーを入手するために、一般的なTideSDK開発環境には、各OSの物理マシンまたは仮想マシンが含まれます。TideSDKチームは、別のより良い方法をすぐに実装することを目指しています。

TideSDKチームは現在、TideSDKBuilderアプリを開発しています。TideSDKアプリを作成、実行、パッケージ化するためのGUIを提供します。開発者がより早く始めるために、TideSDKBuilderは新機能であるScaffoldsを導入しています。足場はすべてのボイラープレートを生成して、BackboneMVCなどの特定の開発パターンを持つプロジェクトをインスタンス化します。開発者は、TideSDK Builderを使用して、スキャフォールドを作成、インポート、および共有できます。

TideSDKのロードマップには、JavaScriptを使用したよりモジュール化された開発エクスペリエンスを開発者に提供することを目的としたCommonJSfor1.4の実装が含まれています。

こんにちは世界

TideSDKプロジェクトは、コアプロジェクトファイルを含むResourcesフォルダーを含むいくつかの定型コードで構成されています。以下は、サポートされているすべてのプラットフォームで実行される単純なhelloworldアプリの構造を示しています。

├── CHANGELOG.txt
├── LICENSE.txt
├── README.md
├── Resources
│   ├── app.js
│   ├── default_app_logo.png
│   └── index.html
├── manifest
└── tiapp.xml

マニフェストには、プロジェクトで使用されるランタイムモジュールに関する情報が含まれています。tiapp.xmlは構成を提供し、default_app_logo.pngは、ドック、システムトレイ、またはアプリのウィンドウにデフォルトで表示される画像です。

以下は、hello worldの例のapp.jsファイルの内容です(TideSDK 1.3.0に表示されます)。以前のバージョンでは、廃止されたTitanium名前空間が使用されていました。

// create and set menu
var menu = Ti.UI.createMenu(),
fileItem = Ti.UI.createMenuItem('File'),
exitItem = fileItem.addItem('Exit', function() {
  if (confirm('Are you sure you want to quit?')) {
    Ti.App.exit();
  }
});

menu.appendItem(fileItem);
Ti.UI.setMenu(menu);

これが同じアプリのHTMLです。上記のスクリプトを呼び出します。

<!DOCTYPE html>
<html>
<head>
  <title>Hello World</title>
  <style type="text/css">
    body {background: #fff;}
  </style>
</head>
<body>
  <h1>Hello World</h1>
  <script type="text/javascript" src="app.js"></script> 
</body>
</html>

10行未満のJavaScriptコードで、メニューを作成し、「ファイル」および「終了」メニュー項目を追加して、メインウィンドウに設定します。単純なコールバックメソッドを使用して、終了確認ダイアログをポップオープンします。ユーザーが確認すると、アプリは終了します。

バックグラウンド

TitaniumはAppceleratorによって開発され、Apache2ライセンスの下で利用可能になりました。もともとAppceleratorは、プロジェクトを作成するためのオープンソースのTitaniumDeveloperを提供していました。その後、Appceleratorは、Aptana上のIDEであるクローズドソースのTitaniumStudioを導入しました。現在、Titanium StudioでTideSDKを開発することは可能ですが、将来的にプラグインが必要になる可能性があります。[アンドリュー:申し訳ありませんが、これは私にはわかりません。Titanium Studioへのプラグイン?またはAptana?またはTideSDK?]

Appceleratorは、TiStudioにプラグインを作成してTideSDKをTiStudioで使用できるようにするために、使用するTiStudioSDKを提供しています。

于 2012-08-27T01:20:23.227 に答える
8

引用したように、TideSDK(http://www.tidesdk.org/)はオプションです(現時点では私にとってはより良いです)。同じアイデアのXUL Runner(https://developer.mozilla.org/en )を使用することもできます。 -US / docs / XULRunner)、Adobe AIR(http://www.adobe.com/devnet/air/air-sdk-download.html)(ここ:http://www.adobe.com/devnet/air。 htmlは、flashやdreamweaver、AppJS( http://appjs.org/)、Node Qt(https://github.com/arturadib/node-qt)以外の方法で「ハウツー」を行うチュートリアルです。cef(http://code.google.com/p/chromiumembedded/)、berkelium(http://berkelium.org/)、awesomium(http://awesomium.com)、またはGUIアプリケーションにFirefoxを埋め込むにはどうすればよいですか?これは、アプリケーションにgecko(Firefoxのエンジン)を埋め込む方法を示しています。

さて、すべてについての私の意見です。最初のオプションは、基本的にクロスプラットフォームで動作する「ブラウザ」であるため、より良い方法を提供します。html+ js + cssアプリをデプロイします(Airを使用するとフラッシュをデプロイできます) / actionスクリプトアプリも); アプリを作成してから「ブラウザ」を追加する必要がある他のオプションは、柔軟性が高くなりますが、逆効果になる可能性があります。

私のすべての経験は次のとおりです。tidesdk-良好で安定していますが、まだ成長しているため、一部の高度な機能が欠落している可能性がありますが、コンパイルでき、開発チームは非常に活発です

xulrunner-安定していて、複雑なことを行うことは不可能です。基本的なものだけを提供するため、独自のコンポーネントを作成するには、Cに関する十分な知識が必要です。できることは非常に柔軟ですが、コンテンツの構造が厳密であり、そのように編成されていないとアプリは実行されません。私の意見では、構文が醜いです(笑)。JavaとJavaScriptのスタイルが混在しています。プログラミングの

adobe air-使いやすく、展開も簡単ですが、フラッシュであるため、最適化されていないものの奇妙なかゆみを感じます

appjs-nodejsです。例は機能します。カスタムアプリを実行できませんでした。まだ洗練されていないと思います。私にとっては、風変わりな方法で機能します。

nodeqt-qt + nodejsです。独自のバージョンのqtをコンパイルする必要があります。テストはしていませんが、デプロイは簡単に見えます。

他の埋め込み方法-テストされていない、見栄えが良い、すべてですが、私にはわかりませんが、何の役にも立たないかもしれません

于 2012-08-30T05:38:28.583 に答える
4

QtQWebViewでそのようなことをします。

于 2012-08-24T12:57:17.157 に答える
3

ChromiumEmbeddedFrameworkの使用についてはどうでしょうか。

オープンソース(BSDライセンス)であり、C、C ++、. NET(1または2)、Java、Delphi、Python用のバインディングが付属しています。

この.NETバインディングは、クロスプラットフォームアプリを作成するのに役立つMonoとも完全に互換性があります。

注:別の回答で言及されているAppJSは、CEFの上に構築されています(node.jsを使用)。

于 2012-08-31T06:35:29.777 に答える
2

私はこれを捨てるつもりです:

AppJS:http ://appjs.org/

于 2012-08-30T20:02:19.483 に答える
1

wxWidgetsも。

PS:Qtは、クロスプラットフォームのGUIの目的で私にもっと興味を持っています。

于 2012-08-24T13:07:06.807 に答える
0


私の最初の答えはwxWidgetsであり、Qtはあなたには向いていないと感じているので... javascriptではないとおっしゃいました-PyQt "はQt2とQt3"に[python]バインディングを提供することに注意してください。PySideは、Qt用のNokiaの公式Pythonバインディングです。「PyQtvsPySide」検索では、興味深い結果が得られます。

PythonQtもありますが、私はそれをまったく調べていません。

ご参考までに、

  • Qtネットワーキングの例
  • Qt WebKitの例

    Qtは、人気のあるオープンソースブラウザエンジンであるWebKitに基づく統合Webブラウザコンポーネントを提供します。

    これらの例とデモンストレーションは、Qtユーザーインターフェイス内でのWebページの表示から、基本機能のWebブラウザーの実装まで、WebKitのさまざまな使用法を示しています。

  • QtはC#もサポートしています
  • および他の多くの言語
  • KDE(Linuxデスクトップ環境)はQtを使用および開発します

Qtについて、あなたに「ぴったりではない」という具体的なことはありますか?

于 2012-08-29T12:03:27.400 に答える
0

MonoとWinFormsの何が問題になっていますか

于 2012-08-29T13:55:38.527 に答える
0
  1. Qtがあなたのためではないのは不思議です。SenchaのArchitectおよびAnimator製品が、フルメニューとアイコンおよび実行可能ファイルとシステムダイアログボックスとファイルI/Oを備えたクロスプラットフォームJavaScriptアプリケーションにQtとQWebViewを使用しているのを聞いて驚かれるかもしれません。

    現在、Windows、OSX、およびLinuxで動作します。

    彼らは、ionと呼ばれる社内で開発されたライブラリを使用して、JavaScriptアプリケーションをロードして操作します。これらは、JSが使用するためのいくつかのヘルパークラスを提供します。

    Qtを使用してウィンドウを作成およびロードし、そのウィンドウにWebビューを作成し、ファイルからそのビューにhtmlおよびその他のコンテンツをロードする単純なスケルトンC++アプリケーション。

  2. もう1つの解決策は、ネイティブサポートを備えたブラウザのようなAdobeのAirです。また、展開も提供します。

于 2012-08-31T08:37:09.913 に答える