7

私は最近php-gtkをいじっており、過去にJavaを試してGUIの「HelloWorld」アプリを作成しました。

ただし、これらのタイプのアプリケーションはどちらも、少し不格好な(ほとんど子供っぽい)ルックアンドフィールを持っています。社内で使用するアプリを作成するのに便利であることは否定できません(そして、これらのプロジェクトに費やされるコミュニティの努力の量を完全に尊重しています)。しかし、私は必ずしもそれを、たとえば450ポンドまたは1,000ポンドの値札で商用アプリケーションとして販売することを誇りに思っているわけではありません。

たとえば、Firefox forWindowsやAdobexyzのようなルックアンドフィールのアプリケーションを作成したい場合、どのGUI /言語を使用する必要がありますか?

「プロフェッショナルな光沢」またはスマートなルックアンドフィールはデザイナーに100%ダウンしていますか、それともデザイナーがどれほど優れていても、適切なGUIフレームワークを選択することがそのルックを実現するために不可欠であるというのは事実ですか?

4

5 に答える 5

7

ソフトウェアの洗練されたUXを持つことにはいくつかの側面があります。

  1. プラットフォームに最もネイティブなフレームワークを使用します。Win32 / WPF for Windows、CocoaforMacなど。
  2. アプリケーションの視覚的なアーティファクトは一貫しています。これには、画像、グラフィック、ツールバーアイコンなどが含まれます。
  3. プラットフォームのガイドラインとベストプラクティスに従う。
于 2010-05-03T05:13:41.203 に答える
4

それはイゴールの返事と少し重なっていますが、これが私の見解です:

ネイティブコントロール の外観-今日のUIコントロールは、かなり複雑な外観になっています。私たちが本能的にそれらから導き出す視覚的な手がかりはたくさんあり、それがフレームのある白い長方形であっても、ウォンシャドウがあると奇妙に場違いに見えます。多くの場合、コンテキストメニューは今日開くだけでなく、ある方向からスライドインしたり、フェードインしたりします。

ネイティブコントロールの動作-UI よりもさらに複雑で、動作には多くの詳細があります。クリック位置に応じたさまざまなコンテキストメニュー、アイテムの選択またはドラッグ時のさまざまな「ホット」領域、キーボードショートカットなどです。

詳細への注意-どのプラットフォームでも、一貫したUIの動作を見つけることができます。ツリーで矢印キーが機能するのと同じように、WRTはノードを選択、開閉します。

Windowsを見てください。ほとんどの非ネイティブツールキットでは、基本的なキーボードナビゲーションが間違っています。矢印キー、Home、End、PgUp、PgDown、Ctrlで動作を変更、Shiftで選択を拡張すると、最大32の動作が得られます。コピー&ペーストは、従来、Ctrl + C / Ctrl + X / Ctrl+VおよびShift+INS、Shift + DELを使用しており、欠落しています。マウスをダブルクリックすると単語が選択されることが多く、マウスをトリプルクリックすると文、行、段落が選択されることがあります。

応答時間と筋肉の記憶 -基本的に、2つのUI操作モードがあります。


次のステップである筋肉の記憶からの再生を決定する前に応答を待つact-lookループ。これははるかに高速で、精神的な処理リソースが少なくて済みます。

ただし、これには2つの要件があります。応答は均一で「即時」である必要があり、次のアクションはすぐに正しく登録される必要があります(少なくとも10ミリ秒以内)。

多くの場合、非ネイティブのツールキットでは、応答が1つまたは2つのアクションに遅れて(マインドが不一致をロックします)、メニューを表示するのに50ミリ秒以上かかるツールキットによって、これは困難になります。 t意図したとおりに登録されました。

洗練されたUIは、正しく機能するまでに時間がかかります-優れたコントロールライブラリは、コントロールごとの問題のほとんどを解決できますが、最後の10%が90%の時間を費やし、コントロールの相互作用があります。さまざまなアプローチを試す必要があります。FPSでトレーニングされた反射神経を持つユーザーを期待する必要があります。あらゆる種類のワークフローを試す必要があります。

クロスプラットフォームツールキットはそれを完全に正しくすることはできません-彼らは岩と困難な場所の間に立ち往生しています:彼らはプラットフォームとは無関係に、または現在実行しているプラ​​ットフォームと一貫性のある内部一貫性を選ぶことができます。それを正しくするために、後者はしばしば呼び出し元のコードにプラットフォーム依存のコードを必要とします。これはあなたが避けようとしている実際のことです。

于 2010-05-03T05:40:44.253 に答える
3

デスクトップ環境で使用されているGUIフレームワークを常に使用するようにしてください。.NETのライブラリは、Windowsアプリの作成におそらく最適です。GTK +は常にGNOMEで最高ですが、QtはKDEでうまく機能します。3つすべてが互いのシステムで機能しますが、視覚的な統合がないため、視覚的な魅力は低下します。

于 2010-05-03T05:06:56.913 に答える
3

使用されるGUIAPI/言語は、UI設計とはまったく関係ありませんが、一部のAPIを使用すると、実装が簡単または高速になります。

優れたUIとは:

  • 優れたグラフィックデザイン/アートワーク(視覚的なバランスと対称性、補色、視覚的に「心地よい」形状とレイアウト、アプリ内および周囲の他のアプリとの視覚的な一貫性-一貫した配置、サイズ、ギャップ、色など)
  • ユーザーのワークフローを理解し、ユーザーがやりたいことを簡単かつ直感的に行う。これは多くの場合、同じアクションを実現する3つまたは4つの方法を実装することを意味します(たとえば、「コピーアンドペースト」は通常、メインメニュー->コピー/貼り付け、コンテキストメニュー->コピー/貼り付け、ctrl + c / v、ボタン:コピー/貼り付け、ドラッグアンドドロップ)
  • すべてをシンプルに保つ。可能な限り削除して、UIをユーザーが必要とするものだけに戻します。
  • 直感的であり、ユーザーを驚かせないこと。コントロールは、ユーザーが知っているコントロールのように見え、ユーザーが知っているコントロールのように機能し、コンピューターでの以前の経験からユーザーが期待する場所に配置する必要があります。
  • 規則に従います([OK] / [キャンセル]ボタンを標準の場所に配置し、選択したオブジェクトを強調表示するためにOS定義の色を使用するなど)

これを取得するには、多くの「優れた」アプリケーションを調べて、それらを優れたものにするものを分析する必要があります。優れたアーティスト/グラフィックデザイナーに優れたアイコンなどを描いてもらいます。そして、ユーザーのワークフローについて考えることに多くの時間を費やします。

ビジネスロジックをUIから分離するようにしてください。これにより、アプリのスキンを簡単に変更してUIを改善できます。そして通常、プログラムが必要とするデータは、ユーザーがアプリケーションを使用する必要がある方法とは関係ありません。編集可能なフィールドでx、y、z変数を公開するだけの誘惑に駆られないでください。UIは、実装を隠して使用可能にするレイヤーです。

于 2010-05-03T05:33:44.353 に答える
1

JavaアプリケーションのGUIが通常のツールキットを使用してどのように見えるかは気にしません。Firefoxの外観が気に入った場合は、ほとんどのMozillaアプリケーションで共有されているXULとGUIフレームワークを調べることができます。Komodo Editor / IDEは、同じツールを(他のいくつかのアプリケーションとともに)使用します。GTKは非常に強力であり、それがアプリケーションのプロフェッショナルな輝きを妨げているのではないかと私は本当に疑っています。その機能を探求し続け、コンポーネントを表示するための最良の方法を再考してください。そうすれば、気分が良くなる配置に出くわすと確信しています。

一方で、それはツールキットだけではありません。優れたインターフェース設計は芸術であり、Firefoxのようなインターフェースは無限のフィードバックを通じて進化してきました。最善の方法は、ユーザーと話し合い、アプリケーションをより快適に使用できるようにする方法を見つけることです。ソフトウェアは、機能していると見栄えがする傾向があることがわかりました。

使いやすいソフトウェアに多くの時間を費やすことをお勧めします。物事が行われる方法をメモし、インターフェース要素間の共通点を探します。ほとんどのソフトウェアは、ソフトウェアの使用を容易にする非常に一般的な一連の原則に固執しており、魅力的なソフトウェアを探索すればするほど、より早くパターンが出現し始めます。

幸運を!

于 2010-05-03T05:12:10.783 に答える