4

ここでこのトピックに関する他の同様の質問を見ましたが、あまり役に立たなかったので、この質問を投げかけました。

妥当なサイズの単純な Web アプリを、PC および Mac を対象とした Java デスクトップ ベースのクライアントに変換する最速の方法は何ですか? 残念ながら、さまざまな理由により、ここでアプリに関する多くの詳細を共有することはできません. ただし、アプリで最も複雑な UI は、マルチレベルのスレッド化されたディスカッションを含むページです (私が話している内容の実例については、こちらを参照してください)。現​​在の Web アプリは Python に基づいているため、何も再利用できませんサーバー側のコード (これが問題だとは思わないでください)

私は、swing や awt などの Java ベースのシック クライアント GUI の作業を行ったことがありません。私の考えは、多かれ少なかれ Web ベースのアプリケーションによって定義されます。Java または Python を使用して、エンド ツー エンドの Web アプリ開発 (HTML、CSS、および JS を使用したバックエンドおよび適切な UI を含む) を行うことができます。回答については、Java ソリューションのみに注目してください。

ここに私の質問があります。使用すべき最適なフレームワークまたはツールは何ですか? 調査の一環として、次のツールのいくつかを Web で見つけました。

  1. Awt - これは良い選択ではないようです。
  2. Swing は通常の Java SDK/JRE にバンドルされていると思います。- これが最善の策かもしれません。
  3. ある意味で Swing を補完するように見えるSWT 。
  4. ここの記事に基づいたグリフォン。このフレームワークは、Groovy を使用します (Groovy についてはまったくわかりません) Adob​​e Air flex です。オープンソースのフレームワークはありますか?

留意する必要があるその他の問題にはどのようなものがありますか? コメントをお願いしたいのは次のとおりです。

  1. クライアントに展開する必要があるという事実は、物事をどのように複雑にしますか? Java を使用しているため、これは問題ではないと思います。Web ベースのアプリとデスクトップ アプリの間の通常のトレードオフを認識しています (例: 展開とアップグレードの容易さなど)。
  2. ワンクリックインストーラーを作成し、アプリと必要な環境をバンドルするのはどれほど簡単ですか? JREなど?
  3. 製品は Mac および Windows で動作する必要があります。それは何らかの形で物事を複雑にしますか?
  4. スキルセットとして履歴書に記載するとよいフレームワークまたはテクノロジーは何ですか?

私の締め切りは最大 2 か月です。これらのテクノロジをすべて学習する必要があることを考えると、合理的に単純な Web アプリにはそれで十分でしょうか? 私はここで意味を理解しようとしています - 正確な答えを出すことはおそらく不可能であることを知っています.

ありがとうございました!

4

3 に答える 3

5

GUI ツールキット

「Mac と Windows」を考えると、私の推奨事項は「Swing」 (おそらく SwingX 1を使用) に落ち着くと言えます。

  1. AWT の評価に同意します。すぐに使用できるコンポーネントでは、書式設定されたテキストはサポートされていません。また、ツリー、テーブル (およびその他のコンポーネント)、および最近使用した経験のある人も不足しています。ただし、Swing と同様に「通常の Java SDK/JRE にバンドル」されていることに注意してください。これは、一般的に Swing よりも古く、有効性が低いということです。
  2. Swing を補完するものがあるとすれば、それは SwingX でしょう。SwingX は Swing 上に構築されており、J2SE では「すぐに」利用できない高度なコントロールを提供します。
  3. Swing と SWT は相互に互換性がありません。どちらか一方を使用してください。
  4. グリフォンの経験はありません。

Swing は概説されたオプションの中で最もよく使用されるため、(決定において他の潜在的に重要な要因を無視して) ヘルプを得るには、Swing が適切な選択です。

注 1) スレッド化された会話を簡単に表示するグルーヴィーなコンポーネントがある場合は SwingX を追加しますが、aJTextPaneで十分だと思います。


展開

展開に関する限り、これは思ったよりもややこしいことです。多くのデスクトップ コンピューターには、標準で Java が搭載されていません。すでに持っている人は、古いバージョンを持っている可能性があります。

  1. アプリを実行するための適切な最小バージョンの JRE を確保するため。が利用可能である場合は、を使用してdeployJava.jsください (以下の JWS ページにリンク付きで記載されています)。
  2. ユーザーに「ワンクリック」起動エクスペリエンスを提供するには、Java Web Start を検討してください。

クロスプラットフォームの落とし穴

残念ながら、Java は x-plat ですが、プログラマーができることはたくさんあります。例えば

  • プラットフォームのデフォルトを考慮していない:
    • ファイルのエンコード ( file.encoding2 )
    • 改行 ( line.separator2 )
    • ファイル区切り ( file.separator2 )
  • 固定サイズ (「絶対レイアウト」) アプリのコーディング。異なるサイズのアプリとして表示されます。他のOSでは.
  • ...

注 2. それぞれに使用するプロパティを示しています。


時刻表

明らかに私があなたの代わりに話すことはできませんが、2 か月以内に「どのテクノロジ」から「展開可能なアプリ」に移行する可能性はなかったと言えます。

あなたが私より有能であることを願っています!;)

于 2012-02-27T14:13:12.360 に答える
1

Java ソリューションが必要だとおっしゃいましたが、Python には多くのGUI オプションがあり、Web アプリケーションは既に Python で作成されていることに注意してください。

Groovy は Java とは異なるプログラミング言語ですが、Groovy は JVM 上で実行されます。Java ソリューションと JVM ソリューションのどちらが必要ですか? あなたがグリフォンについて言及したので、私は尋ねます。

Java が必要だと仮定すると、主なオプションは Swing、SWT、JavaFX 2、および Apache Pivot だと思います。Oracle は、選択する GUI プラットフォームとしてJavaFX をSwing に置き換えるつもりであると述べています。とは言っても、JavaFX 2 はまだ初期段階にあり、現在 Mac 用に利用できるのはプレビュー リリースのみです。JavaFX と Apache Pivot の結果は、デスクトップ アプリケーションと同じコードを Web アプリケーションに使用できるということです。

于 2012-02-27T14:25:20.637 に答える
0

小さなステップでこれを試すことができます: * 最初のステップとして、SWT を使用してアプリケーションを作成し、そのアプリケーションをブラウザー コントロールに埋め込むことができます。* 次に、ページといくつかのコントロールを Web アプリからデスクトップに 1 つずつ移動する必要があります。

このようにして、最小限のアプリケーションを数時間で取得できます:)

PS このアプローチの iOS アプリが必要な場合は、このオープン ソース プロジェクトを見る価値があります: http://en.wikipedia.org/wiki/PhoneGap

于 2012-02-27T07:33:42.200 に答える