5

特定のプラットフォーム向けのアプリケーションを作成するか、クロスプラットフォームのアプローチを使用してより多くの潜在的なクライアントにリーチするかについて、あなたの意見は?

これは GUI ベースのアプリケーションで、Java を使用することを考えています。

私が使用した Java 上に構築されたアプリケーションのほとんどは、それぞれのプラットフォームのネイティブ アプリケーションほどスムーズに動作しません。

私が考えている 2 つのプラットフォームは、windows と mac です。

私が自分で使用するためだけにアプリを作成していて、1 つのシステムを選択する必要がある場合は、Mac に集中することを選択します。

あなたの考えを聞きたいです。

4

15 に答える 15

6

私は Qt を使用し、はい、間違いなくクロスプラットフォームをターゲットにしています...

主な理由は、実際にはあなたが思っていることではありませんが (クロスプラットフォームであること自体)、実際には、コードを複数のプラットフォームをターゲットにすることで、奇妙な魔法のような理由でコードの品質が大幅に向上する傾向があります。私自身のプロジェクトで、これが何度も起こるのを見てきました。新しいプラットフォームを追加するたびに、コードの品質が向上し、コードがよりクリーンになります...

また、すべての重要なアプリは「依存関係」をできるだけ少なくする必要があります。クロスプラットフォームであることは、依存関係が少ないことを意味します... ;)

次に、「ボーナス」として、アプリを複数のプラットフォームで実行できます...

于 2008-11-25T00:31:28.850 に答える
4

要件、要件、要件。

真剣に、「場合による」が正しい答えです。

本当にクロスプラットフォームは大変な作業です。あなたやあなたのユーザーが慣れ親しんでいる場所で働くことには、それなりの価値があります。効果的な方法で問題を解決することは、実際には最優先事項です。

于 2008-11-24T22:59:26.837 に答える
4

一般に、クロス プラットフォーム開発は、アートフォームとしては少し過大評価されています。ここでは Java が主要なテクノロジですが、この場合でも、ほとんどの Java プログラマーは実際にはクロス プラットフォームには対応していません。Vuze、LimeWire、JR​​ipper など、どこでもうまく機能する素晴らしいツールの例がいくつかありますが、統計的に言えば、これらは例外です。ほとんどの Java アプリケーション、特に企業向けのアプリケーションは、1 つのプラットフォームを念頭に置いてコーディングされており、実際に移動することはありません。

Mac と Windows に移行したい場合は、Limewire と Vuze のコードベースで時間を費やすことを検討してください。これらのアプリは両方とも、両方のプラットフォームで非常にうまく機能します。

間違いなく 2 つのビルドが必要になります。1つのビルドではおそらくうまくいきません。

于 2008-11-24T23:02:22.773 に答える
3

最初に、使い慣れたプラットフォーム向けに開発し、すべてのプラットフォームのギミックを利用できるようにすることをお勧めします。この場合、これは OS X になります。

後で、アプリが Mac で成功した場合は、移植オプションを検討してください。そもそもアプリに大きな関心が寄せられることが確実になるまでは、移植に力を注ぐ価値はありません。

于 2008-11-24T22:57:58.040 に答える
2

この時代に、ネイティブ コードを記述する正当な理由は本当にあるのでしょうか?

はい。利用可能な言語とライブラリでは、優れたプログラミングをうまく行うことができません。せいぜい、プラットフォーム間で問題なく動作するコードを書くことができますが、優れていることはありません。

1 つを選択し、それに焦点を当てます。その聴衆に焦点を当てます (いずれにせよ、聴衆の好みや欲求はさまざまであることがわかります)。

反対側で人々が熱望しているアプリを手に入れたら、誰かが競合他社を作る直前に、細かく調整され、よく設計された製品を移植することの費用対効果を評価します。

「2 つのマスターにサービスを提供」しようとすると、両方のプラットフォームにとって何が最も簡単であるかに基づいて設計上の決定を下すことになりますが、それは良い設計プロセスではありません。

-アダム

于 2008-11-24T23:04:25.110 に答える
1

アプリケーションにどれくらいの時間を費やしたいかによって異なります。最速の方法は Java です。それ以外の場合は、C++ でモデルを構築し、MFC と Cocoa を使用して別の GUI コードを実行できます。

于 2008-11-25T10:23:21.323 に答える
1

アプリで MVC 設計を使用している場合は、C++ を使用して移植可能なモデル クラスを作成し、サポートする各プラットフォームのネイティブ コントローラーとビュー クラスを作成できます。これにより、実用的な移植性と、ユーザーが感謝するネイティブ インターフェイスの両方の長所が得られます。

于 2008-11-24T23:01:04.930 に答える
1

Java アプリケーションとネイティブ アプリケーションの違いに関するあなたの見解には同意しますが、経験豊富な Java プログラマーならおそらくそれを機能させることができると確信しています。

要するに、Mac と Windows の両方のプログラミング API が、それぞれのシステムでインターフェイスを構築するのに最適なツールであるということです。特定のシステムでアプリをスムーズに実行したい場合は、そのシステムの API を使用する必要があります。

クロスプラットフォームの実装がどうしても必要な場合は、プログラムのすべてのコア機能 (ユーザー インターフェイス以外の部分) を、両方のシステム用にコンパイルできるライブラリに記述することを検討してください (c++ が当然の選択です)。共通ライブラリを呼び出すことができる各ターゲット システム用の優れたユーザー インターフェイスを構築します。

于 2008-11-24T23:01:38.127 に答える
1

私見、この議論は顧客のニーズによって答えられるべきです。

ほとんどの場合、IT はソリューションを提供します。ソリューションの構築方法は、顧客にとっては細部にすぎません。

ただし、コードを再利用可能にすることは、開発環境の最初の選択が間違っていた場合に役立ちます。

他の多くの基準が考えられるかもしれません。たとえば、ソフトウェアが医療用で、10 年間サポートしたい場合は、10 年以上サポートされている OS を選択する必要があります (Windows と Mac は忘れてください)。等

于 2008-11-24T23:03:54.270 に答える
0

PC 開発者が Mac 市場を利用しようとしているのをよく見かけます (一部は成功しています)。次に、彼らは上記の「クロスプラットフォーム」アーキテクチャ (Java、または一部の Qt フレームワークなど) でアプリケーションを開発します。その結果、通常、OS 統合サポートが貧弱で、コミュニティの反発が始まります。レビュー。

私のアドバイス、それを移植してください。じゅうたん爆弾のマーケティング手法でクロスプラットフォーム製品を捨てる前に、市場をよく理解してください。

于 2009-03-21T01:53:31.210 に答える
0

私はSWTを使用したクロスプラットフォーム Java で幸運に恵まれました。これにより、どの OS でも見栄えがよくなり、JNI コードを必要とする問題はそれほど多くありません。運が良ければ、まったく同じコードベースを両方のターゲットに配布できるはずであり、それは問題なく機能するはずです。

そうは言っても、クロスプラットフォーム機能が本当に必要かどうかを評価する必要があります。少なくとも、各 OS でアプリの GUI レイヤーをテストする必要があります (レイアウト、プレゼンテーションなどのテスト)。大規模なアプリでは、これはすぐに面倒になります。

どちらの場合でも、最初からクロスプラットフォーム言語を選択することで、将来の柔軟性が得られます. 最初からネイティブ コードを作成する場合、そのコードを別のプラットフォームに移植するのは簡単なことではありません。これにはいくつかのバグが伴う可能性が高く、すべてのテスト コードを新しいプラットフォームに移植する必要もあります。新機能やバグ修正などで同期の問題が発生します。Java を使用すると、両方の OS で実行される JUnit テストを記述でき、バグや新機能が両方のバージョンに自動的に反映されます。

実際には、特定のアプリケーションに依存します。両方の OS でユーザー ベースを想定している場合は、それによって言語の選択が決まります。

于 2008-11-24T23:25:16.333 に答える
0

Windows、 Linux、および Java で実行する見栄えの良い Java アプリを取得することは可能です。コントロール。

一方、私が非常に難しいと感じたのは、各プラットフォームでネイティブ アプリのように見えて動作するクロスプラットフォーム アプリを作成することです。アプリケーションがどのように動作するかについて、あまりにも多くの異なる仮定があります。

于 2008-12-02T18:33:12.847 に答える
0

それは、ユーザーが誰になるかによって大きく異なります。できるという理由だけでクロスプラットフォームに移行しないでください。ツールに関係なく、本当に必要なものが必要です。また、テストにはかなりの時間がかかります。両方のプラットフォームで徹底的にテストする必要があります。

REALbasic を使用して、単一のコード ベースから多種多様なクロスプラットフォーム デスクトップ アプリケーションを作成していますが、それは私とクライアントにとってうまく機能しています。

于 2009-02-02T21:42:33.413 に答える
0

Webアプリケーションを検討してみませんか。

どこでも、すべてのプラットフォームで動作するブラウザで動作するリッチ UI Web サイトを構築できます. Java に精通している場合は、'Weblication' の GWT を試すことができます. GWT のデモ ページをチェックしてください.

于 2008-11-24T22:56:01.290 に答える
0

ウェブアプリにする?そうでなければJavaだと思います。それは、アプリの種類、ターゲットなど、さまざまなことに依存します。

于 2008-11-24T22:57:35.093 に答える