web-dev-qa-db-ja.com

HTML5GUIを使用したクロスプラットフォームデスクトップ開発

短編小説:HTML5のGUIとpython(またはC#/ Mono))のようなクロスプラットフォーム言語のコアを備えたデスクトップアプリケーションを作成する方法はありますか?

長い話:私はC#開発者です。めったに行わない小さな個人プロジェクトでは、WindowsとOSXの両方で実行し、フロントエンドでC#(Mono)を使用します Eto.Forms

HTML5 GUIを使用して同じ結果を達成する成熟した方法があるかどうかを理解したいと思います。それを学び、近い将来のWindowsデスクトップUI(またはその他の優れたツール)に適したオプションになると信じているからです。私のスキルセットに含める)。もちろん、舞台裏で実行されているコードがC#の場合、私は満足しますが、別のコードに足を踏み入れることもできます。pythonのようなクロスプラットフォームの方が良いでしょう。

この段階では、モバイル指向のソリューションには興味がありません。

14
ccalboni

Electron (以前のAtom Shell)は最近、本当に成熟しました。実際、VSCodeはそれを基に構築されています。

vscode

Angular 2とTypeScriptの使用には すばらしいチュートリアルスターターコード があり、VSCodeを使用して記述およびビルドすることもできます。

私にとって、これはWPFの世界からHTML5に移行するための最良の方法です。

6
jay

nW.jsはかなり有望に見えます...普通のol'jsよりもC#にはるかに近いTypeScriptを使用できるかもしれません。 PHPを使用することに慣れている場合は、nightrainプロジェクトをチェックしてください https://github.com/naetech/nightrain

3
solidau

http://www.tidesdk.org/ 試してみてください。

アプリはWindows8、MacOS、Linuxで動作します。 HTML5、Javascript、CSS3を使用できます。

ただし、使い慣れたスクリプト言語を使用してアプリの機能を拡張することもできます。 TideSDKは現在、Python、PHP、およびRubyをサポートしています。

3
Fernando Macedo

非常に興味深いプロジェクトは Chromium Embedded Framework です。基本的に、(削除された)Webブラウザーをアプリケーションに埋め込みます。 Pythonの場合、多くのGUIツールキットがサポートされています。詳細については、 this を確認してください。

C#に慣れているので、多分Java with JavaFX そしてFXMLはオプションです。FXMLはHTMLではありませんが、CSSでスタイルを設定することもできます。 Scene Builder を使用すると、UIの作成が速くなります。多くのJVM言語がこのツールキットをサポートしているため、Javaの代わりに Jython も機能します。 Javaをお勧めします。ただし、他の言語のサポートはまだ完全ではありません。

C#とWindows App StoreWebViewの使用もオプションです。詳細については、 [〜#〜] msdn [〜#〜] を確認できます。

他のオプション(Kivy、Node.jsなど)もあると確信しています。それらのいくつかは、このスレッドですでに言及されています。

0
rfmind

私は http://kivy.org/ でAPPを作成しました。さまざまなシステム用のアプリを作成できます。

Qtノード https://github.com/arturadib/node-qt も興味深いようですが、私はそれを自分でテストしませんでした。

そして最後 https://chrome.google.com/webstore/launcher

サポートされているシステムで実行する必要があるChrome用のWebアプリを作成できます。

KivyはPythonソリューションです。Qtノードはおそらくあなたが探しているものです。

Kivyの素敵なチュートリアルは次のとおりです。 https://www.youtube.com/playlist?list=PLQVvvaa0QuDe_l6XiJ40yGTEqIKugAdTy

0
svenhornberg

Nodejsに基づくNode-Webkitをお勧めします。まだいくつかのpythonスクリプトを使用して、処理が簡単なNode-Webkitと統合されたバックエンドジョブを実行できます。すでに見ました。これを使用して成功したアプリケーション(wunderlistなど)もあります。TideSDKは別の選択肢ですが、TideSDKでのpythonサポートは十分に成熟していません。 https:// github)でホストされているNode-Webkitプロジェクト.com/nwjs/nw.js /

0
Daemoneye

NW.js

しかし、それはJavascript(ノード)であり、pythonでもC#でもありません。

0
turdus-merula

私は最近、 Chromium Embedded Framework 、基本的にはWPFとWinFormsのブラウザーコンポーネントを使用しました。これは非常にうまく機能し、Webサイトから.NETアプリへ、またはその逆の双方向の相互運用性を提供します。基本的に、あなたは:

  1. WPFデスクトップアプリを作成する
  2. CEFSharpを含め、ウィンドウにフルスクリーンブラウザを配置します
  3. JavaScriptでメソッドを呼び出す:
// .NET
var mainFrame = browser.GetMainFrame();
mainFrame.ExecuteJavaScriptAsync("any js code");
  1. .NETオブジェクトをバインドする
// .NET
browser.RegisterJsObject("boundObject", this);
  1. Webサイト/ JSからバインドされた.NETオブジェクトのメソッドを呼び出します。
// JS 
boundObject.someMethod();

これに基づいて、HTML/JS-UIと.NETロジックの間にメディエーションレイヤー(ViewModels、コントローラーなど)を構築できます。

0
Marc