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

Transcript
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?