2

私はクライアントアプリを書いています。かなり古い学校で、かなり保守的です。Windowsでは、おそらく.NETフォームまたはWPFを使用するでしょうが、よくわかりません。Macでは、Objective-CやCocoaなどを使用します。しかし、私はこのアプリを両方で動作させたいので、一度だけ書きたいと思います。

QTで書くべきですか?QTは、プラットフォーム間で使用するとバグがあると聞きました。ノキアの最近のトラブルで、継続性について心配する必要がありますか?コミュニティはDigiaについてどう思いますか?

Javaで書くべきですか?新しいMacOSにはJavaが付属しなくなり、Windowsには付属しなくなりました。どうすればそのような優れたセットアップエクスペリエンスを作成できますか?USBデバイスはどうですか?いくつかのJavaUSBプロジェクトがありますが、それらはすべてWindowsまたはLinuxベースであり、Macはありません。ネイティブのルックアンドフィールを取得することも心配ですが、Swingが私をカバーしてくれていると思います。

Pythonで書くべきですか?ここでのパフォーマンスが気になります。また、私は以前に大規模なPythonアプリを作成しましたが、静的分析がないため、Pythonは大規模なコードベースにうまくスケーリングできないことがわかりました。

何を書きますか?

4

3 に答える 3

5

私は数週間前に同様の質問をしました。MacとWindowsのGUIアプリケーションを構築します

「ネイティブルックアンドフィール」に関して:これが必要な場合は、クロスプラットフォームのGUIライブラリを使用しないでください。プラットフォームごとに1回GUIレイヤーを記述します。コアアプリケーションロジックを共有できます。ルックアンドフィールの要件がより緩和されているため、WindowsおよびLinuxでQtまたはwxWidgetsを使用することはおそらく回避できますが、Macではかなり不自然に見えます。

「ネイティブなルックアンドフィール」が必須ではない場合は、QtまたはwxWidgetsを使用して、頭痛の種を減らしてください。Qtの連続性については心配しません。そのデスクトップフレームワークは非常に成熟しており、Nokiaによって保守されていません(モバイル部分を保守しています)。オープンソースコミュニティはそれを存続させます。それがどれほどバグがあるかはわかりませんが、どのクロスプラットフォームフレームワークにバグのシェアがありませんか?

「ネイティブルックアンドフィール」が不可欠な場合は、コアアプリケーションロジックの言語の選択を読んでください。

Java:しないでください。Swingは、実際にはネイティブのルックアンドフィールを提供しません。それを使って包括的なGUIを作ってみてください。Swingは、プログラムするのも非常に苦痛です。Swingに代わるものはたくさんありますが、Qtよりも優れているとは思えません。さらに、ほとんどのアプリはおそらくOSに接続する必要があります。MacでのJavaブリッジングは非推奨になりました。拡張機能にはJNIを使​​用する必要があります。おそらくWindowsでも同じです。

Python:それが私がたどった道です。Pythonはクロスプラットフォームであるだけでなく、クロスプラットフォームライブラリの豊富なセットが付属しています。また、どのOSでもC /C++拡張機能を簡単に作成できます。欠点は、起動が比較的遅く、ネイティブC++アプリよりも多くのメモリを消費することです。デプロイ可能なアプリケーションをセットアップしようとするのもかなり面倒です。本格的なデータ処理を計画していない限り、パフォーマンスについてはあまり心配しません。

C ++:これも良い選択です。QtやBoostなどのクロスプラットフォームライブラリを使用している場合は、C ++でクロスプラットフォームアプリを作成するのはそれほど難しくありません(試したことはありません。質問や調査からの結論)。xCode、Visual Studioなどとも互換性があるため、プロジェクトのセットアップが簡単です。

于 2012-06-26T04:45:26.757 に答える
2

私は主にJava開発者なので、Javaに大きく依存しています。Javaに関する懸念は、ほとんどの場合処理できます。

1つはSwingの代わりにJavaFXです。それはまだかなり新しいですが、私は最近それをプレイしていて、それはかなりいいです。あなたはあなたが好きなように見えるものを作ることができるはずです、そしてそれはかなり一貫しています。その他の追加の利点は、JavaFXのネイティブパッケージを追加していることです。それはまだ早いです、そしてそれは私が理解していることからまだ安定したリリースにはありません。

何をしようとも、ハードルと問題があります。したがって、上記の内容に関係なく、最も快適なものを選択する必要があります。.netルートにアクセスして、Monoを使用できる場合もあります。特に最初からMonoを使用して構築されたプロジェクトでは、Monoがうまく機能していると聞きました。

于 2012-06-26T04:25:35.360 に答える
1

あなたが利用できるオプションの数があります

  • Javaアプリケーション
  • ウェブアプリケーション
  • AppAcceleratorのようなラッパーを使用する

Javaアプリケーション

プラットフォームに依存しないJavaアプリケーションを作成すると、ニーズに合うでしょう。しかし、開発に関しては、問題に直面する可能性があります。特にGUIの経験。

ウェブアプリケーション

Webアプリケーションは正しい方法ですが、Webアプリケーションをインストールして、ローカルマシンにWebサーバーをセットアップするのは少し難しいかもしれません。さらに、アプリケーションをホストしたい場合は、これが最適な方法です。

アプリケーションラッパー(App-Accelerator

アプリケーションラッパーを使用できる場合は、ほとんどすべてのプラットフォーム(Windows、Mac OS)で機能します。良い例はWunderlistかもしれません。

于 2012-06-26T05:25:56.760 に答える