web-dev-qa-db-ja.com

クロスプラットフォームデスクトップアプリケーション-Windows + Mac + Linux

私は複数のデスクトッププラットフォーム用のアプリケーションを構築しています。Windows、Mac、そしておそらくLinux用です。

私はどのプログラミング言語とIDEの組み合わせが私にとって最良であろうかと思いました:

  1. プログラミング言語は、C#(推奨)またはJavaのいずれかである必要があります。
  2. コアライブラリはすべてのプラットフォーム間で共有する必要があります。つまり、すべてのプラットフォームが単一のコアライブラリにリンクする必要があります(ライブラリとは、クラスと関数のリストを意味します)。
  3. WindowsとMacが優先され、Linuxアプリは将来の計画用です。
  4. アプリのデザインは完全にカスタムであり、各プラットフォームのガイドラインに従っていません。

私はこれら3つの解決策の間に行き詰まっています。

  1. Xamarin.Mac + Visual Studio for Windowsを使用して、コアクラスをリンクします。
  2. プロジェクト全体にGTK#を使用し、プラットフォームごとに複数のビルドをコンパイルします。
  3. プロジェクト全体にJavaを使用し、プラットフォームごとに複数のビルドをコンパイルします。

#2と#3については、アプリケーションの設計を考慮して、どちらの言語が自分に適しているかについてのアドバイスが必要です。つまり、どちらが私の目標に適したGUI構築能力を持っていますか?

BTW GTK#はプラットフォームごとに異なるライブラリを使用しているので、コアアーキテクチャにとってそれは煩雑なものになるでしょうか?

18

3年後、Javascriptもこの論争の強力な候補となっています。

スペース内には複数のオプションがあります。

その他

Microsoftでさえ、Javascriptで記述された開発環境のクロスプラットフォームバージョンであるVisual Studio Codeを出荷しています。

ビルドされているVisual Studioコードエディターとは

利点には、利用可能な多くのWebライブラリの利用、およびWeb開発スキルの構築/使用が含まれます。

10
GrahamMc

これは、Xojoまたは同様の何かの仕事のように聞こえます: http://www.xojo.com

Mac、Windows、Linuxは、簡単なGUIデザインとネイティブアプリで構築されています。カスタムUIも簡単に実行でき、3つのプラットフォームすべてに対して1つのコードベースができます。ソフトウェアを無料でダウンロードして開発およびテストできます。アプリの構築を決定した場合にのみライセンスが必要です。

7
mjdth

「GTK#はプラットフォームごとに異なるライブラリを使用します」、異なるレンダリングバックエンド(X11、Cairoなど)を意味しますか?

GTK#アプリを構築する必要があるのは1回だけです。ただし、GTK#ランタイム(WindowsとMacでは異なる)をアプリにバンドルする必要があります。 Banshee は、フォローできる良い例です。

3
Lex Li

ライブコードも考慮できます

Livecode: http://livecode.com Web以外のすべてのプラットフォームでは、コードがC#やJavaにならないほど柔軟である場合、それはオープンソースであり、モバイルターゲットも含まれます。

オプションは、C#とGUIの独立性を使用して、コンパイルされたライブラリでコアロジックを構築し、それをライブコードにプラグインして、UI作業をそのツールに任せることです。

2
merlucin

おそらくあなたの最善の策は Nevron Open Vision を使用することです。エンタープライズ対応のアプリケーションを構築するために必要なコントロールのほとんどを実装する、クロスプラットフォームのC#ベースのユーザーインターフェイスプラットフォームです。これは、MyDraw(www.mydraw.com)の背後にあるフレームワークです。Visioに似たプロの描画プログラムです。 MyDrawはNevron Open Visionで完全に構築されており、他のサードパーティライブラリを必要としません。主にWindowsで開発し、Macにコンパイルするだけです。間もなく、LinuxおよびWebAssemblyホストのサポートを追加する予定です。

0
Ivaylo Milanov