50
A Generic Approach for Multi-device User Interface Rendering with UIML Kris Luyten, Kristof Thys, Jo Vermeulen and Karin Coninx {kris.luyten, kristof.thys, jo.vermeulen, karin.coninx}@uhasselt.be Expertise Centre for Digital Media Affiliated with the Institute for BroadBand Technology Hasselt University - transnationale Universiteit Limburg Belgium

A Generic Approach for Multi-Device User Interface Rendering with UIML

Embed Size (px)

DESCRIPTION

We present a rendering engine for displaying graphical user interfaces on multiple devices. The renderer interprets a standardized XML-based user interface description language: the User Interface Markup Language (UIML). A generic architecture for the renderer is defined so that deployment of the engine on different devices implies only little effort. We show that our rendering engine can be used on iDTV set-top boxes, mobile phones, PDAs and desktop PCs, and smoothly integrates with both local and remote application logic. As a test bed for the UIML specification we also explore support for extensions to UIML that enable the user interface designer to maximize accessibility and target multiple devices and different types of users at once. Best talk award at CADUI 2006, the 6th International Conference on Computer-Aided Design of User Interfaces.

Citation preview

Page 1: A Generic Approach for Multi-Device User Interface Rendering with UIML

A Generic Approach for Multi-device User Interface

Rendering with UIML

Kris Luyten, Kristof Thys, Jo Vermeulen and Karin Coninx

{kris.luyten, kristof.thys, jo.vermeulen, karin.coninx}@uhasselt.be

Expertise Centre for Digital MediaAffiliated with the Institute for BroadBand Technology

Hasselt University - transnationale Universiteit LimburgBelgium

Page 2: A Generic Approach for Multi-Device User Interface Rendering with UIML

A Generic Approach for Multi-device User Interface

Rendering with UIML

Page 3: A Generic Approach for Multi-Device User Interface Rendering with UIML

A Generic Approach for Multi-device User Interface

Rendering with UIML

Page 4: A Generic Approach for Multi-Device User Interface Rendering with UIML

What is UIML?

Page 5: A Generic Approach for Multi-Device User Interface Rendering with UIML

description of auser interface

Page 6: A Generic Approach for Multi-Device User Interface Rendering with UIML

• high level

• generic

• no specific tags (e.g. <button>)

• allows to build a custom user interface language

Page 7: A Generic Approach for Multi-Device User Interface Rendering with UIML

What does UIML look like?

Page 8: A Generic Approach for Multi-Device User Interface Rendering with UIML

Structure

Style

Content

Behavior

Logic

Presentation

InterfacePeers

Vocabulary UIML document

Page 9: A Generic Approach for Multi-Device User Interface Rendering with UIML

<uiml> <interface> <structure> <part>...</part> </structure> <style> <property>...</property> </style> <behavior> <rule>...</rule> </behavior> </interface> <peers>...</peers></uiml>

Page 10: A Generic Approach for Multi-Device User Interface Rendering with UIML

A Generic Approach for Multi-device User Interface

Rendering with UIML

Page 11: A Generic Approach for Multi-Device User Interface Rendering with UIML

Renderer vs Compiler

Page 12: A Generic Approach for Multi-Device User Interface Rendering with UIML

Compiler

Executable codeUIML

Page 13: A Generic Approach for Multi-Device User Interface Rendering with UIML

Renderer

• runtime environment

• allows for rapid prototyping

• dynamic changes at runtime

Page 14: A Generic Approach for Multi-Device User Interface Rendering with UIML

A Generic Approach for Multi-device User Interface

Rendering with UIML

Page 15: A Generic Approach for Multi-Device User Interface Rendering with UIML

Multiple renderers

• Mono/MS .NET/MS Compact .NET (Uiml.net)

• Java MHP

• Java MIDP

Page 16: A Generic Approach for Multi-Device User Interface Rendering with UIML

Multiple devices

• Desktop PC

• PDA

• iDTV

• Smartphone

• ...

Page 17: A Generic Approach for Multi-Device User Interface Rendering with UIML

A Generic Approach for Multi-device User Interface

Rendering with UIML

Page 18: A Generic Approach for Multi-Device User Interface Rendering with UIML

Common renderer architecture

Page 19: A Generic Approach for Multi-Device User Interface Rendering with UIML

• requires a VM

• one rendering core

• multiple rendering back-ends

Page 20: A Generic Approach for Multi-Device User Interface Rendering with UIML

Rendering core

• process UIML

• build internal representation

• mappings

• dynamically at runtime; or

• ad-hoc (when no reflection is available)

Page 21: A Generic Approach for Multi-Device User Interface Rendering with UIML

Rendering back-ends

• limited responsibility

• process parts that require widget-set specific knowledge

Page 22: A Generic Approach for Multi-Device User Interface Rendering with UIML

The rendering process

Page 23: A Generic Approach for Multi-Device User Interface Rendering with UIML

• three stages

• pre-processing

• main processing

• post-processing

Page 24: A Generic Approach for Multi-Device User Interface Rendering with UIML

Pre-processing

• transform one UIML document into another

• examples

• adaptation by user profile

• applying layout constraints

Page 25: A Generic Approach for Multi-Device User Interface Rendering with UIML

Main processing

• interpret the UIML file

• build a concrete instantiation using the available widget set

Page 26: A Generic Approach for Multi-Device User Interface Rendering with UIML

Main processing details

1. look up the required back-end

2. build an internal representation

3. for every part, attach its style and behavior

4. render the generated tree to a concrete instantiation

Page 27: A Generic Approach for Multi-Device User Interface Rendering with UIML

<structure> <part id=”all” class=”Container”> <part id=”rubens” class=”Button”/> </part></structure>

<style> <property part-name=”rubens” name=”label”> Rubens Barichello </property></style>

rubens

all

label

Page 28: A Generic Approach for Multi-Device User Interface Rendering with UIML

Post-processing

• manipulate the concrete instantiation

• examples

• bind the UI with the application logic

• adaptable navigation

Page 29: A Generic Approach for Multi-Device User Interface Rendering with UIML

The demo

Page 30: A Generic Approach for Multi-Device User Interface Rendering with UIML

Overview

• industry case

• participate in TV show by using different devices

Page 31: A Generic Approach for Multi-Device User Interface Rendering with UIML

• functional interactive quiz

• with scorekeeping and an evaluation

• adapted to the user’s profile

• on different devices

Page 32: A Generic Approach for Multi-Device User Interface Rendering with UIML

UIML allows us to reuse the quiz logic

Page 33: A Generic Approach for Multi-Device User Interface Rendering with UIML

Shared logic

PdaQuiz.Browser

mcdp.CanvasClient

Xlet.UimlXlet

<logic> <d-component id=”Quiz“ ...> <d-method id=”Answered“ ...> <d-param ... /> </d-method> <d-method id=”GotoPage“ ...> <d-param ... /> </d-method> <d-method id=”Exit“ ... /> <d-method id=”GetPoints“ ... /> <d-method id=”Question1Correct“ ... /> <d-method id=”Question1Incorrect“ ... /> <d-method id=”Question2Correct“ ... /> <d-method id=”Question2Incorrect“ ... /> <d-method id=”Question3Correct“ ... /> <d-method id=”Question3Incorrect“ ... /> </d-component></logic>

Smartphone

iDTV

PDA

DesktopDesktopQuiz.Browser

Completely independent of the user interface

Page 34: A Generic Approach for Multi-Device User Interface Rendering with UIML

GTK# desktop demo

Page 35: A Generic Approach for Multi-Device User Interface Rendering with UIML

SWF desktop demo

Page 36: A Generic Approach for Multi-Device User Interface Rendering with UIML

Can we reuse the entire interface

description?

Page 37: A Generic Approach for Multi-Device User Interface Rendering with UIML

Almost

• interactors

• interaction

• application logic

• content

• layout

Page 38: A Generic Approach for Multi-Device User Interface Rendering with UIML
Page 39: A Generic Approach for Multi-Device User Interface Rendering with UIML

Layout constraints

• widget set independent layout specification

• plastic

• extension to UIML

• handled in the pre-processing step

Page 40: A Generic Approach for Multi-Device User Interface Rendering with UIML

(0,0) (50,0)

“rubens” above “giancarlo”

“rubens” left-aligned-with “giancarlo”

(0,0)

(0,10)

Page 41: A Generic Approach for Multi-Device User Interface Rendering with UIML

<style> ... <property part-name=”rubens” name=”position”>0,0</property> <property part-name=”giancarlo” name=”position”>0,10</property> ...</style>

Add position properties

Page 42: A Generic Approach for Multi-Device User Interface Rendering with UIML

MHP iDTV demo

Page 43: A Generic Approach for Multi-Device User Interface Rendering with UIML

PDA demo

Page 44: A Generic Approach for Multi-Device User Interface Rendering with UIML

Smartphone demo

Page 45: A Generic Approach for Multi-Device User Interface Rendering with UIML

User adaptation

• Intelligent User Interface Agent

• knows about user’s preferences

• transforms the interface accordingly

• currently MPEG-21 based

• handled in the pre-processing step

Page 46: A Generic Approach for Multi-Device User Interface Rendering with UIML

Use case

• visually impaired users

• user agent adapts the UIML description

• larger, bolder fonts

Page 47: A Generic Approach for Multi-Device User Interface Rendering with UIML

Before

Page 48: A Generic Approach for Multi-Device User Interface Rendering with UIML

After

Page 49: A Generic Approach for Multi-Device User Interface Rendering with UIML

Conclusions

• functional client-side UIML renderer on different devices

• .NET version is freely available

• http://research.edm.uhasselt.be/uiml.net

Page 50: A Generic Approach for Multi-Device User Interface Rendering with UIML

Questions?