Od dob, kdy jsem k počítačům přišel, se uživatelské rozhraní ohromě změnilo. V některých ohledech však vidím trend vracet se ke kořenům, a myslím že je to tak správně. Rád bych zde ale rozebral výběr uživatelského rozhraní pro aplikaci. Jak se to zdá přehnaně zbytečné, není tomu tak.
Úlohu, resp. zadání, které jsem řešil je evidenční program pro právě jednoho uživatele. Typickým evidenčním programem je účetnictví, nebo skladové hospodářství. Existuje jich ale více, a za evidenční program můžeme považovat i mailový klient. Ten sice programovat nechci, ale jako ukázka bude sloužit dobře. Takový mailový klient pracuje s "databází" mailů, v lepším případě i databází kontaktů. Má nějaký seznam mailů, který je možno řadit a ve kterém lze hledat. Samozřejmě poskytuje nějaký formulář na tvorbu nového emailu. Maily mohou být také rozděleny do složek, a podružnou databází jsou právě kontakty. V nich by mělo jít opět hledat, případně zobrazit jejich seznam, kontakty vytvářet, upravovat i mazat.
Pokud píši GUI, myslím tím GUI obecně. Nehledám rozdíly programátorské, technologické ani historické. Prostě grafické rozhraní je pro mne takové, které pracuje s "grafikou" jakožto primárním výstupním formátem. Jde o MacOS, Windows, Gnome, KDE a všechny jejich předchůdce i alternativy. Prostě základním prvkem GUI je okno.
A protože pracuje GUI právě s okny, pracují tak i aplikace. Textový editor, grafický editor, mailový klient, nebo libovolná jiná GUI aplikace má okno. Tedy minimálně jedno okno. Nikde není napsané, že jich nemůže být více. Naopak, je velmi časté že jich je více. Některá okna se nazývají dialogy, mají specifický režim a jsou často menší než okna aplikací. Buď na něco upozorňují, nebo očekávají nějaký vstup. Například otevření souboru, hlášení o chybě, případně informace o licenci.
Pokud se podíváme na ukázkovou aplikaci mailového klienta, je zřejmé, jak to dopadne. Mailový klient je velmi jednoduchý, protože zde jsou vlastně jen dvě databáze, z nichž jedna je důležitější. V případě více účtů vidíte maily jen z jednoho, ale nemusí to být vždy pravda. Práce s adresami, většinou znamená další okno, jedno či více, podle toho, jak si s tím autoři poradili. Pokud by ale takových databází bylo více, je zřejmé, že množství oken, případě složitost rozhraní poroste.
Schválně píši Webové uživatelské rozhraní. To proto, že webové aplikace jsou samostatnou kapitolou. Opět pomineme multiplatformnost, resp. funkčnost v konkrétních webových prohlížečích a technologie, kterými si tvůrci takových aplikací pomáhají. Jde už ale o samotnou podstatu technologie. Zatímco u GUI bylo základním prvkem okno, na webu je to webová stránka. Webové aplikace pak můžeme rozdělit mezi takové, které pracují s odkazy, a které "přepracovávají" webovou stránku na samostatně fungující aplikaci, která princip webových stránek opouští. Takovou aplikací může být např. mapová aplikace.
Webová aplikace, pokud pracuje s nějakými formuláři a přehledy, může samozřejmě emulovat některé GUI prvky, moc se to ale nedělá, protože to mate. Místo toho každá operace, nebo přehled má vlastní samostatnou stránku, často přístupnou pod samostatným webovým odkazem. Kdo z Vás někdy nakupoval na nějakém e-shopu, z největší pravděpodobností viděl minimálně jeden pohled na databázi - zboží k prodeji. Mohli ale vidět i seznam objednávek, reklamací atd.
Pokud bychom se vrátili k našemu mailovému klientu, situaci mnoho z Vás zná také moc dobře. Na jedné stránce se v podstatě střídá formulář pro vytvoření mailu s tabulkou, obsahující maily v dané složce. Případně formulář pro vytvoření, resp. úpravu kontaktu a tabulkou s kontakty.
Pamětníci už možná tuší, kam mířím. Webové uživatelské rozhraní se dá rozdělit na dvě. Jedno které emuluje grafické prostředí s okny, a druhé, které sic unikátní adresou, emuluje v podstatě terminál, resp. textové uživatelské rozhraní.
Textové uživatelské rozhraní, stejně jako CLI (rozhraní příkazového řádku) je typické pro terminály. V případě TUI pak samozřejmě mluvím o obrazovkách s "rozlišením" 80x25 znaků, ve dvou, 16ti, nebo dokonce 256ti barvách. Tím nejznámějším programem je snad Norton Commander, v Čechách pak M602, na unixových systémech Midnight Commander. Kdysi tak vypadali všechny aplikace.
Princip tohoto rozhraní je daný možnostmi terminálu. V první řadě je k dispozici jen jedna obrazovka, na kterou se vypisuje. Důležité je, že se toho na obrazovku příliš nevejde. Všechny akce jsou tak schované někde v menu, které je třeba vyvolat. Respektive pokud je vidět, ubírá tak jeden celý řádek, a zbývá jich tak jen 24. Všechny tabulky a formuláře jsou navrženy tak, aby se vešly pokud možno na jednu obrazovku, větší formulář může být problém. Toto chování dost připomíná právě webovou stránku, která v podstatě velmi často simuluje právě jednu obrazovku terminálu, jen bez tak přísného omezení v počtu znaků.
Textové uživatelské rozhraní má velmi omezenou sadu prvků, jenž mohou být použity, a veškerá "grafika" se tak provádí jen uspořádáním, barevnou paletou, případně speciálními znaky. Tato strohost ale způsobila to, že uživatel nebyl rozptylován a maten různými grafickými prvky a složitostí uživatelského rozhraní. Z našeho příkladu je jasné, a takové programy opravu existují, že na jedné obrazovce, je buď formulář pro vytvoření mailu, nebo seznam mailů v jedné složce, nebo adresář, případně formulář na tvorbu, resp. editaci kontaktu.
Dle mého, nepřekonatelným prostředím pro tvorbu evidenčních aplikací byl český PC-FAND firmy Alis. Tato platforma stále funguje, byť s některými dnes již překonanými problémy. Mezi ty bych mohl jmenovat zejména tisk na moderní tiskárny a kódování znaků.
Je slušné zmínit ještě rozhraní určené pro tablety, mobilní telefony, případně pro chytré televize. Tyto rozhraní jsou velmi blízké herním rozhraním, které pracují s celou obrazovkou, a nikoli s okny, i přes to, že jsou grafická. Pro mobilní zařízení však aplikaci nevytvářím, a takové skladové hospodářství v napsané v SDL, případně nějaké jeho nadstavbě by působilo určitě zajímavě, ale možnosti těchto toolkitů neznám, a raději je vyzkouším při jiné příležitosti.
Samozřejmě, že není jednoduché říci, které rozhraní je to nejlepší. Každé rozhraní má své možnosti, resp. omezení. A i když by mnoho z Vás možná řeklo, že TUI patří do šrotu, není tomu tak. A zejména pro různé evidenční systémy, kde existuje opravdu mnoho "obrazovek", se toto "obrazovkové" chování musí v GUI vlastně simulovat různými triky. WUI ze své historické funkčnosti to má tak nějak přirozeně. A stejně jako se kdysi v textovém rozhraní simulovalo to grafické (Dos shell), nyní se simuluje textové rozhraní v tom grafickém.
Pro svůj projekt jsem došel k tomu, že textové rozhraní bude nejlepší. A to zejména proto, že omezení, které vytváří textový terminál je výborný mantinel k tomu, abych nevytvářel aplikaci zbytečně složitou, ale naopak intuitivní s přímočarým ovládáním.
© 2023 Ondřej Tůma McBig. Ondřej Tůma | Based on: Morias | Twitter: mcbig_cz | RSS: články, twitter