51
Session # 1094 Desktop Design for complex Applications Jorg “JJ” Janke Founder ComPiere, Inc. Usability and Look & Feel

Desktop Design for complex Applications

  • Upload
    bryce

  • View
    30

  • Download
    2

Embed Size (px)

DESCRIPTION

Desktop Design for complex Applications. Usability and Look & Feel. Jorg “JJ” Janke Founder ComPiere, Inc. Overall Presentation Goal. Learn how to improve your Application Usability, Look & Feel. Beginning. Learning Objectives. After this presentation you will be able to: - PowerPoint PPT Presentation

Citation preview

Page 1: Desktop Design for complex Applications

Session # 1094

Desktop Design for complex Applications

Jorg “JJ” JankeFounderComPiere, Inc.

Usability and Look & Feel

Page 2: Desktop Design for complex Applications

Session # 10942

Overall Presentation Goal

Beginning

Learn how to improve your Application Usability,

Look & Feel

Page 3: Desktop Design for complex Applications

Session # 10943

Learning Objectives

• After this presentation you will be able to:– Improve your Design

• Usability• User Interface (UI)

– Use Pluggable Pluggable Look & Feel for Java™ Technology

– Extend or create your own Look & Feel– Use Color in your Application– Use Compiere Looks

Beginning

Page 4: Desktop Design for complex Applications

Session # 10944

Speaker’s Qualifications

• Jorg Janke is Founder of ComPiere, Inc. and the initial Contributor of the Compiere Open Source ERP & CRM project

• Starting with PL/I, Jorg wrote a Smalltalk General Ledger prototype in '88 and started with Java in ‘97

• Jorg worked in a Research Institute for Man-Machine Interaction, UNISYS and Oracle Apps Development

• Jorg holds a BA in Accounting & CS and a MBA

• Jorg is a certified Oracle DBA and SUN certified Java Programmer/Developer.

Beginning

Page 5: Desktop Design for complex Applications

Session # 10945

The Secret:The ideal User Interface simply

does and provides

what the User expects.

Beginning

Page 6: Desktop Design for complex Applications

Session # 10946

Disclaimer

• I am a Developer with Usability and User Interface Design Experience – I am not a Graphics Designer– I am not a Interface/Usability Consultant

• I always appreciate Feedback how to improve the Usability and UI of my Application

Beginning

Page 7: Desktop Design for complex Applications

Session # 10947

Presentation Agenda

• Why should I care ?

• UI Technology Overview

• JFC/Swing Pluggable Look & Feel (PLAF)

• UI Design– Principles – Issues – Options

• UI Tips

Beginning

Page 8: Desktop Design for complex Applications

Session # 10948

Why should I care?

• First Impression determines– Where to spend time exploring

• Too many choices

– Will I be able to use this?• Do I like using it?

– Will I buy this ?• Functionality Analysis is too complex

Middle

Page 9: Desktop Design for complex Applications

Session # 10949

Why should I care?

• Costs– Training (time)– Support

• Loyalty– Happy Users don’t look for Alternatives

Middle

Page 10: Desktop Design for complex Applications

Session # 109410

Agenda: UI Technology Overview

• Why should I care ?

• UI Technology Overview– HTML– AWT– Applets– JavaTM Foundation Classes (JFC/Swing)– Rich GUI Products– Server driven JFC/Swing Client

• JFC/Swing Pluggable Look & Feel (PLAF)

• UI Design & Tips

Middle

Page 11: Desktop Design for complex Applications

Session # 109411

UI Technology Options

• HTML (Java Servlet, JSPTM)– “Reach Client”– Limited UI Technology– Limited Responsiveness– Easy “Distribution” and Maintenance

• AWT– “Light” early Java Alternative

• Applets– Plug-in required

Middle

Page 12: Desktop Design for complex Applications

Session # 109412

Rich GUI Products (examples)

• AltioLive – Applets in Web Browser– http://www.altio.com

• RAWT – Remote (Server Side) AWT– http://www.alphaworks.ibm.com/tech/

remoteawtforjava

• Droplets – RAWT based Presentation Server– http://www.droplets.com

• See also JavaOne 2001SM Conference Session– Rich Clients for Web Services– http://java.sun.com/features/2001/06/golden.clients.html

Special Client

Middle

Page 13: Desktop Design for complex Applications

Session # 109413

Java™ JFC/Swing

• JFC/Swing– “Rich” Client– All UI Technology Options– Highly interactive– … but complex Distribution– … and big Footprint

• Distribution Options– WebStart– Server driven JFC/Swing Client

Middle

Page 14: Desktop Design for complex Applications

Session # 109414

Server driven Swing Client

• Bali (Spidertop)– http://www.spidertop.com – Client (20k) renders Bali scripts generated

from JSPTM components and Servlets– Bali designer to generate Bali scripts

• Compiere Open Source– http://www.compiere.org – Client renders rules from Application

Dictionary Database

Middle

SmallFootprint

Page 15: Desktop Design for complex Applications

Session # 109415

Agenda: PLAF

• Why should I care ?

• UI Technology Overview

• JFC/Swing Pluggable Look & Feel Libraries– Standard and PLAF Libraries– Using & Switching PLAFs

• UI Design

• UI Tips

Middle

Page 16: Desktop Design for complex Applications

Session # 109416

Swing Pluggable Look & Feel

• Standard PLAFs– Metal – The Java™ platform L&F with “Themes”– Windows– Motif

• PLAF Library Examples– Kunststoff– jGoodies– SkinLF– Compiere Looks

Middle

Free

Page 17: Desktop Design for complex Applications

Session # 109417

Swing PLAF Links (selection)

• Available JFC/Swing PLAFs– http://www.javootoo.com– http://www.incors.org (Kuststoff)

– http://www.jgoodies.com (jGoodies)

– http://www.l2fprod.com (SkinLF)• http://www.themes.org (GTK Themes)

– http://www.compiere.org/looks/ (Compiere)

• Custom Look and Feel Example– http://java.sun.com/products/jfc/tsc/articles/sce

(SAP)

Middle

Page 18: Desktop Design for complex Applications

Session # 1094

Page 19: Desktop Design for complex Applications

Session # 109419

Using & Switching L&Fs

• Change default PLAF– In $JAVA_HOME/jre/lib/swing.properties:

swing.defaultlaf= org.compiere.plaf.CompiereLookAndFeel swing.installedlaf.Compiere.class= org.compiere.plaf.CompiereLookAndFeel swing.installedlaf.Compiere.name=Compiere

Middle

Page 20: Desktop Design for complex Applications

Session # 109420

Using & Switching L&Fs

• Setting a specific L&F (in main method):– UIManager.setLookAndFeel (new org.compiere.plaf.CompiereLookAndFeel());

– or– CompierePLAF.setPLAF();

• After switching in a running application:– SwingUtilities.updateComponentTreeUI(comp);

• Using your defined L&F at startup:– java -cp CompiereLooks.jar;SwingSet2.jar org.compiere.plaf.CompierePLAF SwingSet2

Middle

Page 21: Desktop Design for complex Applications

Session # 109421

Swing PLAF UI Delegates

:updateUI() { setUI (UIManager.getUI(this)); }:setUI(ui):print()

JCheckBox

installUI():

print()

MyCheckBoxUI

Win

do

ws

Met

al

Page 22: Desktop Design for complex Applications

Session # 109422

Your own LookAndFeel class

public class MyLookAndFeel extends MetalLookAndFeel {

void initClassDefaults (UIDefaults table){ : table.put(“CheckBoxUI”, “MyCheckBoxUI”); }

void initSystemColorDefaults (UIDefaults table) { : table.put("textHighlight", Color.yellow); }

}

Page 23: Desktop Design for complex Applications

Session # 109423

Agenda: UI Design

• Why should I care ?

• UI Technology Overview

• JFC/Swing Pluggable Look & Feel (PLAF)

• User Interface Design– What is it?– Where to get Advice– JJ’s Principles– Implementation Example

• UI Tips

Middle

Page 24: Desktop Design for complex Applications

Session # 109424

User Interface Design

• Design for the User– Expectations– Experience & Skill Level

• Design for the Task– Task “domain knowledge” of your User

• Expert• Novice

Middle

Page 25: Desktop Design for complex Applications

Session # 109425

What makes a Program Usable ?

60%User Model

10% Visuals

30% InteractionTechniques

Source: http://www-106.ibm.com/developerworks/library/w-berry

Middle

Look

Feel

Thingsyouuse

Clues, feedback and aesthetics

Keyboard & Mouse button mappings,

Menu organization, ..

The User Objects to accomplish Tasks,

their Properties, Behaviors and

Relationships

Page 26: Desktop Design for complex Applications

Session # 109426

UI Design

• There is tons of (conflicting) advice– Platform Vendor– Web Sites– Books

Middle

Page 27: Desktop Design for complex Applications

Session # 109427

UI Design Advice

• Platform Vendor– Sun

• Java™ Look and Feel Design Guidelines– 2nd Edition– Advanced Volume

• http://developer.java.sun.com/developer/techDocs/hi

– Microsoft• The Windows Interface Guidelines for

Software Design– Apple, IBM, …

Middle

Page 28: Desktop Design for complex Applications

Session # 109428

UI Design Advice

• Web Sites– http://www.acm.org/sigchi– http://www.usableweb.com– http://www.useit.com - http://www.asktog.com -

http://www.nngroup.com– http://www.webpagesthatsuck.com– http://www.interface-design.net

• Books– http://www.useit.com/books/uibooks.html– Personal favorite: GUI Bloopers (J Johnson)

Middle

Visual

Model

Interaction

Page 29: Desktop Design for complex Applications

Session # 109429

My (JJ) Principles

• Fast Orientation

• Fast Completion

• Consistency

Middle

Page 30: Desktop Design for complex Applications

Session # 109430

JJ’s UI Design Principles

• Fast Orientation– Where am I ?– Where do I find … ?– What is the situation/status ?

Screens are not Pictures in an Art Gallery

Middle

60% User Model

Visual

Interaction

Page 31: Desktop Design for complex Applications

Session # 109431

JJ’s UI Design Principles

• Fast Task Completion– What do I need to do ?– What do I need to enter ?– What is the next step ?– How long do I have to wait ?

• Boredom/Frustration after 2.8 sec

Computers are Productivity Tools

Middle

60% User Model

Visual

Interaction

Page 32: Desktop Design for complex Applications

Session # 109432

JJ’s UI Design Principles

• Consistency– Where is what ?– What will happen ?– How do you call …

(product/item/..) ?

Minimize Training and Support

Middle

60% User Model

Visual

Interaction

Page 33: Desktop Design for complex Applications

Session # 109433

“Facts” to remember

• Users can’t remember

• Users can’t read

• Users can’t control the Mouse

• Users do the unexpected

Middle

Page 34: Desktop Design for complex Applications

Session # 109434

UI Implementation Example

• User: Small Business Employee

• Data Dictionary Driven– Data Rules

• Type, Size, Validation, Defaults, …

– User Interface Rules• Display Type, Location, Visible, R/W, …

• Client connects to Server– Gets Rule Value Objects via RMI / JDBC– Interprets and executes on the Client– No individual screens to develop/test

Middle

OpenSource

Page 35: Desktop Design for complex Applications

Session # 1094

Page 36: Desktop Design for complex Applications

Session # 109436

UI Implementation Example

• Consistency – Follows Java™ L&F Guidelines (mostly)

– Standard Windows Layout– Standard Dialog Layout

• OK in right button corner (Mac)

– Overview – Detail• Switch between Multi/Single-Row• Only current / all Data

– Language / Terminology

Middle

Page 37: Desktop Design for complex Applications

Session # 109437

UI Implementation Example

• Fast Orientation– Color Coding– Standard Icons– Text

• Plural/Singular• Words < 15 characters

– Language, Terminology, Notes– Auditory Hints– Searchable Menu & Help

Middle

Page 38: Desktop Design for complex Applications

Session # 109438

UI Implementation Example

• Fast Task Completion– Hide what is not needed (context sensitive)

• “Personalization”

– Default values – Immediate Validation– Keyboard Entry– Prevent Errors– History based “Waiting” indicator– Workflow Wizards

Middle

Page 39: Desktop Design for complex Applications

Session # 109439

Agenda: UI Tips

• Why should I care ?

• UI Technology Overview

• Swing Pluggable Look & Feel

• UI Design

• UI Tips– General– Color– Your UI Guidelines

Middle

Page 40: Desktop Design for complex Applications

Session # 109440

JJ’s User Interface Tips

• Work under the assumption:“User Errors are caused by my UI Design”

• Listen to Customers / Support– Users doing “stupid” things– Misunderstandings– Users don’t know how to ..

• Be a user … for a while

• Operate Application without Mouse– Mnemonics - Focus Management

Middle

Page 41: Desktop Design for complex Applications

Session # 109441

JJ’s User Interface Tips

• Don’t over-do it– Color, Audio

• Check Icons– Enabled / Disabled contrast

• Use Java™ Accessibility Helper

• Get a Graphic Artist– Color Themes are not easy

Middle

KISS

Page 42: Desktop Design for complex Applications

Session # 109442

Develop/Use a Color Schema

• Presentation Metal

Middle

Page 43: Desktop Design for complex Applications

Session # 109443

Don’t ignore the Color Blind

• 8% male and 0.5 female (Caucasian) have some form of color vision deficiency– http://www.internettg.org/newsletter/mar99/

accessibility_color_challenged.html– http://innovate.bt.com/people/rigdence/colours – http://www.visibone.com/colorblind

• Use Metal Themes !

Middle

Page 44: Desktop Design for complex Applications

Session # 1094

Page 45: Desktop Design for complex Applications

Session # 109445

Color “Lessons”

• Color is a Perception not a Fact – Gray is a color too

• Allow users to change colors on an individual basis– Provide different Themes you previously tested

and/or– Allow users to change the individual colors

• Be careful with image buttons – Estimate active/inactive "view"– Convert gif/jpg to painted images using user

definable colors

• Compiere Colors provides "Color Management"

Page 46: Desktop Design for complex Applications

Session # 109446

Write down your own UI Guidelines explicitly

• UI Guideline Structure– Target Audience

• User – Task Types – Experience Level

– Layout Guide• Windows – Dialogs

– Terminology– Color Schema– Icons, Sounds

• Establish UI Review Process

• Establish User Feedback Process

Middle

Considerreview by Usability

Expert

Page 47: Desktop Design for complex Applications

Session # 109447

Summary

• Java™ makes using different L&Fs easy– JFC/Swing PLAFs

• Review your UI Guidelines

• Be consistent

• Use Color effectively

• Check out Compiere™ Looks

End

60% User Model

Visual

Interaction

Page 48: Desktop Design for complex Applications

Session # 109448

If You Only Remember One Thing…

End

User Interface Design determines the long term Success of your Application.

Page 49: Desktop Design for complex Applications

Session # 1094

Page 50: Desktop Design for complex Applications

Session # 109450

Thanks !

• You can download this presentation and Compiere Looks

http://www.compiere.org/download/

End

Page 51: Desktop Design for complex Applications

Session # 1094