web-dev-qa-db-ja.com

動的GUIを作成する良い方法は?

設計しているアプリケーションがあり、現時点ではかなり機能的な状態です。しかし、私が使用しているデータベースには何千ものアイテムがあり、常に変化し、成長しています。特定のデータ項目のアプリケーションは、ユーザーの制約(製品とのインターフェース、ユーザーレベルなど)によっても異なる場合があります。このレイアウトをできる限り柔軟にして、データベースが基本的にGUIレイアウトを制御するようにしました。

何か変更があったときにすべてをやり直す必要がなく、このGUIをできるだけクリーンで使いやすいものにしたいと考えています。だから基本的に....

動的/スケーラブルなGUIを作成するための良い方法は何ですか?そんなことが可能なら。

編集-これまでのところ良いものです。皆さんは私が話していることを見たいので、ここにアイデアがあります。グループ化と表示形式のフィールドを含むSQLiteデータベースと、左側の動的構成ツリーに解析される他の多くのものがあり、すべてのクリエイティブSQLからタブとグループボックスがすべて動的に生成されます。データがたくさんあるので、複雑なものはとにかくあまり熟練していないユーザーから隠されているので、一般的なものは必ずしも悪いことではありません。データベースが適切に設定されている場合、これは非常にうまく機能すると思います。
私もいくつかの作業を必要とするウィザードを持っていますが、あまり頻繁に触れられないため、これの多くを扱いやすくします。しかし、誰かがカスタム構成をセットアップできるように、これらすべてはウィザードを経由せずにアクセスできる必要があります。

10
radix07

「データベースが基本的にGUIレイアウトを制御する点まで可能な限り柔軟に」と言ったときに何を考えているかはわかりますが、これは警告のサインです。使いやすさのコスト。これは、「プログラマUI」でよく見られます。開発者は、データベースとオブジェクト指向アーキテクチャをユーザーインターフェイスに拡張しています。残念ながら、多くの場合、エンドユーザーではなくプログラマ向けに設計されたユーザーインターフェイスが作成されます。

私のアドバイスは、理想的で非常に柔軟で動的なスケーラブルなGUIを探すことを忘れて、代わりに設計可能な使用パターンを特定することです。詳細(設計しているドメイン、例、モックアップなど)を提供していただければ、この領域でさらにお手伝いできるようになります。


編集:追加したスクリーンショットを見ると、データベースの複雑さがUIに波及しているように見えます。ここに表示されているのは、文字通り選択肢が豊富な巨大なダッシュボードです-パネルが光るボタンでいっぱいのスタートレックにいるような気分です!部外者としての自分からの第一印象を簡単に説明しましょう。

何かを設定しているようです。左側で構成する項目を選択すると、右側の領域が更新され、変更可能なパラメーターに対応する入力フィールドが表示されますか?しかし、これらの入力フィールド自体はタブ内にあり、スクリーンショットから右に流れているタブが非常に多くあります。また、各フィールドのラベルはせいぜい暗号化されています: "Mx Ld Fct"。ホバリングすると、詳細を説明するラベルが表示されるのは良いことですが、実際に別のアイテムにホバリングして、それらが私が探しているものではないことを確認しますか?イースターエッグハントのようなものです。さらに、左下の「ツール」が何をするのか私にはわかりません。左側の両方のペインは最大化できるように見えますが、どのような効果があるのか​​はわかりません。

私はあなたがこれでどこへ行くのかをある程度見ることができますが、私はそれに反対しなければなりません。これまでにこのプロセスを実行したことがない場合、その理由を説明するのは困難です。私ができる最善のアドバイスは、これを今すぐ使用する人を集めてアプリを使用してもらうことです。彼らと一緒に座り、いくつかの一般的なタスクを実行するように依頼します。コメントせずに、彼らが何をしているかを見て、メモ帳にあなたの考えを書いてください。あなたはたくさん学ぶでしょう。毎週、開発チーム全体でこれを試してください。

13
Rahul

考慮すべき点がいくつかあります。

  • 長い文字列がレイアウトを壊さないことを確認してください。当然、私はデータ自体について話していますが、周囲のUIも影響を受ける可能性があります。たとえば、ボタンのあるコマンドバーについて考えてみます。ボタンのテキストが翻訳されると、ボタンが大きくなり、バーからはみ出す場合があります。
  • 一部の情報をUIに「遅延読み込み」し、ページネーションの使用を検討してください。たとえば、一度に何千ものアイテムをロードするには時間がかかりすぎる可能性があります。ロード中にUIがフリーズしたり壊れたりしないようにしてください。または、1つのページをロードしてから、ユーザーが操作を開始しながら残りのページをロードしてください。 UI。

それ以外の場合は、具体的にするためにさらに詳細が必要であるというRahulに同意します。

4
Dan Barak