510 likes | 655 Views
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:
E N D
Desktop Design for complex Applications Usability and Look & Feel Jorg “JJ” Janke Founder ComPiere, Inc. Session # 1094
Overall Presentation Goal Learn how to improve your Application Usability,Look & Feel Session # 1094 Beginning
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 Session # 1094 Beginning
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. Session # 1094 Beginning
The Secret: The ideal User Interface simply does and provides what the User expects. Session # 1094 Beginning
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 Session # 1094 Beginning
Presentation Agenda • Why should I care ? • UI Technology Overview • JFC/Swing Pluggable Look & Feel (PLAF) • UI Design • Principles – Issues – Options • UI Tips Session # 1094 Beginning
Middle 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 Session # 1094
Middle Why should I care? • Costs • Training (time) • Support • Loyalty • Happy Users don’t look for Alternatives Session # 1094
Middle 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 Session # 1094
Middle 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 Session # 1094
Middle Rich GUI Products (examples) Special Client • 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 Session # 1094
Middle 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 Session # 1094
Middle Server driven Swing Client Small Footprint • 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 Session # 1094
Middle 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 Session # 1094
Middle Swing Pluggable Look & Feel • Standard PLAFs • Metal – The Java™ platform L&F with “Themes” • Windows • Motif • PLAF Library Examples • Kunststoff • jGoodies • SkinLF • Compiere Looks Free Session # 1094
Middle 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) Session # 1094
Middle 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 Session # 1094
Middle 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 Session # 1094
MyCheckBoxUI installUI() : print() Swing PLAF UI Delegates JCheckBox : updateUI() { setUI (UIManager.getUI(this)); } : setUI(ui) : print() Metal Windows Session # 1094
Your own LookAndFeel class public class MyLookAndFeelextends MetalLookAndFeel { void initClassDefaults(UIDefaults table){ : table.put(“CheckBoxUI”, “MyCheckBoxUI”); } void initSystemColorDefaults(UIDefaults table) { : table.put("textHighlight", Color.yellow); } } Session # 1094
Middle 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 Session # 1094
Middle User Interface Design • Design for the User • Expectations • Experience & Skill Level • Design for the Task • Task “domain knowledge” of your User • Expert • Novice Session # 1094
60%User Model 10% Visuals 30% InteractionTechniques Middle What makes a Program Usable ? Clues, feedback and aesthetics Keyboard & Mouse button mappings, Menu organization, .. The User Objects to accomplish Tasks, their Properties, Behaviors and Relationships Look Feel Thingsyouuse Source: http://www-106.ibm.com/developerworks/library/w-berry Session # 1094
Middle UI Design • There is tons of (conflicting) advice • Platform Vendor • Web Sites • Books Session # 1094
Middle 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, … Session # 1094
Middle 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) Visual Model Interaction Session # 1094
Test Design Prototype Middle My (JJ) Principles • Fast Orientation • Fast Completion • Consistency Session # 1094
60% User Model Visual Interaction Middle 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 Session # 1094
60% User Model Visual Interaction Middle 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 Session # 1094
60% User Model Visual Interaction Middle JJ’s UI Design Principles • Consistency • Where is what ? • What will happen ? • How do you call … (product/item/..) ? Minimize Training and Support Session # 1094
Test Design Prototype Middle “Facts” to remember • Users can’t remember • Users can’t read • Users can’t control the Mouse • Users do the unexpected Session # 1094
Middle 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 OpenSource Session # 1094
Middle 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 Session # 1094
Middle UI Implementation Example • Fast Orientation • Color Coding • Standard Icons • Text • Plural/Singular • Words < 15 characters • Language, Terminology, Notes • Auditory Hints • Searchable Menu & Help Session # 1094
Middle 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 Session # 1094
Middle Agenda: UI Tips • Why should I care ? • UI Technology Overview • Swing Pluggable Look & Feel • UI Design • UI Tips • General • Color • Your UI Guidelines Session # 1094
Middle 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 Session # 1094
Middle JJ’s User Interface Tips KISS • 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 Session # 1094
Middle Develop/Use a Color Schema • Presentation Metal Session # 1094
Middle 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 ! Session # 1094
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 testedand/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" Session # 1094
Middle 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 Consider review by Usability Expert Session # 1094
60% User Model Visual Interaction Summary • Java™ makes using different L&Fs easy • JFC/Swing PLAFs • Review your UI Guidelines • Be consistent • Use Color effectively • Check out Compiere™ Looks Session # 1094 End
Test Design Prototype End If You Only Remember One Thing… User Interface Design determines the long term Success of your Application. Session # 1094
End Thanks ! • You can download this presentation and Compiere Looks http://www.compiere.org/download/ Session # 1094