Top Banner
1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software
44

1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

Dec 20, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

1

Lecture 17:Development of and for

Devices

Jake Wobbrock

05-830Advanced User Interface Software

Page 2: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

2

Not a Proper Toolkit Lecture

This lecture might have been about UI toolkits for devices

There’s just one problem There really aren’t any

At least, not like we think of toolkits for desktop software

Instead we will talk about “things that help you develop for devices.” And other interesting device issues…

Page 3: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

3

Overview

Introduce work in multiple semi-related areas of software development of and for devices Palm OS Pocket PC / Windows CE .NET Compact Framework J2ME Waba BREW WAP and WML DirectX

Page 4: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

4

Overview cont.

Highlight HCI research projects with and for devices Phidgets

Rapid prototyping for physical devices (physical widgets)

Pebbles Project Interoperation of handhelds and PCs

Handheld Web browsing (various efforts) WebThumb, Power Browser, The Gateway, M-

Links

Page 5: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

5

Motivation: Handhelds

Cell phones and PDAs have seen huge growth in use over recent years. “Last year [2002] there was one cell phone sold

for every 15 human beings on the planet … Worldwide mobile phone unit sales totaled 423.4M in 2002, a 6% increase from 2001.”

“From 1999 to 2000 the number of PDAs sold nearly doubled, from some 3.6M units to 6.9M… By 2004, the number of units is expected to top 33.5M.”

Source: Biz Journals

Page 6: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

6

Motivation cont.: Gaming

Nintendo GameBoy NTT DoCoMo Inc. handhelds running

Java Others by Qualcomm, L.M. Ericsson,

Motorola, Siemens … Convergence: Games for phones and

PDAs, not only custom handhelds

Source: CNN

Page 7: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

7

The Punch Line

PDAs, phones, other handhelds experiencing great growth in use

Development community needs to have good tools and toolkits

What is available today? Sadly, not much (at least compared to

what’s available for the desktop)

Page 8: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

8

Palm OS by PalmSource Acer AlphaSmart Fossil Garmin Handspring HandEra Kyocera Palm Samsung Sony Symbol

Palm OSVisit http://www.palmsource.com/products/

Page 9: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

9

Palm OS Facts

As of January 2002: 16M Palm-powered PDAs shipped (to date) 7000 applications 150,000 registered developers

Growing at 1000 per month

Source: Palm OS Programming, O’Reilly

Page 10: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

10

Palm OS Development Two main ways

CodeWarrior for Palm OS PRC-Tools (GCC)

Other ways Sun KVM and J2ME IBM VisualAge Micro Edition (Windows or Linux) Jump (use Java, compiles to Motorola 68K) Waba (subset of Java, stripped-down VM) PocketStudio (Pascal-based, aimed at Delphi users) Pocket C (develop on the handheld for the handheld) Assembler SDK (ASDK) – write directly for Motorola

68K Pocket Smalltalk (includes garbage-collecting VM)

Page 11: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

11

CodeWarrior for Palm OS

Special line of Metrowerks CodeWarrior releases for Palm OS development

Three key components Editor Constructor Palm OS Emulator (POSE)

Write code in C/C++ Downloaded to Palm via HotSync™

Page 12: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

12

Editor

Page 13: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

13

Constructor

Page 14: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

14

Emulator (POSE)

Runs on the desktop Emulates from a

“very low level” Designed to simulate

speed despite running on a desktop

Useful for debugging Not useful for

interactions requiring pen-dexterity

Page 15: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

15

Technical Details

Palm OS apps center around event cascade

Catch events by defining handlers and handling them But not nearly as much framework as

Visual Basic or MFC… more like Win32 Often involves large switch statements Single-threaded, single-process

Page 16: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

16

The Event Cascade

Page 17: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

17

CodeWarrior Summary Generally the best option Originally for Macintosh, then for Windows! BUT…

Constructor is often not as WYSIWYG or Direct Manipulation as you’d like (e.g., text fields, scroll bars)

It lacks options for all programmatically-settable options that affect visual appearance of controls (e.g., button borders)

Emulator doesn’t work exactly like the device Sometimes this matters, often this doesn’t

Page 18: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

18

PRC-Tools (GCC)

Alternate means for Palm OS development Developed before CodeWarrior ran on

Windows by the Free Software Foundation Collection of tools for Unix or Windows

Gnu C Compiler (GCC) for Motorola 68K Build-PRC (combine binaries into *.prc file) Gnu Debugger (GDB) PilRC (compiles resource files)

Falch IDE combines these with a UI

Page 19: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

19

Pocket PC? Windows CE?

Pocket PC Not considered (strictly-speaking) a PDA

Or at least not marketed that way Meant to be a full-fledged PC but pocket-sized Refers to a device (platform)

Also to a set of standard applications common on all Pocket PC devices, esp. Pocket PC Shell

Windows CE (WinCE) Refers to just the OS that runs on Pocket PCs Has large number of capabilities (components) for

the Pocket PC developer to choose from Current version is WinCE .NET

Page 20: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

20

Pocket PCs vs. Palm OS Devices

“Basic PDAs allow you to store and retrieve addresses and phone numbers, maintain a calendar, and create to-do lists and notes. More sophisticated PDAs can run word processing, spreadsheet, money manager, games and electronic book reading programs and also provide email and Internet access.”

Source: Microsoft

Page 21: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

21

Pocket PCs

Toshiba Compaq iPaq HP Jornada Audiovox T-Mobile Dell Axim ViewSonic Razor Zayo Cassio Cassiopeia NEC MobilePro

Page 22: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

22

Pocket PC Facts

Projected 2003 sales between 14M – 17M devices Compare to PC sales of 135M – 138M Pocket PC projected to catch up by 2008!

Sales hit 10M after just 10 months on the market Introduced April 2000

In May 2001, held 26% of market. Rest held by Palm OS devices.

Source: C|Net

Page 23: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

23

The Shrunken Desktop

Pocket Word Pocket Excel Pocket Outlook Pocket IE Pocket Windows Media Player … ??

Page 24: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

24

Pocket PC Development

eMbedded Visual Tools 3.0 (VC++, VB) Largely just like Windows programming

Can even use MFC for VC++ Compiles for many different processors

Page 25: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

25

Challenge

Problem: Portability Not all Pocket PCs utilize the same WinCE

components So not all Pocket PC apps will run on all Pocket

PCs Despite same underlying OS!

Example: The menu bar at the bottom is specific to Pocket PCs, not WinCE

Created and passed to the Pocket PC shell

Developers often have to change much UI code for different Pocket PC platforms Example: Handheld PC (H/PC) is wide and short,

so tall dialogs have to be re-laid-out

Page 26: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

26

Resource Editor

Page 27: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

27

Pocket PC Summary Powerful palmtop computers More complicated than Palm OS Devices

(e.g., can be multi-threaded) Less integrated vertically than Palm OS

devices Complicates development (e.g., UI

components not often supported on all Pocket PC devices)

With more power and capability comes more complexity and complication Affects the toolkits for development on such

devices

Page 28: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

28

.NET Compact Framework

Subset of .NET framework for desktops Not PDA-specific but targeted to any “smart

devices”: PDAs, mobile phones, set-top boxes, automobiles, etc.

Delivered as extensions to Visual Studio .NET called “Smart Device Programmability”

Tools and programming model are same as for desktop .NET platform Easy transition from .NET desktop development to

.NET compact framework development

Page 29: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

29

.NET Compact Framework cont.

Argument is that there are currently too many mobile CPUs and OSes, so development is difficult True – but we know the Microsoft answer

.NET would allow integration of devices across multiple platforms, networks, and programming languages A vision behind .NET in general

Compact Framework is a subset of all .NET capabilities Reduces footprint on resource-strained devices

Page 30: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

30

J2ME – Java 2 Micro Edition

Uses subset of Java Virtual Machine for smaller footprint (i.e., KVM) Highly optimized runtime environment Not PDA-specific: smart cards, pagers,

mobile phones, set-top boxes, vehicle telematics systems (e.g., OnStar system)

Set of APIs defined by the Java Community Process Program™ Includes user interface, security,

networking protocols, and more

Page 31: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

31

J2ME Architecture

J2ME Architecture defines… Configurations: A virtual machine and a

minimal set of class libraries For Palm OS, configuration is “Connected

Limited Device Configuration” (CLDC) Profiles: Higher-level APIs that further

define the application, user interface, and device-specific properties

For Palm OS, profiles are PDA and “Mobile Information Device Profile” (MIDP)

Page 32: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

32

J2ME Architecture cont.From http://java.sun.com/j2me/j2me-ds.pdf

Page 33: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

33

Waba

Subset of Java Stripped-down VM: small and fairly fast No longs, doubles, exceptions, or threads Open source: http://www.wabasoft.com/

Waba defines… A language (strict subset of Java) A virtual machine (Waba VM) A class file format (strict subset of Java

bytecode) A set of foundation classes

Page 34: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

34

BREW

Qualcomm’s Binary Runtime Environment for Wireless (BREW) Like J2ME, provides application execution

environment Goes farther! Provides business model for

certifying, downloading, and charging premium content

With J2ME, this is left entirely to the marketers and developers to figure out for themselves

Based on C++ (so it is fast, and small binaries)

Page 35: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

35

WAP and WML WAP (Wireless Application Protocol)

Provides “flat” Web content on handhelds Requires constant connectivity by the device Lacks a rich interactive experience for end-users

WML (Wireless Markup Language) Specifies content and user interface for WAP-

delivered information Based on XML: so describes data, not just

presentation of data WMLScript

WAP:WML:WMLScript :: HTTP:HTML:JavaScript Provides only minimal interactivity

Page 36: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

36

WAP and WML cont.

Four things specified by WML Text and image presentation and layout,

including a variety of formatting commands Deck/card organizational metaphors for

information (similar to HyperCard) Inter-card navigation and linking Card parameterization and state management

The fate of WAP Hasn’t been the success its advocates hoped New push to make possible highly interactive

content J2ME, BREW, .netCF, Waba, but these all send a VM and

increase footprint

Page 37: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

37

Game Development: DirectX

DirectX: Advanced suite of multimedia APIs DirectDraw, Direct3D, DirectSound,

DirectMusic, DirectInput, DirectPlay, DirectShow…

Allows accessing of special hardware capabilities (e.g., graphics and sound cards) without requiring hardware-specific code

DirectX exists for Pocket PC Handheld gaming projected to be a big new

market opportunity Again, similar to programming for desktop

Page 38: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

38

Transition from (Mainly) Industrial Tools to

Research Initiatives for and with Devices

Page 39: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

39

Phidgets (Greenberg et al.)

Phidgets are “physical widgets” Play the same role in physical UIs as

widgets do in graphical UIs Package IO Hide implementation details, provide

abstraction Have additional characteristics

Require a connection manager A link between the software and hardware

parts A simulation mode in software only

Page 40: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

40

Phidget Architecture Physical Device

Packaged physical unit to be used by the designer. Most phidgets are built around a circuit board.

Wire Protocol Communication protocol between device and host computer. Not visible to end-

programmers.

Phidget Manager COM object that has event-based API for end-programmers for connection management.

Phidget-specific COM objects Created by the Phidget Manager whenever a device is seen. They correspond 1:1 to

physical devices.

IGlabPhidget interface Generic interface which all phidgets have. End-programmers use it for basic identification

and capabilities.

Phidget-specific interface Capabilities specific to a particular phidget. Extends the basic IGlabPhidget interface.

Phidget ActiveX controls Wraps up the phidget code and provides an on-screen user interface and the ability to

simulate the phidget as an control.

Page 41: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

41

Pebbles (Myers et al.) Research project exploring the

interoperation of handhelds and PCs Handhelds can be an aspect of the user,

PCs can be a fixture of the environment Users may move from environment to

environment, PCs may stay behind Handhelds can control other devices too

Personal Universal Controller Handhelds can be used to control a PC by

people with motor impairments

Page 42: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

42

A Current Research Issue

Handheld User Interfaces for Web Browsing

Challenges Constrained screen-space No mouse cursor (e.g., no link roll-overs) Pages designed on a desktop for display

on a desktop Scrolling more difficult

Graphic refresh can be slow, scrolling blurry

Page 43: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

43

Handheld Web Browsing The Gateway (MacKay)

Pages displayed as thumbnails expand as certain parts of them are interacted with (CHI 2003).

WebThumb (Wobbrock et al.) Exploration of interaction techniques for better

handheld browsing (UIST 2002). M-Links (Trevor et al.)

Uses modes to separate action from navigation on mobile phone Web pages (UIST 2001).

Power Browser (Buyukkokten et al.) Generates summary views of handheld web

content for display (CHI 2000).

Page 44: 1 Lecture 17: Development of and for Devices Jake Wobbrock 05-830 Advanced User Interface Software.

44

Conclusions

Toolkits for development for devices are far from Amulet-level sophistication

Many processors and devices exist – complicates development and toolkit design

Numerous standards and niche technologies Minimizing footprint on resource-constrained

devices is a key constraint HCI research can tackle issues beyond the

specifics of device hardware and software e.g., interaction techniques for PC/PDA

interoperability e.g., interaction techniques for browsing