2

Web デザインと Android を担当した後、ようやくデスクトップ ソフトウェアの作業を開始しましたが、実際にデスクトップの UI デザインを開始したときに開発サイクルが大幅に遅れました。これまでの経験は苦痛です。Java を使用してプログラムをコーディングすることにしました。これは、ソケットとワイヤレス インターフェイス (私のプログラムが大きく依存し、正常に動作する) にクロスプラットフォーム API を使用できるためです。

Web および Android UI の設計:

HTML/CSS/JavaScript ; XML/Android API --> 高い柔軟性、カスタマイズ、迅速な UI 開発サイクルを提供します。

Java デスクトップ UI 設計

AWT/スイング/スイング FX -->

  1. 問題hereおよびhereからわかるように、カスタマイズはほとんど不可能です。カスタマイズが可能な場合、それを実装すると、ここに示すように開発時間が大幅に増加します。また、コードの複雑さも増し、ほとんどの場合、ソリューションはネイティブであり、クロスプラットフォーム (少なくとも Linux、Windows、Mac) には適用できません。ネイティブのデフォルトの外観は、実際にはほとんどの UI デザイナーが望んでいるわけではありません。

  2. ドラッグ アンド ドロップ オプションは優れており、開発時間を短縮できます。ウィンドウビルダー。ただし、ImageView の追加などのオプションはありません。また、ポイント 2 で述べたカスタマイズが必要な場合は、自動生成されたコードを大幅に変更する必要があり、ドラッグ アンド ドロップの使用は完全に無効になります。

次の機能を備えた、本当に優れた、またはそれに近いUIツール、またはUIエンジン(存在する場合)を教えてください。

    1. Quick development time. Drag-n-drop, HTML/CSS/XML like methods to design.

    2. Everything is cross-platform, including customization solutions.

    3. High degree of customization. Developer designs what looks good to him/her,
       without increasing time-to-develop much.

    4. Also cross-language. That is, has wrappers for all major programming languages,
       like C++,Java,Python etc.

私の意見では、最良のアプローチまたはツール:

  1. Qt フレームワーク。UI としては非常に優れていますが、Java やその他の言語のラッパーがあればさらに良いでしょう。開発時間を短縮することはなく、手作業でコーディングする必要がありますが、インターフェイスを非常に見栄えがよく
    使いやすいものにすることができます。

  2. WxPython . 別の優れたツールは、他の言語用のラッパーがあればクールです。

  3. HTML/CSS/XML に似た構文と使いやすさを備えたデスクトップ UI を設計できるツール。

  4. UI ツールについて考えるのをやめて、

    を。文句を言うのはやめて、デフォルトと既存のツールとネイティブの外観を使用してください。

    b. すべてを手作業でコーディングし、プラットフォームごとに個別にカスタマイズします。

    c. ゲームのシーンをプログラムするように、グラフィック キャンバスを Java で作成し、UI をプログラムします。

そうでないと思う場合、または利用可能なより良い、より簡単なオプションがある場合は、提案してください。

ありがとう。

4

2 に答える 2

6

私の意見では、 「カスタマイズはほとんど不可能」です。近視眼的ですが、ルックアンドフィールに関する情報をここで確認できます。冒険心があれば、独自の情報を作成できます。Swingのカスタマイズに関して人々が抱える問題の多くは、APIの柔軟性の欠如よりも理解の欠如に帰着します。実際、Swingは最も柔軟でカスタマイズ可能なツールキットの1つであるIMHOにあります。

独自のコンポーネントを作成する方法についてもここで確認できます

あなたが認識しなければならないのは、「クイックツール」に近づくにつれて、これらのツールがあなたを閉じ込め始めるので、柔軟性とカスタマイズ性を低下させ始めるということです。

WindowBuilderの経験はありませんが、NetBeansフォームデザイナを使用すると、ビルドまたはダウンロードしたコンポーネントを含め、プロジェクトのクラスパス内にあるすべてのコンポーネントを含めることができます。

私は、Swingでしばしば平準化される批判の1つが、Swingを起動して実行するのにどれくらいの時間がかかるかということであることに同意します。これは、柔軟性とカスタマイズ性のために設計されたAPIに帰着します。ニーズに最適なAPIを中心にライブラリを構築するのは、エンド開発者の責任です。

ほとんどの人は、ハンドコーディングを支持してスクリーンビルダーを避けるようにあなたに言うでしょう。個人的にはスクリーンビルダーが好きですが、後輩の開発者はレイアウトマネージャーの仕組みをよく理解し、複合レイアウトのようなデザイン手法を構築することを強く求めています。

多くの人が抱えている問題の1つは、アプリケーションの作成を忘れていることだと思います。私は見栄えの良いアプリケーションが好きですが、それでも、見た目がきれいであるよりも、実際に設計されたとおりに機能し、うまく機能するアプリケーションを好みます。

私見では

于 2013-01-19T21:20:54.963 に答える
2

Qtの観点から話します

1. Quick development time. Drag-n-drop, HTML/CSS/XML like methods to design.

Qtは優れた開発環境を提供します。

  1. QtCreatorクロスプラットフォームIDE
  2. Qtクイックデザイナー
  3. Qtデザイナー
  4. 国際化ツール
  5. HTMLヘルプシステム
  6. VisualStudioアドインとEclipseの統合
  7. クロスプラットフォームビルドツール

QtDesignerについては、所定のリンクで読むことができます。それはあなたにあなたが見るものが何を得るか(WYSIWYG)の種類のインターフェースとあなたのために生成された自動コードをあなたに提供します。UIを多言語にしたい場合は、国際化などの他のモジュールも使用すると便利です。

2. Everything is cross-platform, including customization solutions.

Qtは次のプラットフォームで動作します。

  1. Windows – Qt for Microsoft Windows XP、Vista、7。
  2. Windows CE、モバイル–WindowsCEおよびWindowsMo​​bileのQt。
  3. Symbian –SymbianプラットフォームのQt。
  4. OS X – AppleOSXのQt。Cocoa上のアプリケーションをサポートします。
  5. X11 – Qt for X Window System(GNU / Linux、FreeBSD、HP-UX、Solaris、AIXなど)。
  6. 組み込みLinux–組み込みプラットフォーム向けのQt:携帯情報端末、スマートフォン。Maemo、MeeGo – MaemoのQt、MoblinとMeeGoを統合
  7. Wayland –WaylandディスプレイサーバーのQt。Qtアプリケーションは、-platformコマンドラインオプションを使用して、ロード時にXやWaylandなどのグラフィカルバックエンドを切り替えることができます。

外部ポート

NokiaがQtソースコードをGitoriousのコミュニティに公開して以来、さまざまなポートが登場しています。それらのいくつかを次に示します。

  1. OpenSolarisのQt–OpenSolarisのQt
  2. 俳句のQt–俳句のQt
  3. OS / 2のQt– OS /2eCSプラットフォームのQt
  4. Qt-iPhone – QtforiPhoneの実験的開発
  5. Qt for webOS –PalmPreでのQtforwebOSの実験的開発
  6. Qt for Amazon Kindle DX – Qt for AmazonKindleDXの実験的開発
  7. Necessitas –Android用Qt
  8. Qt for BlackBerry – Qt for BlackBerry

3. High degree of customization. Developer designs what looks good to him/her, without increasing time-to-develop much.

上で議論した。

4. Also cross-language. That is, has wrappers for all major programming languages, like C++,Java,Python etc.

あなたはここのリストを信じないでしょう。それらは、Ada、Pascal、Perl、PHP、Ruby、Python、Javaを含むほとんどすべてをカバーしています。


「ネイティブ」ウィジェットのルックアンドフィールを使用してデスクトップアプリケーションを作成することを計画していることを前提として、上記の情報を提供しました。さらに何かを追加したいと思います。

  1. 万が一、「ボタン」などがなく、「スマートフォンUI」に似たUIを作成するのに十分な柔軟性がある場合は、Qt-Quickを使用する以外の場所に移動しないでください。

  2. 速く、簡単で、強力で、柔軟性があります。実際、彼らはqml自体で直接デスクトップウィジェットのサポートを提供し始めています。ここを参照してください。

  3. 現代のデスクトップのルックアンドフィールは急速に変化しており、電話とデスクトップのUIがいつか融合することで、トレンドは未来に向かっているようです。

デスクトップ側ではほとんどイノベーションが起こっていないため、電話の世界で新しいものが登場する方向に向かっているようです。さて、WindowsMetroのようなUIで何が起こっているのか見てみましょう。

念のため、UIがqml!のようにMetroを作成する方法をここで読むことができます。

そして、Qt5が登場したことで、状況はさらに良くなりました。これを読んで、デスクトップと電話のUIの間のギャップを埋める方法を確認してください。

PSビューは少し偏っている可能性があり、QtファンとJava嫌いの両方が多すぎます。:-)

于 2013-01-20T11:32:49.360 に答える