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
- + der Nutzer hat das gewohnte Design, er hat ja irgendeine Grundentscheidung gemacht und wird dies wohl gutfinden
- + Ein Wrapper höherer Abstraktion kann der GUI-Implementierung Freiheiten gewähren, die sich zur optimalen Leistung ausnutzen lassen.
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