Design och konstruktion av grafiska gränssnitt

Relevanta dokument
Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Vad utmärker ett bra gränssnitt?

Design och konstruktion av grafiska gränssnitt

Vad utmärker ett bra användargränssnitt?

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215/TIG091

Design och konstruktion av grafiska gränssnitt

Föreläsning 3 1ME403 Design av grafiska gränssni7, 7,5hp. Gränssni)sdesign II. Rune Körnefors. Medieteknik Rune Körnefors rune.kornefors@lnu.

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Layout och Navigation

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Prototyper och användartest

Om användare och designprocessen

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215 - lösningsförslag

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 18

Design och konstruktion av grafiska gränssnitt

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

Föreläsning 4 1ME403 Design av grafiska gränssni7, 7,5hp. Gränssni)sdesign III. Rune Körnefors. Medieteknik Rune Körnefors

Föreläsning 7. Grafiska användargränssnitt

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Vilken version av Dreamweaver använder du?

Lite info först. Kom ihåg! Deadline på lab1 på onsdag. Övning 2 på onsdag: gör en kalender för olika slags användare

Extra handledning för de som vill det på onsdag i ML1 - Drop in, inga tider behöver bokas - En lärare

Objektorienterad programmering med Java Swing. Programexempel. Swing och AWT AWT. = Abstract windowing toolkit

Lite mer om CGI-programmering

Grafiska användargränssnitt i Java

Windows Forms Winstrand Development

Föreläsnings 11 - GUI, Händelsestyrda program, MVC

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215

Grafiska användargränssnitt i Java

PROGRAMMERINGSTEKNIK TIN212

ITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter

725G61 - Laboration 8 Ett enkelt GUI. Sahand Sadjadee och Johan Falkenjack

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? LayoutManagers. Exempel på några av komponenterna

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

DAT043 - föreläsning 8

behövs för enhetlighet, tala samma språk, så att användaren kan lära sig och använda det vidare.

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

Föreläsning 5 Konceptuell design och designprinciper. Kapitel 8-9 i Stone et al.

Felhantering TDDD78, TDDE30, 729A

TUTORIAL: SAMLING & KONSOLL

Laboration 1 Introduktion till Visual Basic 6.0

Elektronisk publicering TNMK30

Swing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna

Menyer, formulär och dialogrutor

Tips & tricks för redigering

Granskning av gränssnitt. Mattias Arvola

Efterlysning! Kognitiv design 1. Mitt mål för er med idag. Idag. Mål. Vad exakt är problemet?

Användarcentrerad design Prototyper & användartest

Model View Controller. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Nyheter och ändringar Adelanet 4.8.0

Vanliga frågor för VoiceXpress

Styrteknik 7.5 hp distans: E-1000 och E-Designer

Föreläsning 6 Konceptuell design och designprinciper. Kapitel 8-9 i Stone et al.

Version: Datum: DynaMaster 5 Golf Övergripande manual

Design och konstruktion av grafiska gränssnitt. Interaktionsdesign Tillämpad informationsteknologi Chalmers/GU

Prototyping medium/high fidelity Användarupplevelse Interaktionsflöde och flow Användbarhetsutvärdering - Usability testing Tillgänglighet

Interaktionsdesign, grundkurs INTERAKTION 1

27. GUI Programming. Java. Summer 2008 Instructor: Dr. Masoud Yaghini

Prototypningsverktyg. A Human-Centered Design Process (ISO , 2010) Mattias Institutionen för datavetenskap

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

LARS. Ett e-bokningssystem för skoldatorer.

Föreläsning 3: Händelsestyrda program och användargränssnitt

Malmö högskola 2007/2008 Teknik och samhälle


Lära känna skrivbordet

LabelLogic. Bruksanvisning. Innehåll. Label Choices. Data Library. Print Centre. Design Centre

Redigeringsteknik och postproduktion

Olika syften. TDDD60 användbarhetstest. När passar vilken typ? Med eller utan användare

Transkript:

Design och konstruktion av grafiska gränssnitt Olof Torgersson Interaktionsdesign Data- och informationsteknik Chalmers/GU 1

Idag Lite av varje Pappersprototyper Kapitel 7 i Tidwell NetBeans-exempel Tenta Hjälpmedel 1 A4 (2 sidor) med egna anteckningar skrivna för hand eller på dator Innehåll (kort version) Allt som gåtts igenom på kursen Tidwell förutom kap 8 Utdelat material (mer kommer) Föreläsningar PAPER PROTOTYPING 2

Pappersprototyper Vad? Man skapar en pappersversion av sitt GUI och använder för att testa och utvärdera innan man börjar programmera. Paper prototyping is avariation of usability testing where representative users perform realistic tasks by interacting with a paper version of the interface that is manipulated by a person playing computer, who doesn t explain how the interface is intended to work. Varför Snabbt enkelt och billigt Kan fånga massor av problem innan man kodar Pappersprototyp? 3

Skiss vs pappersprototyp En skiss visar bara hur det ser ut Kan vara flera olika sidor Samma sak med storyboards och wireframes Som förstås alla kan vara intressanta En pappersprototyp kan man interagera med Klicka genom att peka Sen byter man till hur det ser ut efter klick Skriva kan man göra direkt Sen kanske man byter beroende på kommando Vid menyval visar man menyer Klickar man (genom att peka) på en dropdown visas en lista Test med pappersprototyp Välj ut de delar av GUI:t man vill testa Skapa pappersversioner av alla sidor Man kan ha olika lösa delar man lägger på varandra etc också Välj ut användare för testet Skapa några uppgifter användarna ska göra Sen byter man papper efter vad användarna gör och ser vad som händer Det är vanligt att man uppmanar användare att tänka högt Roller Facilitator Computer Observer 4

GETTING INPUT FROM USERS Allmänt Design bör ta hänsyn till alignment, grouping etc för att skapa ett harmoniskt och förståeligt intryck För val av specifika kontroller kan uppställningen i Tidwells bok vara nyttig En av flera? Flera av flera? Tal i intervall? Sen finns det några principer till 5

Principer Se till att användarna förstår vad som efterfrågas och varför Använd språk som är anpassat till användarna Om det är en massa information förklara varför den behövs Använd tooltips för t ex knappar som används för input Om det går ställ inte frågan alls Detta är samma som Cooper säger Man kanske avbryter flow Det kanske går att gissa eller fylla i ett standardvärde för att minska arbete Principer, forts Kunskap i världen är mer korrekt än kunskap i huvudet Går det att erbjuda en lista att välja från så gör det Kan man ha en visuell presentation så använd den Måste man ha ett visst format, visa det tydligt Se upp för direktmappningar från implementationsmodellen Glöm inte användarens mentala modell Data i implementationen kanske inte passar Designa först mappa mot implementationen sen Användartesta Gäller för allt Ofta räcker det med ett ganska litet antal personer (typ 5) 6

Principer, forts Valet av kontroll påverkar vad användaren förväntar sig så välj rätt Radiobox flervalsalternativ Textfält kort öppet svar Ge inte möjlighet att skriva fel T ex 15 när bara 1-10 är tillåtet Få aldrig användaren att känna sig dum Välja kontroll Boken tar upp ett stort antal möjliga kontroller för olika situationer Kontroller för att välja en av två möjliga Kontroller för att välja N objekt där N är litet Kontroller för att välja N objekt i godtycklig ordning Kontroll för att skriva en rad text Läs tillräckligt för att ha god uppfattning om möjligheter sen kan man slå upp i en designsituation 7

Faktorer att ta hänsyn till Tillgängligt utrymme Platskraven varierar mycket mellan olika kontroller Användarnas allmänna datorkunskap Textfält förståeligt för alla Dubbelslider eller lista med flervalsmöjlighet mycket svårare Användarnas domänkunskap Vet man att bara vissa intervall är tillåtna så måste man inte designa lika noga Det kanske är mindre viktigt att bara ha givna alternativ att välja mellan Men det blir lätt fel även om man är kunnig forts Förväntningar från andra program The applications that are easy to use are designed to be familiar Bold/Italic/Underline vanligt som butcons, radioknappaer blir konstigt Dvs man måste kunna sin verktygslåda Tillgänglig teknik Alla plattformar har inte samma kontroller Web begränsad iphone specialdesignade 8

Några mönster Allmänt Mönster är förslag på fungerande lösningar Måste anpassas efter situationen Nytta Kan man många är chansen större att man hittar något lämpligt för en given situation Ger en vokabulär för att diskutera design Studera/reflektera kring program man använder Är beprövade (68) forgiving format 9

(68) forgiving format Vad Tillåt användaren skriva lite vad som helst och låt sedan programmet tolka det intelligen När Programmet efterfrågar data som kan skrivas på många olika sätt, blandningar av format, tecken, stora/små bokstäver etc Varför Användaren vill bara få något gjort utan att fundera på format det blir helt enkelt mycket enklare Hur Se Vad. Sen måste man se till att det går att förutse tillräckligt bra vad användaren kan tänkas skriva så att det går att tolka Exempel 10

(69) structured format (69) structured format Vad Använd flera textfält istället för ett för att visa strukturen på data När Inmatning av med ett givet och känt format. T ex kreditkortsnummer. Funkar inte om det kan finnas variation. Varför Strukturen visar för användaren vad som ska matas in Hur Använd ett antal textfält som motsvarar strukturen. Dessa bör inte vara längre än vad som behövs. När användaren matat in allt i ett fält flyttas man automatiskt till nästa. 11

Exempel forts bra? 12

(70) fill-in-the-blanks (70) fill-in-the-blanks Vad Ordna en eller flera inputkontroller i en fras, där inmatning innebär att man fyller i hål ifrasen. När Man ska mata in något och detta blir tydligare och snyggare än vanliga label/inputarrangemeng. Varför Metoden är självförklarande. Användare klarar intuitivt av att fylla i hål i fraser. Tydligare än en massa förklaringar. Hur Jobba ordentligt med frasen. Mönstret funkar bäst med textfält, dropdowns o dyl som passar bra in i en text visuellt. 13

Exempel (71) input hints 14

(71) input hints Vad Placera en text eller ett exempel bredvid ett inmatningsfält för att visa hur det ska användas När Det är inte helt självklart hur vad man ska skriva i ett fält och man vill inte skriva en lång förklarande label Varför Användarna slipper gissa. Vet man vad det ska stå behöver man inte kolla på input-hinten Hur Placera en kort text under eller bredvis inmatningsfältet. Det kan vara bra att använda en mindre font än för fältets label Exempel 15

forts bra? (75) illustrated choices 16

(75) illustrated choices Vad Använde bilder istället för ord för att visa tillgängliga val När Användaren skall välja mellan ett antal objekt som skiljer sig visuellt Varför En bild säger mer än tusen ord + det blir snyggare Hur Visa en bilder som motsvarar vad användaren får. Tekniken kan användas i bl a menyer, listor, knappar, tabeller osv. Exempel 17

(77) good defaults (77) good defaults Vad När det är möjligt fyll i sannolika värden i förväg När I alla fall när man begär in information från användaren. Speciellt då det finns sannolika svar, eller då det är troligt att systemet vet vad som borde vara mest lämpligt. Varför Minskar användarens arbete. Kan också göra det mycket enklare om användaren är osäker och bara behöver bekräfta systemets val. Hur Ange default-värden för textfält, comboboxar etc. Kan göras dynamiskt eller statiskt. Var noggrann med att inte fylla i värden som sannolikt måste ändras. 18

Exempel forts 19

(78) same-page error messages (78) same-page error messages Vad Placera felmeddelanden direkt på inmatningssidan. Placera ett meddelande överst och helst när de faktiska felen När Designen tillåter att man faktiskt kan skriva fel eller utelämna information. Gör det så enkelt som möjligt att rätta till när det inträffar. Varför Den traditionella metoden är att slänga upp en dialogruta med ett felmeddelande (ofta modal). När man stängt det är informationen borta Bättre med information i kontext Hur Se Vad. Om felmeddelandena finns vid felet behöver man inte leta och fundera. 20

Exempel Läs också Hela kapitlet 21

RELEVANTA SWING- KOMPONENTER JLabel Visa info för användare Unselectable Bild Text Bild + text HTML Ritar inte sin bakgrund setopaque(true) 22

JButton Standard action-grej Kan konfigureras på olika sätt Mnemonics Icons Text Borders JToggleButton On/Off Oberoende Grupperade 23

JCheckBox & JRadioButton Välkända JList Ett sätt att välja något Kan ha flera olika selection-varianter JListModel och JListSelectionModel Icke-statiska ger ofta behova av att anpassa modellen Single-selection i labben? Kod för att ordna och sortera finns i lab1backend 24

JComboBox Redigerbara och icke-redigerbara Tar lite plats Kan användas i toolbars Ha inte för många items! Vanligt T ex JList bättre Eller filtrering Data från modell JTextField Mata in en rad text actionperformed vid retur Varianter JFormattedTextField JPasswordTextField Relaterade JSpinner JComboBox 25

JSlider & JSpinner Input av data med begränsningar Programmeringstips Bygga upp GUI med flera paneler i NetBeans Demo Blue&RedPanel 26

Vad har vi? Användarstudier, mentala modeller, personas Platform & Posture kategorier intermediate, expert, novice Organisera innehåll Lista objekt, handlingar,,tiled panes, single windows Mönster two-panel selector, one-window drilldown Minimera navigation & Navigationsmönster clear entry points, global navigation Visuell hierarki, grouping & alignment visual framework, titled sections, card stack Ett antal olika sätt att utföra handlingar och affordances Button groups, action panel Shneidermans och Nielsens principer Flow, Showing complex data Cascading lists, row striping Getting input from user En massa kontroller, Structured format, input hints Summan av detta saker att utgå från i en top-down process Att göra Känna till alla Swing-komponenter, Swing-tutorial på nätet bra Läsa Preface och kapitel 1 i Tidwell Läsa kapitel 2 i Tidwell Kan hoppa över mönster 19 & 20 Läsa Cooper om Mental Models & Posture Läsa kapitel 3 i Tidwell Kan hoppa över mönster 23, 25 & 30 tills vidare Förstå Actions http://java.sun.com/docs/books/tutorial/uiswing/misc/action.html Läsa Cooper om menyer och verktygsfält Läsa kapitel 4 & 5 i Tidwell Kan hoppa över 39, 40, 52 & 53 tills vidare Läsa Cooper om Flow & Orchestration Läsa kapitel 6 i Tidwell Kan hoppa över 55 58 och 65-67 tills vidare Läsa kapitel 7 i Tidwell Nästa gång: Eliminating Excise (Cooper) och lite programmeringstips 27