web-development-kb-pt.site

Boas maneiras de criar uma GUI dinâmica?

Eu tenho um aplicativo que estou projetando e ele está em um estado bastante funcional no momento. Mas o banco de dados que estou usando tem milhares de itens e está constantemente mudando e crescendo. A aplicação de certos itens de dados também pode variar dependendo das restrições do usuário (interface do produto com, níveis do usuário etc.). Tentei tornar esse layout o mais flexível possível até o ponto em que o banco de dados basicamente controla os layouts da GUI.

Gostaria de tornar essa GUI o mais limpa e fácil de usar possível, sem precisar refazer tudo quando algo mudar. Então, basicamente....

Quais são algumas boas abordagens para criar uma GUI dinâmica/escalável? Se tal coisa é possível.

EDIT- Coisas boas até agora, já que vocês querem ver do que estou falando, aqui está uma idéia. Eu tenho um banco de dados SQLite que contém campos para agrupamentos e formatos de exibição e muitas outras coisas que são analisadas em uma árvore de configuração dinâmica à esquerda, e as guias e caixas de grupo são todas geradas dinamicamente a partir de algum SQL criativo. Existem muitos dados; portanto, algo genérico não é exatamente uma coisa ruim, pois as coisas complicadas serão ocultadas dos usuários menos avançados. Se o banco de dados estiver configurado corretamente, isso poderia funcionar muito bem, eu acho.
Eu também tenho um assistente que precisa de algum trabalho, mas facilitará muito o manuseio, pois não é tocado com muita frequência. Mas tudo isso precisa estar acessível sem passar por um assistente para que alguém possa definir uma configuração personalizada.

10
radix07

Eu sei o que você pensa quando diz "o mais flexível possível, a ponto de o banco de dados basicamente controlar os layouts da GUI", mas isso é um sinal de aviso: você vai acabar com um aplicativo genérico no custo de usabilidade. Eu vejo isso muito com "UIs de programadores", onde os desenvolvedores estenderam seu banco de dados e arquitetura orientada a objetos para a interface do usuário. Infelizmente, você geralmente acaba com uma interface de usuário projetada para o programador em vez do usuário final.

Meu conselho seria esquecer de procurar a GUI super flexível, dinâmica e escalonável ideal e, em vez disso, começar a identificar padrões de uso com os quais você pode projetar. Poderei ajudá-lo mais nesta área se você fornecer mais detalhes (como o domínio para o qual você está projetando, exemplos, maquetes etc.).


Editar: Então, passando pela captura de tela que você adicionou, parece que a complexidade do banco de dados está se espalhando pela interface do usuário. O que estou vendo aqui é literalmente um enorme painel cheio de opções - sinto que estou em Star Trek com os painéis cheios de botões brilhantes! Deixe-me dar uma primeira impressão rápida de mim como um estranho:

Parece que estamos configurando algo. Ao escolher um item para configurar à esquerda, a área direita é atualizada com os campos de entrada correspondentes aos parâmetros que podem ser alterados? Mas esses campos de entrada estão localizados em uma guia e existem muitas guias que estão saindo da captura de tela para a direita. Além disso, o rótulo para cada campo é enigmático na melhor das hipóteses: "Mx Ld Fct". É bom que, ao passar o mouse, você veja uma etiqueta que explica mais, mas eu realmente quero passar o mouse sobre itens diferentes apenas para descobrir que eles não são o que estou procurando? É como uma caça aos ovos de Páscoa. Além disso, não está claro para mim o que "ferramentas" faz no canto inferior esquerdo. Os dois painéis à esquerda parecem maximizáveis, embora não tenha certeza de qual efeito.

Eu posso ver para onde você está indo com isso, mas tenho que recomendar contra isso. É difícil explicar por que, se você nunca passou por esse processo antes. O melhor conselho que posso dar é pegar algumas pessoas que usarão isso agora e levá-las a usar o aplicativo. Sente-se com eles e peça-lhes para executar algumas tarefas comuns. Sem comentar, observe o que eles fazem e anote em um bloco de notas quais são seus pensamentos. Você aprenderá muito. Tente fazer isso toda semana, com toda a equipe de desenvolvimento.

13
Rahul

Eu tenho alguns pontos a considerar:

  • Verifique se as cordas longas não quebram o layout. Naturalmente, estou falando dos dados em si, mas a interface do usuário ao redor também pode sofrer. Por exemplo, considere uma barra de comandos com botões. Quando o texto nos botões é traduzido, eles podem aumentar e sobrecarregar a barra.
  • Faça da interface do usuário "carregamento lento" algumas das informações e considere usar a paginação. Por exemplo, pode levar muito tempo para carregar de uma só vez milhares de itens - verifique se a interface do usuário não parece congelada ou quebrada enquanto carrega ou se você carrega uma página e depois carrega o restante enquanto o usuário também pode começar a interagir com a interface do usuário.

Caso contrário, concordo com Rahul que precisamos de mais alguns detalhes para sermos específicos.

4
Dan Barak