170 likes | 196 Views
This recap examines interface toolkits, their architecture, and advantages like code reuse and consistent design across apps. Considerations, drawbacks, and specialized toolkits like DiamondSpin and iStuff are explored. Evaluating toolkits includes factors like ease of use and extensibility. The text also touches on current research challenges and highlights the importance of designing UIs that cater to specific needs, not just what's easy with the toolkit. The summary emphasizes how interface toolkits simplify UI development but warns against falling into the "toolkit trap." Next time, display techniques and interactive public ambient displays will be discussed.
E N D
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
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)
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