I/O Toolkits Scott Klemmer · 16 November 2006.

Slides:



Advertisements
Similar presentations
implementation support
Advertisements

Midterm Several high 90s Average: 91% = A-. Project – Evaluation Plan See doc Exercise: plan for your evaluation now in- class!
Software Engineering Issues for Ubiquitous Computing Author: Gregory D. Abowd, Georgia Institute of Technology CSCI 599 Week 4 Paper 3 September
SIMS 202 Information Organization and Retrieval Prof. Marti Hearst and Prof. Ray Larson UC Berkeley SIMS Tues/Thurs 9:30-11:00am Fall 2000.
Implementation support CSCI324, IACT403, IACT 931, MCS9324 Human Computer Interfaces.
Stanford hci group / cs376 research topics in human-computer interaction I/O Toolkits Scott Klemmer 29 November 2005.
1 The subArctic Input System and Extensions for Handling Inputs with Ambiguity.
Stanford hci group / cs376 research topics in human-computer interaction UI Software Tools Scott Klemmer 27 October 2005.
Matthew J Mattia CSC  Cumbersome Code  Consistent/Predictable design (GUEPs #5, CD’s #10)  Display “proper” amount of information  Including.
User Interface Design Chapter 11. Objectives  Understand several fundamental user interface (UI) design principles.  Understand the process of UI design.
Human Computer Interaction Implementation Support.
Introduction to Java Swing “We are the sultans of swing” – Mark Knopfler.
MVC pattern and implementation in java
Electronic Visualization Laboratory, University of Illinois at Chicago PAVIS Pervasive Adaptive Visualization and Interaction Service Javid Alimohideen.
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.
Towards a Unified Interaction Framework for Ubicomp User Interfaces Jason I. Hong Scott Lederer Mark W. Newman G r o u p f o r User Interface Research.
Software Construction Lecture 10 Frameworks
Most modern operating systems incorporate these five components.
User Interface Toolkit Mechanisms For Securing Interface Elements Franziska Roesner, James Fogarty, Tadayoshi Kohno Computer Science & Engineering DUB.
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.
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.
Automated GUI testing How to test an interactive application automatically?
Frameworks CompSci 230 S Software Construction.
An Architecture to Support Context-Aware Applications
Stanford hci group / cs147 u 04 December 2007 Software Tools Scott Klemmer tas: Marcello Bastea-Forte, Joel Brandt, Neil Patel,
Stanford hci group / cs376 u Jeffrey Heer · 26 May 2009 User Interface Toolkits.
1 Lecture 5: Interactive Tools: Prototypers (HyperCard, Director, Visual Basic), Interface Builders Brad Myers Advanced User Interface Software.
SILKWeb: A Sketching Tool for Informal Web Page Design Mark Newman, James Landay, Francis Li, Kalpana Joshi July 9, 1998 C&C Research Labs, NEC
Daniel Vogel and Ravin Balakrishnan’s: Aaron Schwartz, BID Spring 2010.
Transitioning from Implicit to Explicit, Public to Personal, Interaction with Multiple Users Daniel Vogel, Ravin Balakrishnan Department of Computer Science.
Post-Desktop User Interfaces iStuff and the Search for the Great Unified Input Theory Jan Borchers Stanford University CS547, Oct 17, 2002.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Procedural programming Procedural programming is where you specify the steps required. You do this by making the program in steps. Procedural programming.
Toolkits and Languages CSE 490JL Section Dec 1 st & 3 rd 2004 Richard C. Davis & Kate Everitt.
Iterative Design and Evaluation of Event Architecture for Pen-and-Paper Interfaces HCI Group Stanford University Ron B. Yeh Andreas Paepcke Scott R. Klemmer.
Papier-Mache: Toolkit Support for Tangible Input HCI Group University of California Scott R. Klemmer Jack Li James Lin DUB Group University of Washington.
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
CSC 222: Object-Oriented Programming
Support for the Development of Interactive Systems
Introduction to Programming and Visual Basic .NET
Pei-Yu (Peggy) Chi,, Yang Li1, Björn Hartmann
CompSci 230 S Software Construction
Introduction to Event-Driven Programming
Avraham Leff James T. Rayfield IBM T.J. Watson Research Center
Goals Give student some idea what this class is about
Lesson 5-2 AP Computer Science Principles
Java Look-and-Feel Design Guidelines
Java Beans Sagun Dhakhwa.
Review: Java GUI Programming
Prototyping.
Understand Windows Forms Applications and Console-based Applications
Lesson 1: Buttons and Events – 12/18
Chapter 2: GUI API Chapter 2.
Multimodal Interfaces
Andrew J. Ko & Brad A. Myers Carnegie Mellon University
Class Announcements 1 week left until project presentations!
Topic 8: (Last two papers)
The structure of Interactive Software
Vision-based Interaction
Building Graphical User Interface with Swing a short introduction
implementation support
Interactive Public Ambient Displays:
Implementation support
implementation support
ACM programming contest
Architectural Mismatch: Why reuse is so hard?
Implementation support
Presentation transcript:

I/O Toolkits Scott Klemmer · 16 November 2006

Recap: What are Interface Toolkits? Goal: make it easier to develop user interfaces by providing application developers with reusable components that accomplish common input and output needs Toolkits have a well-planned architecture and API & provide a library

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

Example: M$ Interface Builder Can specify widget placement and basic properties with a visual editor Programmer writes code for widget callbacks and complex behaviors

Why use toolkits? Code reuse saves programmer time 50% of code is for the GUI [Myers & Rosson, CHI ’92] Consistent look & feel across apps Easier to modify and iterate the UI Make UI development accessible to more people Non-artists Non-programmers???

Drawbacks Can be limiting – developers are likely to make the kinds of UIs that the toolkit makes easy Traditional GUI toolkits are problematic for non-WIMP user interfaces such as: Groupware Physical UIs

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

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

DiamondSpin Video

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

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

Evaluating Toolkits Ease of use Depth, Breadth, and Extensibility A toolkit’s API is a user interface, too! [Klemmer et al., 2004] evaluated the API of Papier-Mache Depth, Breadth, and Extensibility Systems issues Speed Portability

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?

Summary I/O 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) Speciality (Phidgets, iStuff, Papier-Mache, DiamondSpin, GroupKit, Peripheral Displays Toolkit, etc)

Next Time… Display Techniques Interactive public ambient displays: transitioning from implicit to explicit, public to personal, interaction with multiple users, Daniel Vogel, Ravin Balakrishnan SUPPLE: Automatically Generating User Interfaces, Krzysztof Gajos and Daniel S. Weld