it-swarm-es.com

¿Buenas formas de hacer una GUI dinámica?

Tengo una aplicación que estoy diseñando y está en un estado bastante funcional en este momento. Pero la base de datos que estoy usando tiene miles de elementos y está en constante cambio y crecimiento. La aplicación de ciertos elementos de datos también puede variar dependiendo de las restricciones del usuario (interfaz del producto, niveles de usuario, etc.). He tratado de hacer que este diseño sea lo más flexible posible hasta el punto en que la base de datos controla básicamente los diseños de la GUI.

Me gustaría hacer que esta GUI sea lo más limpia y fácil de usar posible sin tener que rehacer todo cuando algo cambia. Así que básicamente....

¿Cuáles son algunos buenos enfoques para hacer una GUI dinámica/escalable? Si tal cosa es posible.

EDITAR: cosas buenas hasta ahora, ya que ustedes quieren ver de qué estoy hablando, aquí hay una idea. Tengo una base de datos SQLite que contiene campos para agrupaciones y formatos de visualización y muchas otras cosas que se analizan en un árbol de configuración dinámico a la izquierda, y las pestañas y los cuadros de grupo se generan dinámicamente a partir de algunos SQL creativos. Hay muchos datos, por lo que algo genérico no es exactamente algo malo, ya que las cosas complicadas se ocultarán a los usuarios menos avanzados de todos modos. Si la base de datos está configurada correctamente, esto podría funcionar muy bien, creo.
También tengo un asistente que necesita un poco de trabajo, pero hará que sea mucho más fácil de manejar ya que no se toca con mucha frecuencia. Pero todo esto debe ser accesible sin pasar por un asistente para que alguien pueda configurar una configuración personalizada.

10
radix07

Sé lo que estás pensando cuando dices "lo más flexible posible hasta el punto en que la base de datos controla básicamente los diseños de la GUI", pero esta es una señal de advertencia: terminarás con una aplicación genérica en el costo de usabilidad. Lo veo mucho con las "IU de programador", donde los desarrolladores han extendido su base de datos y arquitectura orientada a objetos en la interfaz de usuario. Desafortunadamente, a menudo terminas con una interfaz de usuario diseñada para el programador en lugar del usuario final.

Mi consejo sería olvidarse de buscar la GUI ideal súper flexible, dinámica y escalable y, en su lugar, comenzar a identificar patrones de uso con los que pueda diseñar. Podré ayudarlo más en esta área si proporciona más detalles (como el dominio para el que está diseñando, ejemplos, maquetas, etc.).


Editar: Entonces, siguiendo la captura de pantalla que ha agregado, parece que la complejidad de la base de datos se está extendiendo a la interfaz de usuario. Lo que veo aquí es, literalmente, un enorme tablero lleno de opciones: ¡siento que estoy en Star Trek con los paneles llenos de botones brillantes! Déjame darte una primera impresión rápida de mí mismo como un extraño:

Parece que estamos configurando algo. Al elegir un elemento para configurar a la izquierda, el área derecha se actualiza con los campos de entrada correspondientes a los parámetros que se pueden cambiar. Pero esos campos de entrada están ubicados dentro de una pestaña, y hay tantas pestañas que fluyen de la captura de pantalla hacia la derecha. Además, la etiqueta para cada campo es críptica en el mejor de los casos: "Mx Ld Fct". Es bueno que al pasar el mouse, vea una etiqueta que explica más, pero ¿realmente quiero pasar el mouse sobre diferentes elementos solo para descubrir que no son lo que estoy buscando? Es como una búsqueda de huevos de pascua. Además, no me queda claro qué hacen las "herramientas" en la esquina inferior izquierda. Ambos paneles a la izquierda parecen ser maximizables, aunque no estoy seguro de qué efecto.

Puedo ver a dónde vas con esto, pero tengo que recomendarlo. Es difícil explicar por qué si no has pasado por este proceso antes. El mejor consejo que puedo dar es tomar algunas personas que usarán esto en este momento y hacer que usen la aplicación. Siéntese con ellos y pídales que realicen algunas tareas comunes. Sin comentar, solo mira lo que hacen y escribe en un bloc de notas cuáles son tus pensamientos. Aprenderás mucho Intenta hacer esto todas las semanas, con todo el equipo de desarrollo.

13
Rahul

Tengo algunos puntos a considerar:

  • Asegúrese de que las cadenas largas no rompan el diseño. Naturalmente, estoy hablando de los datos en sí, pero la interfaz de usuario que la rodea también podría sufrir. Por ejemplo, considere una barra de comandos con botones. Cuando se traduce el texto de los botones, pueden crecer y desbordar la barra.
  • Haga que la IU "carga diferida" sea parte de la información y considere usar la paginación. Por ejemplo, puede llevar demasiado tiempo cargar de una vez miles de elementos: asegúrese de que la IU no se vea congelada o rota mientras se carga, o que cargue una página y luego cargue el resto mientras el usuario también puede comenzar a interactuar con la interfaz de usuario.

De lo contrario, estoy de acuerdo con Rahul en que necesitamos más detalles para ser específicos.

4
Dan Barak