Graphische Nutzeroberflächen

Wichtige Systeme

Leichtgewichtige Systeme

DirectFB
leichtgewichtige Hardwareabstraktionsschicht nutzt Graphik-Beschleunigung bzw. emuliert sie in Software.

Designaspekte

Aussehen einer GUI auf verschiedenen Systemen

HG:Auf allen Systemen soll eine GUI gleich aussehen
-Eine aufwändige Wrappersicht muß dies abstrahieren, dies ist aufwändig zu realisierten, braucht mehr Code
HN:Eine Applikation soll sich an die GUI-Design (Look and Feel) der Platform anpassen

Wo werden Widgets implementiert ?

[NF2009]
H_EB: in einer extra Bibliothek
+ minimiert die Oberfläche auf das minimal notwendige mit minimalem Code, wichtiger Aspekt für GUI-Sicherheit
+ mehr Freiheit für Designer - komplexere Nutzung
H_IG: in der Oberfläche (d.h. im Betriebssystem) selber
+ Programme können sich auf das Verarbeiten der Daten konzentrieren
+ einheitliches Look and Feel, zentral erzwungen
- Komplexität in der Oberfläche, kann dort aber zentral optimiert werden.
+ Oberfläche hat alle Daten und braucht zum Redraw nicht mit den Clients zu kommunizieren [TUD-FIO3-10-sept2003]

sonstiges

GUI-Sicherheit

Graphische Komponenten

WWW-Browser
sind für Inter- und Intranet-Anwendungen zu einer universellen Oberfläche geworden.
Das W3C arbeitet nun an XForms, die Formulare für WWW-Browser und Handys spezifizieren können.
AJAX (Asynchonous JavaScript and XML) kann ganze Anwendungen im Zusammenarbeit mit Server und Browser abwickeln.
Apache Struts ist nach Wikipedia ein MVC-Framework
Webanwendungen (Web-App) haben die Präsentationslogik in Browsern und die anderen Komponenten in Servern - sie benöntigen keine Installation auf dem Client (Smartphone, Tablett)
Sobald SVG im Browser implementiert ist, kann man diverse Graphiken präsentieren
Auch für Mobilgeräte: Apache CORDOVA ist eine Platform für native mobile Applikationen mit HTML,CSS und Java Script
XUL
Man kann damit eine platformneutrale Präsentationsschicht spezifizieren mit einer XML-Sprache.
( Wikipedia-Artikel)
XAML
auch eine XML-Sprache. zum GUI-Design von Microsoft.
(Wikipedia)
QT C++
Abstrahiert über Fenstersystem Linux/WinXX
gtk C/C++
kommt aus dem Bildverarbeitungsprogramm gimp
MFC C++
für Windows
{TCL,perl,python}/TK
Graphisches Toolkit in C eingebettet in eine Scriptsprache
wxWidgets C++
Plattformübergreifende Bibliothek (Linux,UNIX,Windows,OS X ), die das Platformlayout beibehält.
Swing (Java)
Design HG
SWT Standard Widget Toolkit (Java)
gemeinsame API für verschiedene GUI-Systeme, wobei diese API je System spezifisch implementiert wird. Design HN

GUI-Elemente

Normen zur Bildschirmgestalltung

Wikipedia über Software Ergonomie

Entwurfstools

Wireframeskatcher
Ein Tool zum schnellen Entwurf von GUIs - hier geht es nur ums aussehen, nicht um die Technologie.
Kann man diese Effekte nicht mit jedem GUI Designer erreichen ?

Bibliotheken für textbasierte Terminals

Auf den ersten Blick sind diese natürlich total antiquiert, sobald eine hochauflösende Graphikkarte mit Bildschirm da ist, oder ein Netzwerk wird man eine graphische GUI bevorzugen oder mit einem WWW-Server arbeiten.
Diese Biblioteken stammen aus einer Zeit, wo es das nicht gab.
Allerdings kann es eingebettete Systeme geben, im weiteren Sinne auch Netzwerkgeräte wie Switches, Router, und dergl. wo zusätzlich ein einfacher Bildschirm oder eine serielle Schnittstelle eingebaut ist.
Desweiteren gibt es dann auch Terminalemulationen wie xterm usw.
Der berümte Editor vi nutzt z.B. die ncurses Bibliothek und ist daher auf Unix-ähnlichen Systemen fast immer verfügbar

ncurses
Genutzt fuer: Bauumgebung Linuxkern (make menuconfig), vi
newt
ist auch ein Fenstersystem für Textbasierte Terminals
nutzbar in Perf

GUI-Arbeitsgruppe Informatik- und Netzwerkverein Ravensburg e.V