私が行っているデスクトップ アプリケーション開発のほとんどは Swing で行っています。デスクトップ アプリケーションの構築に JavaFX や Adobe Flex を使用することについて、人々の意見を聞きたいと思っています。これらを使用してデスクトップ アプリを構築することに成功しましたか? それとも、今のところ Swing を使い続けて、ツールを使用して Swing 開発の生産性を高めますか?
8 に答える
デスクトップ アプリを作成している場合は、Swing を使用します。JavaFX/Flex/Silverlight は、RIA (リッチ インターネット アプリケーション) に適しています。長期的にはどれも選択肢にはならないと私は主張しますが、私には HTML5/CSS3/Ajax が勝っているように見えますが、それはかなり主観的な領域です。しかし、デスクトップ アプリについては、私は Swing の大ファンです (また、Java Web Start は非常に過小評価されているテクノロジです)。
JavaFX は、宣言型プログラミング言語である JavaFX Script を使用して Java GUI を開発する新しい方法を備えた Swing の一種の拡張と見なすことができます。JavaFX Script コードは、XML 構文を使用する Adobe Flex や Microsoft Silverlight とは異なり、JSON スクリプトとまったく同じように見えます。
JavaFX Script は Java とインターフェースできるため、Swing コンポーネントを簡単に呼び出すことができます。Swing が AWT 用であったように、これはまさに新世代の GUI API です。優れたグラフィカル コンポーネント、レイアウトを管理するための新しい簡単な方法、動的インターフェイスを構築するための非常に優れた機能: バインディング、タイマー (アニメーションを構築するため) など。http://www.javafx.com/samples/およびチュートリアルにアクセスして、一種の Google Picasa アプリケーションをどれだけ速く構築できるかを確認してください... API には、Web サービスを簡単に使用するためのツールも含まれています: たくさんのサンプルを見つけることができますいくつかのパブリック Web サービス (天気予報ツールなど) に接続された JavaFX に組み込まれた GUI の一部。
そして一番いいのは...展開部分です。アプリケーションをアプレットのように html ページに埋め込むことができ、ユーザーはアプリケーションを自分のデスクトップにドラッグ アンド ドロップして、いつでも (ブラウザに戻らずに) 使用できます。
実際、JavaFX は初期段階 (v1.2) では非常に優れたツールであり、次世代のアプリケーションであるリッチ インターネット アプリケーション (RIA) に向けた Java の第一歩を表していると思います。
Java Swing は、デスクトップ開発向けの確立された成熟したテクノロジです。オンラインで多くの情報とサンプル プログラムを見つけることができます。そうは言っても、Adobe AIR を検討することをお勧めします。AIR は基本的に、Flex アプリをデスクトップ上で実行できるようにするランタイムであり、ファイル システムなどのローカル リソースへのアクセスを提供します。私は 10 年間 Java Swing アプリケーションを作成してきましたが、Flex/Adobe AIR を使用することで生産性が大幅に向上したことに驚いています。Flex の優れた点の 1 つは、HTML を使用して Web ページのレイアウトを宣言するのと同じように、GUI を宣言的に作成できることです。これは、GUI を指定するためのはるかに簡潔な方法であり、同じことを行うために必要な一連の Java Swing コードよりもはるかに高速で簡単に保守できます。私は JavaFX をお勧めしません。
それらをすべて試して、どれが要件に最も適しているかを確認してください。Flex でできることとその方法を知りたい場合は、Tour de Flexをチェックしてください。
Flex の利点のいくつかは、成熟しており (現在 5 年以上)、Adobe にとって重要な投資分野であることです。また、 Adobe AIR Marketplaceでは、Flex を使用して作成された AIR アプリの例を多数見つけることができます。
スイングは Substance L&F で見栄えがよくなります。
ただし、(チームではなく) 単独で開発している場合は、JavaFX を試すことをお勧めします。
これらをデスクトップアプリケーション用に評価し、最終的に JavaFx を使用することにしました。これには、非常に優れたメディアライブラリと、ハードウェア アクセラレーションによるグラフィックスおよびメディア機能があります。Jdk 7 update 6 以降には JavaFx が完全に含まれており、個別にインストールする必要はありません。Java Swing は非常に優れたテクノロジであり、今後も継続されますが、JavaFx は GUI およびインターネット アプリケーションの未来であるとある程度見ています。私にとって最大の利点は、JavaFx アプリをネイティブ パッケージで exe ファイルに変換できることでした。
ドラッグ アンド ドロップ コンポーネント デザイナーのシーンビルダーも試してください。
この質問に答えるのに十分な情報がないと思います。AIR アプローチがより適切な選択である多くのアプリケーションがあり、他のアプリケーションは他のテクノロジーをより適切に使用します。私は主に AS3/Flex 開発者ですが、Java プラットフォームの 1 つがより適切な選択である場合がたくさんあることを知っています。Flex はもはや Adobe 製品ではなく Apache 製品であるため、ユーザーがロードマップを作成するにつれて製品が改善されるか、完全に廃止されます。