132
Kochrezepte für pragmatisches GUI-Design Roland Weigelt Mail: [email protected] Twitter: @RolandWeigelt Köln, 10. Mai 2019 Blog: weblogs.asp.net/rweigelt

Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Kochrezepte für pragmatisches GUI-DesignRoland Weigelt

Mail: [email protected]

Twitter: @RolandWeigelt

Köln, 10. Mai 2019 Blog: weblogs.asp.net/rweigelt

Page 2: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Roland Weigelt

▪ Software-Entwickler (1997-2011)• Comma Soft AG

▪ Senior Product Designer / UX Specialist (seit 2012)• Comma Soft AG

▪ Developer/Designer Digital Signage (seit 2006)• Telekom Baskets Bonn

▪ Sonstiges• Vorträge/Workshops

• bis 2017: Bonn-to-Code.Net, dotnet Cologne

Page 3: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Mein Alltag:

„Roland, wir haben damal eine UI-Frage...“

Page 4: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Welche Farbe soll der Button

haben?

Page 5: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Welche Farbe soll der Button

haben?

Dialog oder Popup?

Page 6: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Welche Farbe soll der Button

haben?

Dialog oder Popup?

WelcheTabellen-spalten?

Page 7: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Welche Farbe soll der Button

haben?

Dialog oder Popup?

WelcheTabellen-spalten?

Wie bilde ich die fachlichen Abläufe ab?

Page 8: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Welche Farbe soll der Button haben? Dialog oder Popup?Welche

Tabellen-spalten?

Wie bilde ich die fachlichen Abläufe ab?

Page 9: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Fragen, Fragen, Fragen

Page 10: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

„Kommt darauf an“

Page 11: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Kochrezepte

Page 12: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Rezept: Wo kein Feature, da keine UI

Kein Feature ist kostenlos!

Entwicklung, Tests

Dokumentation

„Cognitive Load“ beim Nutzer

Pflege in zukünftigen Versionen

Change Management

Page 13: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Die ultimative „Feature Filter“-Frage

In welchem realen Szenario...

...kann welcher echte Benutzer...

...welche konkrete Aufgabe erfüllen.

a

Page 14: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

And Now for Something

Completely Different...

Page 15: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Raumschiff

Enterprise

Page 16: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Er ist tot,Jim!

Page 17: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

„Red Shirt Disease“

„Star Trek TOS“: 430 Besatzungsmitglieder

davon 59 getötet

davon 43 „Rothemden“ ca. 73%

* http://www.sitelogicmarketing.com/analytics-according-to-captain-kirk/

*

Page 18: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Grundmuster in Erzählungen

Tod einer Person => Gefahr für alle spürbar

Hauptpersonen werden noch gebraucht

Dann trifft es halt eine austauschbare Person („Red Shirt“)

Weiteres Muster: Hero‘s Journey

z.B. Luke Skywalker in Star Wars (1977)

Page 19: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Factory Dependency InjectionLazy Initialization Object Pool Prototype

Singleton Adapter Composite Decorator Facade Module Proxy

Chain of Responsibility CommandInterpreter Iterator Null object Observer

Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Software Design Patterns

Page 20: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

User Interface Patterns

Page 21: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Master - Detail

Page 22: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Master - Detail

Page 23: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Master - Detail

Page 24: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Master - Detail

Page 25: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Große PatternsKleine Patterns

Page 26: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Beispiel: Checkbox

Page 27: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Beispiel: Checkbox

Auswahl zwischen zwei klar gegensätzlichen Alternativen

▪ So klar, dass die zweite nicht erwähnt werden braucht

Richtig: Ich stimme den AGBs zu

Falsch: Querformat

Hochformat

Querformat

Page 28: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Wer ist Fan desRibbon Controls in Microsoft Office?

Page 29: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Ribbon

Page 30: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Ribbon

Page 31: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Ribbon

- Gruppierung nach NutzungskontextenErste Ebene

Page 32: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Ribbon

- Gruppierung nach FunktionenZweite Ebene

Page 33: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Ribbon

Viele Funktionen gleichzeitig

hohe Entdeckbarkeit („Discoverability“)

Die richtigen Funktionen für den aktuellen Kontext

„cognitive load“ reduziert

Kriterien für Einsatz

▪ Tatsächlich sehr große Anzahl von Funktionen

▪ Nutzungskontexte mit nicht zu häufigen Wechseln

Page 34: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

„Reicht nicht einfach eineHandvoll guter Patterns aus?“

Page 35: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

„Warum nicht einfach diebesten Patterns verwenden?“

Page 36: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

KompromisseViele

Funktionendirekt

erreichbar

VerständlichWenig Platzverbraucht

?

Page 37: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

KompromisseViele

Funktionendirekt

erreichbar

VerständlichWenig Platzverbraucht

?

Page 38: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

KompromisseViele

Funktionendirekt

erreichbar

VerständlichWenig Platzverbraucht

?

Page 39: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

KompromisseViele

Funktionendirekt

erreichbar

VerständlichWenig Platzverbraucht

?

Page 40: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

„Viel hilft viel“

Page 41: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Bedienidee geeignet?

Auswahl-Prozess

UI Patterns

Page 42: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Auswahl-Prozess

Bedienidee geeignet?

UI Patterns

Page 43: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Auswahl-Prozess

Bedienidee geeignet?

Technik/Budget

UI Patterns

Page 44: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Auswahl-Prozess

Bedienidee geeignet?

Technik/Budget

Politik/Mode

UI Patterns

Page 45: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Pattern Libraries

Page 49: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Rezept: Pattern Libraries nutzen

Beispiel: ui-patterns.com

Was?

Warum?

Wie?

...

Page 50: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Rezept: Waches Auge für UIs

User Interfaces bewusst betrachten

▪ Gelungene Darstellungen

▪ Gut geschriebene Texte

▪ Angenehme Interaktionen

Screenshots speichern

Was sind die grundlegenden Muster?

Vor- und Nachteile herausarbeiten

Page 51: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler
Page 52: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Umgang mit Komplexität

Page 53: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler
Page 54: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Elemente...

Entfernen

▪ Features weglassen oder automatisieren.

Organisieren / Gruppieren

▪ Darstellung übersichtlicher gestalten

Verbergen

▪ Funktionen nur bei Bedarf einblenden

Verlagern

▪ Funktionen an anderer Stelle anbieten

Page 55: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Pattern für „Verbergen“: Progressive Disclosure

„Schrittweise Offenlegung“

Verbergen von Elementen, die nicht immer notwendig sind

Einblenden nur bei Bedarf

(UI-)technisch: „+“-Button, „mehr...“-Link, etc.

Fachlich: Wenn bestimmte Auswahl getroffen, dann...

Page 56: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Progressive Disclosure

Page 57: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Spezialfall: Responsive Disclosure

„Reagierende Offenlegung“

Trigger: Eingabe, die ohnehin erfolgen würde

Idee: Weniger Mikromanagement

Page 58: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Responsive Disclosure

Page 59: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Responsive Disclosure

Page 60: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Verwandt: Responsive Enabling

Page 61: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Responsive Enabling

Page 62: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Responsive Enabling

Page 63: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Responsive Disclosure Responsive Enabling

Ersteindruck Ich sehe nur Relevantes Optionen sind klar

Vorteile • Komplexität zunächst verborgen

• Dynamik möglich

• Wiedererkennungseffekt

• Keine Überraschungen

Nachteile Aufklappen u.U. überraschend • Evtl. nicht offensichtlich, wasdie Elemente aktiviert

• Viele deaktivierte Bereicheverwirrend

Layout • Entweder: Änderung der Größe ggf. „Springen“

• Oder: Leere Bereiche

Gesamt-Layout bleibt gleich

Page 64: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Darstellung von Daten

Page 65: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Beispiel: Buch

Page 66: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler
Page 67: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler
Page 68: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Eigenschaften

Identifizierend?

▪ Falls ja: Gut sichtbar darstellen

Selbstbeschreibend?

▪ Falls ja: ggf. Beschriftung weglassen

Zusammenhang mit anderen Eigenschaften?

▪ Gruppierung, Nähe → Zusammenhang deutlich machen

Page 69: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Eigenschaften

Endliche Anzahl von Werten?

Ggf. Transformation möglich: Text → Bilder, Farben

Status

Gut

Mittel

Schlecht

Page 70: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Eigenschaften

Endliche Anzahl von Werten?

Ggf. Transformation möglich: Text → Bilder, Farben

Status

Gut

Mittel

Schlecht

-!

Page 71: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Donaudampfschifffahrtskapitänsmützenschnur

Eigenschaften: Texte

Länge bekannt?

▪ Minimal? Typisch? Maximal?

Entwurf vs. Realität

Lorem Ipsum

Donaudampfschifffahrts

Page 72: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Eigenschaften: Texte

Beispiel: Länge von Farbnamen

Elektrische Widerstände: Farbkodierung

▪ z.B. Schwarz, Braun, Rot, Orange, Gelb, Grün, Blau, ...

Autofarben

▪ z.B. Chroma-Blau Metallic, Iridium-Schwarz Mica, ...

7 vs. 2 Farbnamen!

Page 73: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Eigenschaften: Texte

Was ist wichtig?

▪ Anfang / Ende / Mitte / Alles?

Evtl. gekürzte Anzeige sinnvoll?

Das Geheimnis erfolgreicher GUI-Designer [...]

D:\Talks\ ... \2019-05-10 - User Interface Patterns.pptx

Seriennummer: 2010-...-A

Page 74: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Eigenschaften: Zahlen

Groß/Klein (1 Million vs. 1 Dutzend)

Nur groß/klein oder gemischt? (Ausreisser)

Negative Werte?

▪ unmöglich / normal / ungewöhnlich / alarmierend?

usw. usw.

Page 75: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Weiß jemand, was ein Telsiri ist?

Page 76: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Telsiri

Fiktive Lebensform als Beispiel für fremde Fachdomäne

Auftrag: Detailansicht für Telsiri-Datenbank

Annahmen

▪ Sehr spezifisches Fachvokabular

▪ Unerwartete Zusammenhänge

▪ Keine Zeit für echte Einarbeitung

▪ Telsiri-Experte steht für grundlegende Fragen bereit

Page 77: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Eigenschaften eines Telsiri

Name

Trilaten : char

Tsibutsi : string[10]

Famsupel : string[100]

Schlubiz-Faktor : integer

Splurby, Noobah, Pizquat : string[5]

: string[1024]

Page 78: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Keine gute Idee:

Name: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Trilaten: XTsibutsi: XXXXXXXXXXFamsupel: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSchlubiz: 1234567890Splurby: XXXXXNoobah: XXXXXPizquat: XXXXX

Page 79: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

“Lipstick on a pig”

Name

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Trilaten: X

Tsibutsi

XXXXXXXXXX

FamsupelXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Schlubiz1234567890

Splurby: XXXXX Noobah: XXXXX Pizquat: XXXXX

Page 80: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Schritt 1: Priorisieren

Name : string[1024]

Trilaten : char

Tsibutsi : string[10]

Famsupel : string[100]

Schlubiz : integer

Splurby, Noobah, Pizquat : string[5]

Page 81: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Schritt 1: Priorisieren

1. Splurby : string[5] , Trilaten : char

2. Tsibutsi : string[10]

3. Famsupel : string[100]

4. Name : string[1024]

5. Schlubiz : integer

6. Noobah, Pizquat : string[5]

Page 82: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Schritt 2: Was ist als Titel geeignet?

1. Splurby : string[5] , Trilaten : char

2. Tsibutsi : string[10]

3. Famsupel : string[100]

4. Name : string[1024]

5. Schlubiz : integer

6. Noobah, Pizquat : string[5]

Page 83: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Nachgefragt...

Splurby

➢ Immer 5 Zeichen? Buchstaben, Zahlen? Sonderzeichen?

❖ 1. Zeichen Buchstabe, sonst Zahlen/Buchstaben gemischt, Großbuchstaben, keine 0, kein O => z.B. AB1D3

Trilaten

a, m oder z.

Page 84: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Nachgefragt...

➢ Kunde sagt: Name unhandlich – Kompromiss möglich?

➢ Evtl. nur die ersten N Zeichen anzeigen?

➢ Oder in der Mitte kürzen (...)?

❖ Schlechte Nachricht: Freitext

❖ “Stammt ab von”, “ist verwandt mit”, “ähnlich zu”

❖ Dazwischen Gattungs/Familien/Gruppen/...-Bezeichner

➢ Idee: Bezeichner möglichst darstellen, Rest kürzen

Page 85: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Nächster Versuch

Lorem ipsum dolor sit amet ... consectetur adipiscing elit ... sed do eiusmod tempor ... incididunt ut labore et dolore magna aliqua ... Ut enimad minim veniam, quis nostrud exercitation ... ullamco laboris nisi utaliquip ex ea commodo consequat... Duis aute irure dolor ... in reprehenderit in voluptate velit esse ... cillum dolore eu fugiat nullapariatur... Excepteur sint occaecat ... cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum [mehr...]

AB1D3 aSplurby Trilaten Name

Tsibutsi

XXXXXXXXXX

FamsupelXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Schlubiz1234567890

Noobah: XXXXX Pizquat: XXXXX

Page 86: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Offensichtliches weglassen

Lorem ipsum dolor sit amet ... consectetur adipiscing elit ... sed do eiusmod tempor ... incididunt ut labore et dolore magna aliqua ... Ut enimad minim veniam, quis nostrud exercitation ... ullamco laboris nisi utaliquip ex ea commodo consequat... Duis aute irure dolor ... in reprehenderit in voluptate velit esse ... cillum dolore eu fugiat nullapariatur... Excepteur sint occaecat ... cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum [mehr...]

AB1D3 a

Tsibutsi

XXXXXXXXXX

FamsupelXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Schlubiz1234567890

Noobah: XXXXX Pizquat: XXXXX

Page 87: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Nachgefragt: Tsibutsi?

➢ Immer 10 Zeichen? Buchstaben, Zahlen? Sonderzeichen?

❖ “10 Zeichen” technisch/historisch begründet

❖ Feste Werte: Floz, Kalmat, Kalmut, Numut, Vamat

➢ Zusammenhang? Reihenfolge?

Fachlich: Kalmut, Numut, Floz, Vamat, Kalmat

Page 88: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Nachgefragt: Tsibutsi?

➢ Immer 10 Zeichen? Buchstaben, Zahlen? Sonderzeichen?

❖ “10 Zeichen” technisch/historisch begründet

❖ Feste Werte: Floz, Kalmat, Kalmut, Numut, Vamat

➢ Zusammenhang? Reihenfolge?

Fachlich: Kalmut, Numut, Floz, Vamat, Kalmat

Page 89: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Mit Tsibutsi...

Lorem ipsum dolor sit amet ... consectetur adipiscing elit ... sed do eiusmod tempor ... incididunt ut labore et dolore magna aliqua ... Ut enimad minim veniam, quis nostrud exercitation ... ullamco laboris nisi utaliquip ex ea commodo consequat... Duis aute irure dolor ... in reprehenderit in voluptate velit esse ... cillum dolore eu fugiat nullapariatur... Excepteur sint occaecat ... cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum [mehr...]

AB1D3 a

FamsupelXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Schlubiz1234567890

Noobah: XXXXX Pizquat: XXXXX

Kalmut

Page 90: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

...und Famsupel

Lorem ipsum dolor sit amet ... consectetur adipiscing elit ... sed do eiusmod tempor ... incididunt ut labore et dolore magna aliqua ... Ut enimad minim veniam, quis nostrud exercitation ... ullamco laboris nisi utaliquip ex ea commodo consequat... Duis aute irure dolor ... in reprehenderit in voluptate velit esse ... cillum dolore eu fugiat nullapariatur... Excepteur sint occaecat ... cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum [mehr...]

AB1D3 a

Famsupel

GHTRWSGFAX XAGXXXXXXX YYYYYYYYY YYYYYY YYY YYYYYYYYYYYYX--X--X--YYY---Y YYHZ 1234567890ABCDEFGHKLMNQ 1234567

Schlubiz1234567890

Noobah: XXXXX Pizquat: XXXXX

Kalmut

Page 91: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

...und Schlubiz, Noobah, Pizquat

Lorem ipsum dolor sit amet ... consectetur adipiscing elit ... sed do eiusmod tempor ... incididunt ut labore et dolore magna aliqua ... Ut enimad minim veniam, quis nostrud exercitation ... ullamco laboris nisi utaliquip ex ea commodo consequat... Duis aute irure dolor ... in reprehenderit in voluptate velit esse ... cillum dolore eu fugiat nullapariatur... Excepteur sint occaecat ... cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum [mehr...]

AB1D3 a

Famsupel

GHTRWSGFAX XAGXXXXXXX YYYYYYYYY YYYYYY YYY YYYYYYYYYYYYX--X--X--YYY---Y YYHZ 1234567890ABCDEFGHKLMNQ 1234567

Schlubiz Noobah Pizquat

Kalmut

12.345 axxpq 0-00-xy

Page 92: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler
Page 93: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Rezept: Details rauskitzeln!

Idealfall: Echtes Wissen in der Fachdomäne.

Minimal: Details erfragen.

▪ Über Boolean, Integer, Double, String hinaus!

▪ Kleine Details -> große Auswirkungen auf die Darstellung

Darüber freuen sich auch externe Designer.

Page 94: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Performance

Page 95: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Performance

Berechnungen: CPU-Leistung vs. Algorithmen

Datenbankabfragen: Server-Leistung vs. Komplexität

Netzwerkzugriffe: Latenz, Durchsatz vs. Datenmenge

Page 96: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Gefühlte Performance

Wie nehmen Anwender die reale Geschwindigkeit wahr?

Gelegenheitsanwender vs. Power-User

Warten auf Ergebnisse vs. Langsame Reaktion

Page 97: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Jakob Nielsen: Powers of 10

0,1 Sekunden

▪ Illusion der direkten Manipulation

▪ Eye Tracking Studien: Fixierung selten länger

1 Sekunde

▪ Gefühl der Kontrolle

▪ Anwender bleiben fokussiert auf die Aufgabe

10 Sekunden

▪ “Flow” gebrochen

▪ Aufmerksamkeitsspanne überschritten

Page 98: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

2 Sekunden

Page 99: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Klick mich!

Lorem ipsum dolor sit amet, consecteturadipiscing elit, sed do eiusmod temporincididunt ut labore et dolore magna aliqua.

• Ut enim ad minim veniam, quis nostrudexercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

• Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiatnulla pariatur.

Page 100: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Klick mich!Klick mich!

Lorem ipsum dolor sit amet, consecteturadipiscing elit, sed do eiusmod temporincididunt ut labore et dolore magna aliqua.

• Ut enim ad minim veniam, quis nostrudexercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

• Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiatnulla pariatur.

Page 101: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Klick mich!

Lorem ipsum dolor sit amet, consecteturadipiscing elit, sed do eiusmod temporincididunt ut labore et dolore magna aliqua.

• Ut enim ad minim veniam, quis nostrudexercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

• Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiatnulla pariatur.

Page 102: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

0,25 Sekunden

Page 103: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Klick mich!Klick mich!

Lorem ipsum dolor sit amet, consecteturadipiscing elit, sed do eiusmod temporincididunt ut labore et dolore magna aliqua.

• Ut enim ad minim veniam, quis nostrudexercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

• Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiatnulla pariatur.

Page 104: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Klick mich!

Lorem ipsum dolor sit amet, consecteturadipiscing elit, sed do eiusmod temporincididunt ut labore et dolore magna aliqua.

• Ut enim ad minim veniam, quis nostrudexercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

• Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiatnulla pariatur.

Page 105: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Mit Anfangs-Delay

Page 106: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Klick mich!Klick mich!

Lorem ipsum dolor sit amet, consecteturadipiscing elit, sed do eiusmod temporincididunt ut labore et dolore magna aliqua.

• Ut enim ad minim veniam, quis nostrudexercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

• Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiatnulla pariatur.

2 sec

Page 107: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Klick mich!Klick mich!

Lorem ipsum dolor sit amet, consecteturadipiscing elit, sed do eiusmod temporincididunt ut labore et dolore magna aliqua.

• Ut enim ad minim veniam, quis nostrudexercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

• Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiatnulla pariatur.

0,25 sec

Page 108: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Rezept: Geeignete Reaktion der UI

„Habe ich geklickt?“ : UI sollte sofort „irgendwie“ reagieren

„Passiert da etwas?“ : Animation suggeriert Aktivität

Unbekannte Dauer: Animation nicht sofort

Bei sehr lange Dauer „was habe ich davon“ beantworten

▪ „Wir berechnen die günstigsten Flüge für Sie“

Page 109: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Warten auf ein Ergebnis

Zeigen

Page 110: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Warten auf ein Ergebnis

Page 111: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Warten auf ein Ergebnis

Roland WeigeltSenior Product Designer / UX Specialist

Comma Soft AG

Page 112: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Teilergebnisse liefern

Zeigen

Page 113: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Teilergebnisse liefern

Roland WeigeltSenior Product Designer / UX Specialist

Comma Soft AG

Page 114: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Teilergebnisse liefern

Roland WeigeltSenior Product Designer / UX Specialist

Comma Soft AG

Page 115: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Teilergebnisse liefern

Zeigen

Page 116: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Teilergebnisse liefern

Roland WeigeltSenior Product Designer / UX Specialist

Comma Soft AG

Page 117: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Teilergebnisse liefern

Roland WeigeltSenior Product Designer / UX Specialist

Comma Soft AG

Page 118: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Teilergebnisse liefern

Page 119: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Rezept: Teilergebnisse/Platzhalter

Optimal: Platzbedarf vorher bekannt

Vermeiden: „Springen“ vs. klickbare Buttons

Page 120: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Mittel vs. Zweck

Page 121: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Foto: Roland Weigelt

Beispiel: LED-Werbebanden

Page 122: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Foto: Roland Weigelt

Beispiel: LED-Werbebanden

Page 123: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Beispiel: LED-Werbebanden

Scheinbare Helligkeit abhängig vom Hallenlicht

Deshalb: Helligkeitsregelung in der Abspiel-Software

Page 124: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Technik

Helligkeit: implementiert über Pixel Shader

Opazität: nur eine kleine Änderung im Code

Y-Position: nur eine andere kleine Änderung

Page 125: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Idee: „DJ-mäßig“ weichzwischen Inhalten wechseln

Page 126: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Aus dieser UI...

Page 127: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

…wird diese UI:

Page 128: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Ein Schritt zurück: Was ist der Zweck?

Weicher Übergang von A ...

Innerhalb einer gewissen Zeitspanne

▪ Zu kurz → erscheint als harter Schnitt

▪ Zu lang → Timing passt nicht (z.B. zum Hallensprecher)

Wie wichtig ist hier Feinkontrolle?

▪ Erfahrung: 0,7 sek in den meisten Fällen OK

Farben Meier – 4 x in Bonn! Telekom Baskets Bonn

... nach B

Page 129: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Neue UI

Weiter >

Page 130: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Rezept: Zweck im Blick behalten

Bedienelement (Control) : Mittel

Zu erfüllende Aufgabe : Zweck

Vorsicht, wenn das Mittel „naheliegend ist“

▪ Entwickler 1: „Ich habe da schon ein fertiges Control“

▪ Entwickler 2: „Die API steht schon“

▪ Kunde: „Wir wollen ein Karussel/Dashboard/...“

Page 131: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Fazit

Wo kein Feature, da keine UI

Denken in Patterns

▪ Pattern Libraries nutzen, waches Auge für UIs

Details rauskitzeln

Gefühlte Performance beachten

▪ Reaktion der UI auf Eingaben, Platzhalter

Mittel nicht mit Zweck verwechseln!

Page 132: Kochrezepte für pragmatisches GUI-Design · 2019. 5. 11. · Interpreter Iterator Null object Observer Publish/Subscribe Strategy Template method Visitor Lock Monitor object Scheduler

Kochrezepte für pragmatisches GUI-Design

VIELEN DANK!

Folien auf der DNCGN-Website (oder Mail an [email protected])