160 likes | 173 Views
Learn about I/O Toolkits and how they make it easier to develop user interfaces by providing reusable components that meet common input and output needs. Discover the benefits and drawbacks of using toolkits, as well as various types of specialized toolkits available.
E N D
I/O Toolkits Scott Klemmer 29 November 2005
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
iStuff Toolkit • Physical UI components for ubiquitous computing environments (multiple users, devices, and applications) • [Ballagas, Ringel, Stone, Borchers], CHI ‘03
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
Evaluating Toolkits • Ease of use • 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)