web-dev-qa-db-fra.com

De bonnes façons de créer une interface graphique dynamique?

J'ai une application que je suis en train de concevoir et elle est actuellement dans un état assez fonctionnel. Mais la base de données que j'utilise contient des milliers d'articles et est en constante évolution et croissance. L'application de certains éléments de données peut également varier en fonction des contraintes des utilisateurs (interface avec le produit, niveaux d'utilisateurs, etc.). J'ai essayé de rendre cette disposition aussi flexible que possible au point où la base de données contrôle essentiellement les dispositions de l'interface graphique.

Je voudrais rendre cette interface graphique aussi propre et facile à utiliser que possible sans avoir à tout refaire quand quelque chose change. Donc en gros....

Quelles sont les bonnes approches pour créer une interface graphique dynamique/évolutive? Si une telle chose est possible.

EDIT- De bonnes choses jusqu'à présent, puisque vous voulez voir de quoi je parle, voici une idée. J'ai une base de données SQLite qui contient des champs pour les regroupements et les formats d'affichage et beaucoup d'autres choses qui sont analysées dans un arbre de configuration dynamique sur la gauche, et les onglets et les zones de groupe sont tous générés dynamiquement à partir de SQL créatif. Il y a beaucoup de données, donc quelque chose de générique n'est pas exactement une mauvaise chose, car les choses compliquées seront de toute façon cachées aux utilisateurs moins avancés. Si la base de données est correctement configurée, cela pourrait très bien fonctionner, je pense.
. Mais tout cela doit être accessible sans passer par un assistant pour que quelqu'un puisse configurer une configuration personnalisée.

10
radix07

Je sais ce que vous pensez lorsque vous dites "aussi flexible que possible au point où la base de données contrôle essentiellement les dispositions de l'interface graphique", mais ceci est un signe d'avertissement: vous allez vous retrouver avec une application générique au coût d'utilisation. Je vois cela beaucoup avec les "interfaces utilisateur de programmation", où les développeurs ont étendu leur base de données et leur architecture orientée objet dans l'interface utilisateur. Malheureusement, vous vous retrouvez souvent avec une interface utilisateur conçue pour le programmeur au lieu de l'utilisateur final.

Mon conseil serait d'oublier de chercher la GUI super flexible, dynamique et évolutive idéale et de commencer à identifier les modèles d'utilisation contre lesquels vous pouvez concevoir. Je serai en mesure de vous aider davantage dans ce domaine si vous fournissez plus de détails (tels que le domaine pour lequel vous concevez, des exemples, des maquettes, etc.).


Modifier : Donc, d'après la capture d'écran que vous avez ajoutée, il semble que la complexité de la base de données déborde dans l'interface utilisateur. Ce que je vois ici est littéralement un immense tableau de bord plein de choix - j'ai l'impression d'être dans Star Trek avec des panneaux remplis de boutons lumineux! Permettez-moi de vous donner une première impression rapide de moi-même en tant qu'étranger:

Il semble que nous configurions quelque chose. En choisissant un élément à configurer à gauche, la zone de droite se met à jour avec des champs de saisie correspondant aux paramètres modifiables? Mais ces champs de saisie sont eux-mêmes situés dans un onglet, et il y a tellement d'onglets qu'ils découlent de la capture d'écran vers la droite. De plus, le libellé de chaque champ est au mieux crypté: "Mx Ld Fct". C'est bien qu'en survolant, vous voyez une étiquette qui explique plus, mais est-ce que je veux vraiment survoler différents articles juste pour découvrir qu'ils ne sont pas ce que je cherche? C'est comme une chasse aux œufs de Pâques. De plus, je ne vois pas très bien ce que font les "outils" en bas à gauche. Les deux volets de gauche semblent être maximisables, bien que je ne sois pas sûr de quel effet.

Je peux en quelque sorte voir où vous allez avec cela, mais je dois recommander contre. Il est difficile d'expliquer pourquoi si vous n'avez pas suivi ce processus auparavant. Le meilleur conseil que je puisse donner est de saisir certaines personnes qui utiliseront cela en ce moment et de les amener à utiliser l'application. Asseyez-vous avec eux et demandez-leur d'effectuer certaines tâches courantes. Sans commenter, regardez simplement ce qu'ils font et notez sur un bloc-notes vos pensées. Tu apprendras beaucoup. Essayez de le faire chaque semaine, avec toute l'équipe de développement.

13
Rahul

J'ai quelques points à considérer:

  • Assurez-vous que les longues chaînes ne cassent pas la disposition. Naturellement, je parle des données elles-mêmes, mais l'interface utilisateur environnante pourrait également en souffrir. Par exemple, considérez une barre de commandes avec des boutons. Lorsque le texte des boutons est traduit, ils peuvent grossir et déborder la barre.
  • Faites en sorte que l'interface utilisateur "charge paresseuse" certaines des informations et envisagez d'utiliser la pagination. Par exemple, il peut prendre trop de temps pour charger simultanément des milliers d'éléments - assurez-vous que l'interface utilisateur ne semble pas figée ou cassée pendant le chargement, ou que vous chargez une page, puis chargez le reste pendant que l'utilisateur peut également commencer à interagir avec l'interface utilisateur.

Sinon, je suis d'accord avec Rahul que nous avons besoin de plus de détails pour être précis.

4
Dan Barak