introduction to user interface markup language (uiml)

27
1 Introduction to User Interface Markup Language (UIML)

Upload: nuala

Post on 14-Feb-2016

46 views

Category:

Documents


0 download

DESCRIPTION

Introduction to User Interface Markup Language (UIML). What is a Device?. A Scenario: A Hospital. Doctor reviews schedule on office PC makes rounds with handheld checks patient status from voice phone Patient has relapse Info system locates device closest to doctor - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Introduction to  User Interface Markup Language (UIML)

1

Introduction to User Interface Markup Language

(UIML)

Page 2: Introduction to  User Interface Markup Language (UIML)

2

What is a Device?

Page 3: Introduction to  User Interface Markup Language (UIML)

3

A Scenario: A Hospital

• Doctor• reviews schedule on office PC• makes rounds with handheld• checks patient status from voice phone

• Patient has relapse• Info system locates device closest to doctor• Text pager alerts message• Doctor orders tests via smart phone

Page 4: Introduction to  User Interface Markup Language (UIML)

4

Problem: Tower of Babel

Devicevariety

Platform (Language & OS)

variety

Trouble !+ =

Page 5: Introduction to  User Interface Markup Language (UIML)

5

Troubles for Developers• Multiple source bases

(WML, Java, C++, SpeechML, XUL, ...)

• Keeping UIs consistent across devices

• Tracking changes in too many languages

• Learning to use too many interface technologies (voice, handwriting, …)

• Vendor risk

Page 6: Introduction to  User Interface Markup Language (UIML)

6

Trouble for System Admins

• Need to install new releases of software for multiple devices

Page 7: Introduction to  User Interface Markup Language (UIML)

7

Perspective

• Situation today is analogous to PC industry 20 years ago:

– Many types of devices, many APIs– Eventually operating systems shielded

developers from device-specific APIs

• UIML provides similar shield for devices

Page 8: Introduction to  User Interface Markup Language (UIML)

8

Another PerspectiveMachine language

Assembly language

“High-level” language (C++, Java)

Scripting languages

Device-dependent markup

Device-independent markup

Page 9: Introduction to  User Interface Markup Language (UIML)

9

UIML Objective

Universal, device-independent language

– Able to describe family of UIs

– Maps language to devices via style sheets

– Works even for devices not yet invented

Page 10: Introduction to  User Interface Markup Language (UIML)

10

Other UIML Objectives

• Naturally separates UI from rest of application• Facilitates

– rapid prototyping– accessibility– internationalization

• Usable by non-programmers• Extensible

Page 11: Introduction to  User Interface Markup Language (UIML)

11

UIML has 5 Key Concepts...

Page 12: Introduction to  User Interface Markup Language (UIML)

12

UIML is a “Meta” Language• XML

– Doesn’t define tags (<P>,…)– Must add doc type definition to make it useful– No need to change XML as new tag sets invented

• UIML – Doesn’t define tool-kit specific tags (<Menu>,…)– Uses a few powerful tags (<part>, <property>,…)– Must add toolkit peer definition to make it useful– No need to change UIML as new devices invented

Concept 1:

Page 13: Introduction to  User Interface Markup Language (UIML)

13

UI description:<part name=“Line” class=“MenuItemOrIcon”>

Style:<property class=”MenuItemOrIcon"

name="rendering” value="java.awt.MenuItem” />

Events are handled similarly.

UIML’s Approach

Page 14: Introduction to  User Interface Markup Language (UIML)

14

Two approaches to cross-device language:

• Least common denominator

• Preserve full capability of each device(Each device UI is a different view into a rich backend

application)

No Loss of PowerConcept 2:

Page 15: Introduction to  User Interface Markup Language (UIML)

15

• Which UI elements present for device X? • What presentation style for X?• What words/sounds/images?• What interface events?• How to connect to

backend?

Specifying Any UI Answers 5 ?s...Concept 3:

Page 16: Introduction to  User Interface Markup Language (UIML)

16

UIML Skeleton<?xml version="1.0" ...?><uiml version="2.0b"> <interface> <structure name=“PC”>…</structure> <style>…</style> <content>…</content> <actions>…</actions> </interface> <logic>...</logic>

<toolkit-peers> ... </toolkit-peers>

</uiml>

UI description

UI/backend connection

Map to Java, etc.

Page 17: Introduction to  User Interface Markup Language (UIML)

17

E volution of Event HandlingHandle button-click

in C++, VB code

Handle it inscripting language

Handle it declarative(in UIML itself)

Concept 4:

Page 18: Introduction to  User Interface Markup Language (UIML)

18

• Facilitates internationalization:– Note that you didn’t see text for menuitem yet– Text for menu tag is in <data> section.– Multiple texts for multiple languages

• Helps expert/novice UI problem

UI = Elements + Style + ContentConcept 5:

Page 19: Introduction to  User Interface Markup Language (UIML)

19

Credits

UIML is an evolution from lots of good ideas:

• HTML/CSS/XSL separation of style• UI management systems from HCI community• The “X” in XML• ...

Page 20: Introduction to  User Interface Markup Language (UIML)

20

To learn more...

• uiml.org:tutorial, spec, Java renderer source code

• Try it! Downloadable Java renderer

• In progress:

– SpeechML, WML, WinCE subset renderers

– Dynamic interface server

Page 21: Introduction to  User Interface Markup Language (UIML)

21

Page 22: Introduction to  User Interface Markup Language (UIML)

22

Family of Interfaces

Page 23: Introduction to  User Interface Markup Language (UIML)

23

Rapid Prototyping Example

• One UI definition• Two presentation

styles

Page 24: Introduction to  User Interface Markup Language (UIML)

24

Page 25: Introduction to  User Interface Markup Language (UIML)

25

No Scripting or Java codefor Events...

Page 26: Introduction to  User Interface Markup Language (UIML)

26

Page 27: Introduction to  User Interface Markup Language (UIML)

27