Stanford hci group / cs376 u Jeffrey Heer · 26 May 2009 User Interface Toolkits.

Slides:



Advertisements
Similar presentations
implementation support
Advertisements

Lecture 12: Interactive Tools: Prototypers (HyperCard, Director, Visual Basic), Interface Builders, Sketching Tools Brad Myers Advanced User Interface.
Midterm Several high 90s Average: 91% = A-. Project – Evaluation Plan See doc Exercise: plan for your evaluation now in- class!
A graphical user interface (GUI) is a pictorial interface to a program. A good GUI can make programs easier to use by providing them with a consistent.
Operating Systems High Level View Chapter 1,2. Who is the User? End Users Application Programmers System Programmers Administrators.
Department of Information Science and Telecommunications Interactive Systems Michael B. Spring Department of Information Science and Telecommunications.
Past, Present and Future of User Interface Software Tools
UQI120S2 Human Computer Interaction Designing and building GUIs We made the point that the final product should fit the cognitive makeup of the user. We.
Graphical User Interface (GUI) Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park.
Ch 7 & 8 Interaction Styles page 1 CS 368 Designing the Interaction Interaction Design The look and feel (appearance and behavior) of interaction objects.
Using Tweek to Create Graphical User Interfaces in Virtual Reality Patrick Hartling IEEE VR 2003.
Graphical User Interface (GUI) Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
0 CS 160: Design Process: Implement Event-based UI Programming, Model-View-Controller, and the Web Jeffrey Nichols IBM Almaden Research Center
The Task-Centered Design Process figure out who's going to use the system to do what choose representative tasks for task-centered design plagiarize rough.
Chapter 14: Event-Driven Programming with Graphical User Interfaces
Stanford hci group / cs376 research topics in human-computer interaction I/O Toolkits Scott Klemmer 29 November 2005.
Stanford hci group / cs376 research topics in human-computer interaction UI Software Tools Scott Klemmer 27 October 2005.
Other Interaction Styles: Direct Manipulation, Haptic, Multimedia, Multimodal, Virtual Reality, Video Games Dr.s Barnes and Leventhal.
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
1 Past, Present and Future of User Interface Software Tools Brad A. Myers, Scott E. Hudson, and Randy Pausch Human-Computer Interaction Institute School.
Human Computer Interaction Implementation Support.
1 Lecture 3: Overview of UI Software and Tools Brad Myers Advanced User Interface Software.
Lecture 8: Overview of UI Software and Tools Brad Myers Advanced User Interface Software 1© Brad Myers.
1 Past, Present and Future of User Interface Software Tools Brad A. Myers, Scott E. Hudson, and Randy Pausch Developed for HCIC’99 and TOCHI Updated 2009.
Computer for Health Sciences
Lesson 4 Computer Software
1 Integrated Development Environment Building Your First Project (A Step-By-Step Approach)
MVC pattern and implementation in java
Software Tools.  It accomplishes an important task  (for better and for worse) You don’t have to make it yourself, and it abstracts a set of knowledge.
1 Lecture 2: Why are User Interfaces Hard to Design and Implement? and Types of User Interfaces Brad Myers Advanced User Interface Software.
Welcome to CIS 083 ! Events CIS 068.
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
11.10 Human Computer Interface www. ICT-Teacher.com.
CHAPTER FOUR COMPUTER SOFTWARE.
Prof. James A. Landay University of Washington Autumn 2008 Rapid Prototyping November 10, 2008.
Gary MarsdenSlide 1University of Cape Town Human-Computer Interaction - 3 Programmer Support Gary Marsden ( ) July 2002.
Stanford hci group / cs376 u Scott Klemmer · 30 November 2006 UI Software Tools.
1 Implementation support chapter 8 programming tools –levels of services for programmers windowing systems –core support for separate and simultaneous.
Swing and MVCS CompSci 230 Software Construction.
User Interfaces for Post-Desktop Environments Jan Borchers Stanford Interactivity Lab Advanced Systems Development Lab.
IStuff Mobile: Rapidly Prototyping New Mobile Phone Interfaces for Ubiquitous Computing Rafael Ballagas, Faraz Memon, Ren´e Reiners, Jan Borchers Media.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
Dale Roberts Introduction to Visual Programming Dale Roberts, Lecturer Computer Science, IUPUI Department of Computer and.
1 Lecture 2: Overview of UI Software and Tools Brad Myers Advanced User Interface Software.
Foundation year Lec.3: Computer SoftwareLec.3: Computer Software Lecturer: Dalia Mirghani Year: 2014/2015.
Stanford hci group / cs147 u 04 December 2007 Software Tools Scott Klemmer tas: Marcello Bastea-Forte, Joel Brandt, Neil Patel,
1 Lecture 5: Interactive Tools: Prototypers (HyperCard, Director, Visual Basic), Interface Builders Brad Myers Advanced User Interface Software.
Software 3 See Edmodo for images Group name: topcat Group code: i4qf9a 11/03/11.
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
Stanford hci group / cs376 u Jeffrey Heer · 19 May 2009 Speech & Multimodal Interfaces.
Procedural programming Procedural programming is where you specify the steps required. You do this by making the program in steps. Procedural programming.
Programming Logic and Design Seventh Edition Chapter 12 Event-Driven GUI Programming, Multithreading, and Animation.
Mobile Computing CSE 40814/60814 Spring 2017.
Support for the Development of Interactive Systems
Lecture 8: Overview of UI Software and Tools
CompSci 230 S Software Construction
Past, Present and Future of User Interface Software Tools
Introduction to Event-Driven Programming
11.10 Human Computer Interface
Java Look-and-Feel Design Guidelines
Prototyping.
Lesson 1: Buttons and Events – 12/18
User Interface Software Look under the hood
Class Announcements 1 week left until project presentations!
Topic 8: (Last two papers)
Adaptive Interfaces Jeffrey Heer · 28 May 2009.
implementation support
GRAPHICAL USER INTERFACE
I/O Toolkits Scott Klemmer · 16 November 2006.
ACM programming contest
Presentation transcript:

stanford hci group / cs376 u Jeffrey Heer · 26 May 2009 User Interface Toolkits

Final Project Presentations Tuesday June 9, 3:30-6:30pm, 104 Gates 8 minute presentations  6 min for research, 2 min for questions  Start with an overview:  1 sentence statement of your research result  1 slide / 4 sentences of what you did and why  Rest of time on details. Assume audience is familiar with HCI issues: focus on your work 2

cryptonomicon.com/beginning.html In the beginning…

The Xerox Alto (1973)

Event-Driven UIs Old model (e.g., UNIX shell, DOS)  Interaction controlled by system, user queried for input when needed by system Event-Driven Interfaces (e.g., GUIs)  Interaction controlled by user  System waits for user actions and then reacts  More complicated programming and architecture

Periodic Table of Motif Widgets

7 Toolkit Example: Java Swing  GUI toolkit with a widget set and an API

8 User Interface Builders

Event Dispatch Loop Event Queue Queue of input events Event Loop (runs in dedicated thread) Remove next event from queue Determine event type Find proper component(s) Invoke callbacks on components Repeat, or wait until event arrives Component Invoked callback method Update application state Request repaint, if needed Mouse moved (t 0,x,y)

Event Dispatch Window Panel TextAreaPanel Button Label Event Queue Mouse moved (t 0,x,y) Mouse pressed (t 1,x,y,1) Mouse dragged (t 2,x,y,1) Key typed (t 3, ‘F1’) … (queues and dispatches incoming events in a dedicated thread) /* callback for TextArea */ public void mouseMoved(e) { // process mouse moved event }

11 Success of Tools Today’s tools are highly successful  Window Managers, User Interface Toolkits, and Interface Builders are ubiquitous  Most software built using them  Are based on many years of HCI research:  Brad A. Myers. “A Brief History of Human Computer Interaction Technology.” ACM interactions. Vol. 5, no. 2, March, pp

Why Tools? The quality of the interfaces will be higher. Why?  Rapid prototyping.  Easier to incorporate changes motivated by evaluation.  Re-use affords investment in high quality tools.  Consistency of interface design.  Enable collaboration among specialists. 12

Why Tools? The user interface will be easier to create and maintain. Why?  Less code to write due to component re-use.  Better modularization, separation of concerns  Tools may abstract complex systems or algorithms.  Easier to port an application to different hardware or software environments if device dependencies are isolated in the user interface tool. 13

14 What should tools do? Help design the interface given a specification of the tasks. Help implement the interface given a design. Help evaluate the interface after it is designed. Create easy-to-use interfaces. Allow the designer to rapidly investigate different designs. Allow non-programmers to create user interfaces. Provide portability across different machines and devices. Be easy to use themselves.

15 Tools might do:  Provide sets of standard UI components  Guide the implementation  Help with screen layout and graphic design.  Validate user inputs  Handle user errors  Handle aborting and undoing of operations  Provide help and prompts  Deal with field scrolling and editing  Insulate the application from all device dependencies and the underlying software and hardware systems.  Support features in the interface that allow the end user to customize the interface.

Application Types What application domains are “deserving” of specialized toolkit support? 16

17 Application Types Each has own unique UI style, and implementation challenges  Word processors  Drawing programs ( CAD/CAM)  Painting programs  Mail readers  Spreadsheets  Programming environments / code editors  WWW  Interactive games  Visualizations  Automated-teller machines (ATM)  Virtual Reality  Multi-media  Video  Animation  Controlling machinery

18 DiamondSpin Toolkit  Toolkit for tabletop user interfaces  [Shen, Vernier, Forlines, Ringel] CHI ’04

19

20 Tabletop UI Needs  Multi-user support  Identity-aware widgets  Multiple menus  Public and personal spaces  Resolving conflicting actions  Arbitrary orientation of UI elements  Techniques to control orientation and layout  Rotation sensitive components

21 iStuff Toolkit  Physical UI components for ubiquitous computing environments (multiple users, devices, and applications)  [Ballagas, Ringel, Stone, Borchers], CHI ‘03

22 iStuff Design  iStuff components  Device + proxy (“smarts” are in the proxy)  PatchPanel  Translate between iStuff events and application-specific events  Run-time retargetable events  Address dimension mismatches

23

24 Discussion of Themes Address the useful & important aspects of UIs  Narrower tools have been more successful than ones that try to do “everything”  Do one thing well Threshold / Ceiling  Research systems often aim for high ceiling  Successful systems often seem to instead aim for a low threshold  Impossible to have both?

25 Threshold & Ceiling Difficulty of Use Sophistication of what can be created Goal HyperCard Visual Basic Director (v6) HyperTalk xCmds Basic C Programming Lingo C Programming Programming in C MFC Click and Create

26 Discussion of Themes, cont. Path of Least Resistance  Tools should guide implementers into better user interfaces  Goal for the future: do this more? Predictability  Programmers do not seem willing to release control  Especially when system may do sub- optimal things Moving Targets  Long stability of Macintosh Desktop paradigm has enabled maturing of tools

Evaluating User Interface Tools  “An API is a user interface where programmers are the users”  ?  Evaluate toolkit as you would a UI?  Factors  Expressiveness (Ceiling)  Development Rate (of skilled user)  Learning Rate (to become skilled)  Performance  Portability 27

28 The Future of Interface Tools Supporting…  Prototyping  Collaboration  Evaluation  of interfaces built with tools  of tools themselves – how to prototype, test, iterate?  Emerging interface styles, such as  mobile  recognition-based UIs (speech, pens, vision)  multiple devices

29 Current Research Challenges  Complex design space  e.g., do we have to update the toolkit every time someone creates a new sensor or actuator?  Ambiguous input  Speech, gestures, computer vision, etc. aren’t recognized as accurately as mouse clicks. Should the toolkit handle the recognition?

30 Summary  Toolkits provide reusable interface components to simplify UI development  Toolkit trap: it’s tempting to only make UIs that the toolkit makes easy, instead of making what’s best for a specific app  Toolkit types:  WIMP (Garnet, Swing, Motif, etc)  Specialty (Phidgets, iStuff, Papier-Mache, DiamondSpin, GroupKit, Peripheral Displays Toolkit, etc)

Next Time: Adaptive Interaction You should use Sharon’s online paper viewer for the next set of readings. 31