it-swarm-eu.dev

Dobré způsoby, jak vytvořit dynamické GUI?

Mám aplikaci, kterou navrhuji a je v tuto chvíli v docela funkčním stavu. Ale databáze, kterou používám, má 1000 položek a neustále se mění a roste. Použití určitých datových položek se může lišit také v závislosti na uživatelských omezeních (rozhraní produktu, uživatelské úrovně atd.). Snažil jsem se, aby toto rozložení bylo co nejflexibilnější do bodu, kdy databáze v podstatě řídí rozložení GUI.

Chtěl bych, aby bylo toto uživatelské rozhraní co nejčistší a nejjednodušší, aniž by bylo nutné něco změnit, když se něco změní. Takže....

Jaké jsou dobré přístupy k vytváření dynamického/škálovatelného GUI? Pokud je taková věc možná.

EDIT - Zatím dobré věci, protože vy chcete vidět, o čem mluvím, tady je nápad. Mám databázi SQLite, která obsahuje pole pro seskupení a formáty zobrazení a spoustu dalších věcí, které jsou analyzovány v dynamickém konfiguračním stromě vlevo a karty a skupinové schránky jsou dynamicky generovány z nějakého kreativního SQL. Existuje spousta dat, takže něco obecného není úplně špatná věc, protože komplikované věci budou stejně skryty před méně pokročilými uživateli. Pokud je databáze správně nastavena, myslím, že by to mohlo fungovat velmi dobře.
Mám také čaroděje, který potřebuje nějakou práci, ale hodně z toho bude snazší zvládnout, protože se toho často nedotkne. To vše však musí být přístupné bez procházení průvodcem, aby si někdo mohl nastavit vlastní konfiguraci.

10
radix07

Vím, co si myslíte, když říkáte „co nejflexibilnější do bodu, kdy databáze v zásadě řídí rozložení grafického uživatelského rozhraní“, ale toto je varovný signál: skončí aplikace, která je obecná v náklady na použitelnost. Vidím to hodně s "UI programátorů", kde vývojáři rozšířili svou databázi a objektově orientovanou architekturu do uživatelského rozhraní. Bohužel často skončíte s uživatelským rozhraním určeným pro programátora místo koncového uživatele.

Moje rada by byla zapomenout na hledání ideálního superpružného, ​​dynamického, škálovatelného grafického uživatelského rozhraní a místo toho začít identifikovat vzorce použití, proti kterým můžete navrhnout. Budu vám moci pomoci v této oblasti více, pokud uvedete více podrobností (například doménu, pro kterou navrhujete, příklady, makety atd.).


pravit: Takže podle přidaného snímku obrazovky se zdá, že složitost databáze se šíří do uživatelského rozhraní. To, co zde vidím, je doslova obrovský dashboard plný možností - mám pocit, že jsem ve Star Trek s panely plnými zářícími knoflíky! Dovolte mi, abych vám udělal první rychlý dojem jako outsider:

Vypadá to, že něco konfigurujeme. Výběrem položky pro konfiguraci vlevo se pravá oblast aktualizuje vstupními poli odpovídajícími parametrům, které lze změnit? Ale tato vstupní pole jsou sama umístěna na kartě a existuje tolik karet, které stékají ze snímku směrem doprava. Štítek pro každé pole je přinejlepším kryptický: „Mx Ld Fct“. Je hezké, že když se vznášíte, uvidíte štítek, který vysvětluje více, ale opravdu se chci vznášet nad různými položkami, abych zjistil, že nejsou to, co hledám? Je to jako velikonoční vajíčko. Dále mi není jasné, co „nástroje“ dělá vlevo dole. Oba panely vlevo se zdají být maximalizovatelné, i když nejsem si jistý, jaký účinek.

Vidím, kam s tím jdeš, ale musím proti tomu doporučit. Je těžké vysvětlit, proč, pokud jste dosud tento proces neprošli. Nejlepší radu, kterou mohu dát, je chytit některé lidi, kteří to budou právě teď používat, a přimět je k používání aplikace. Posaďte se s nimi a požádejte je, aby vykonávali některé běžné úkoly. Aniž byste komentovali, sledujte, co dělají, a napište do poznámkového bloku, jaké jsou vaše myšlenky. Dozvíte se toho hodně. Zkuste to a každý týden s celým týmem dev.

13
Rahul

Musím zvážit několik bodů:

  • Ujistěte se, že dlouhé řetězce nepřerušují rozložení. Samozřejmě mluvím o samotných datech, ale okolní uživatelské rozhraní by také mohlo trpět. Zvažte například příkazový řádek s tlačítky. Když je text na tlačítkách přeložen, mohou se zvětšovat a přetékat pruh.
  • Udělejte z UI „líné načtení“ některé informace a zvažte použití stránkování. Například může trvat příliš dlouho, než se načtou tisíce položek najednou - ujistěte se, že uživatelské rozhraní nevypadá zmrazené nebo rozbité, zatímco se načítá, nebo že načte jednu stránku a poté načte zbytek, zatímco uživatel může také začít komunikovat s uživatelské rozhraní.

Jinak souhlasím s Rahulem, že potřebujeme nějaké další podrobnosti, abychom se dostali konkrétněji.

4
Dan Barak