how to survive multi-device user interface design with uiml

66
How to Survive Multi-Device User Interface Development with UIML Jo Vermeulen and Jan Meskens Hasselt University tUL IBBT Expertise Centre for Digital Media Belgium {jo.vermeulen,jan.meskens}@uhasselt.be

Upload: jo-vermeulen

Post on 05-Nov-2014

3.309 views

Category:

Technology


3 download

DESCRIPTION

Talk given at the DSP Valley seminar "Exploring GUI design for embedded systems" together with Jan Meskens on June 9, 2009. See also: http://www.dspvalley.com/upload/event/site/5270/index.html Abstract: The User Interface Markup Language has been around for 10 years now and it is still evolving. The language did not reach a large audience yet and there are few publicly known cases where the language is used. Nevertheless, UIML is probably one of the most generic and flexible user interface markup languages available, mainly because it is in fact a meta-language that is not limited to a particular domain, device, platform or widget set. The design of the language makes it an ideal candidate to support future evolutions in user interface techniques and guarantees the survival of user interface designs over time. At the dawn of the 4.0 version of the UIML specification—which will be released soon—this talk provides an overview of the language, the novelties of the 4.0 specification and some tools that we have built and are available today. We also provide an overview of our work to integrate UIML in a multi-device user interface design process that allows designers to create user interfaces for multiple devices without having to deal with an abstract user interface specification. Finally, we will highlight our experiences with designing tailored user interfaces for embedded platforms with UIML, and discuss the pros and cons of using a high-level user interface description language on devices with limited resources.

TRANSCRIPT

Page 1: How to Survive Multi-Device User Interface Design with UIML

How to Survive Multi-Device User Interface Development with UIML

Jo Vermeulen and Jan Meskens

Hasselt University – tUL – IBBTExpertise Centre for Digital Media

Belgium

{jo.vermeulen,jan.meskens}@uhasselt.be

Page 2: How to Survive Multi-Device User Interface Design with UIML

A little bit about us …

Page 3: How to Survive Multi-Device User Interface Design with UIML

A little bit about us …

About 80 researchers …

Specializing in …

Page 4: How to Survive Multi-Device User Interface Design with UIML

A little bit about us …

About 80 researchers …

Specializing in …

Page 5: How to Survive Multi-Device User Interface Design with UIML

The UIML Crew

Kris Luyten Jo Vermeulen Jan Meskens

Professor PhD student PhD student

• PhD about XML UIDLs• developed Uiml.net• several research projects• > 25 related publications• numerous students

• extended Uiml.net• MSc thesis• 2 applied research proj.• 6 related publications• 6 students

• extended Uiml.net• developed Gummy• BSc & MSc thesis• basic research project• 5 related publications• 1 student

Since 2002 Since 2004 Since 2006

Page 6: How to Survive Multi-Device User Interface Design with UIML

What is UIML?

Page 7: How to Survive Multi-Device User Interface Design with UIML

A description of a user interface

Page 8: How to Survive Multi-Device User Interface Design with UIML

UIDLs in practice

Page 9: How to Survive Multi-Device User Interface Design with UIML

UIML is differentUIML is different

Page 10: How to Survive Multi-Device User Interface Design with UIML

UIML is different

• High level

• Generic

– No specific tags (e.g. <button>)

• Meta: build your own User Interface Language

– cfr. XML

Page 11: How to Survive Multi-Device User Interface Design with UIML

What does UIML look like?

Page 12: How to Survive Multi-Device User Interface Design with UIML

What does UIML look like?

<uiml><interface><structure><part>...</part>

</structure><style><property>...</property>

</style><behavior><rule>...</rule>

</behavior></interface><peers>...</peers>

</uiml>

Page 13: How to Survive Multi-Device User Interface Design with UIML

What does UIML look like?

Page 14: How to Survive Multi-Device User Interface Design with UIML

A bit of history

Page 15: How to Survive Multi-Device User Interface Design with UIML

UIML: a pioneering UIDL

Professor Marc Abrams (Virginia Tech, USA)

• 20 years experience with building GUIs

• Frustrated with then-current methods

• UIML 1.0 spec and Java renderer

• Founded Harmonia to provide tools & services for UIML

1997: UIML is born.

Page 16: How to Survive Multi-Device User Interface Design with UIML

UIML: a pioneering UIDL

• 1998

– PhD dissertation by Constantinos Phanouriou.

– Corresponding UIML 2.0 spec

• 1999:

– Windows CE renderer

– Demo at WWW6 conference / W3C DI workshop

• 2000:

– HTML, WML, VoiceXML renderers

1998-2000: updated specification & tool support.

Page 17: How to Survive Multi-Device User Interface Design with UIML

UIML: a pioneering UIDL

• 2001

– UIML 3.0 spec

– LiquidUI tool (Harmonia)

– UIML Europe 2001 conference (Paris, France)

• 2002:

– UIML Technical Committee starts

• 2003:

– Kris Luyten creates open source Uiml.net renderer

• 2004:

– UIML 3.1 specification

2001-2004: UIML comes of age

Page 18: How to Survive Multi-Device User Interface Design with UIML

The company behind UIML

Harmonia, Inc.

• contracts with US DoD

• e.g. UIs for missile control

Page 19: How to Survive Multi-Device User Interface Design with UIML

UIML as abstraction

Page 20: How to Survive Multi-Device User Interface Design with UIML

UIML as abstraction

Hardware

OS

UI toolkits Logic

UIML

Page 21: How to Survive Multi-Device User Interface Design with UIML

Same device, different toolkit

Device A

Toolkit 1 …

UIML

Device A

Toolkit 2 …

UIML

Page 22: How to Survive Multi-Device User Interface Design with UIML

Different device/OS/toolkit

… …

UIML

Device A Device B

… …

UIML

Page 23: How to Survive Multi-Device User Interface Design with UIML

Multi-device/toolkit examples

Page 24: How to Survive Multi-Device User Interface Design with UIML

Extra component necessary

Hardware

OS

UI toolkits Logic

UIML

UIML renderer

Page 25: How to Survive Multi-Device User Interface Design with UIML

UIML Renderer

• Runtime environment

• Allows for:

– rapid prototyping

– dynamic changes at runtime

Page 26: How to Survive Multi-Device User Interface Design with UIML

Our UIML Renderers

• .NET

– Works on most .NET-enabled platforms:

• Mono (*NIX)

• Microsoft .NET

• Compact .NET

• Java– Runs on various Java VMs and APIs, e.g.

• Java ME

• IBM J9

• MHP Xlet

Page 27: How to Survive Multi-Device User Interface Design with UIML

UIML research/teaching

Page 28: How to Survive Multi-Device User Interface Design with UIML

Dynamic mobile guide UIs

Context-aware UIs

Adapt according to the context-of-use (e.g. location, user profile)

Dynamic changes at runtime

Page 29: How to Survive Multi-Device User Interface Design with UIML

OSGi + UIML

UIML Activator Bundlecontrols rendering core and connects with other OSGI components

Page 30: How to Survive Multi-Device User Interface Design with UIML

Distributed Applications

• MSc thesis Neal Robben

• Distributed user interfaces with Uiml.net

• Synchronization between different UI instances

Page 31: How to Survive Multi-Device User Interface Design with UIML

UIML and distributed Applications

Page 32: How to Survive Multi-Device User Interface Design with UIML

UIML and X + V

• MSc thesis Rob Van Roey

• X+V backend for UIML

• multimodal user interfaces

– GUI interaction (XHTML)

– speech (VoiceXML)

Page 33: How to Survive Multi-Device User Interface Design with UIML

UIML and X + V

Page 34: How to Survive Multi-Device User Interface Design with UIML

UIML on CarMelody platform

• Thesis Pieter Gevers (industrial engineering)

• Prototyping UI with Uiml.net that invokes hardware APIs of Philips car radio

• Philips PNX0106 running

Montavista Linux

Page 35: How to Survive Multi-Device User Interface Design with UIML

UIML on CarMelody platform

Page 36: How to Survive Multi-Device User Interface Design with UIML
Page 37: How to Survive Multi-Device User Interface Design with UIML

Disadvantages of UIML

• Lacks mature/available tools

• Lacks community

• Lacks documentation

• Lacks proof that it “just works” in industrial/commercial settings

Page 38: How to Survive Multi-Device User Interface Design with UIML

What about performance?

Page 39: How to Survive Multi-Device User Interface Design with UIML

Smart optimization

• Rendering certainly slower

• But on the other hand, …

• The UI description provides more data, allowing for smarter optimizations

Page 40: How to Survive Multi-Device User Interface Design with UIML

Case study

• iDTV application, several linked UIML “pages”

• Painfully slow (7 seconds to render a page)

• Serious performance boost after optimization using pre-caching and MPEG-2 frames

Page 41: How to Survive Multi-Device User Interface Design with UIML

Performance comparison

7

0,35

0

1

2

3

4

5

6

7

8

Rendering time per page (seconds)

Unoptimized

Pre-caching

Page 42: How to Survive Multi-Device User Interface Design with UIML

Intermediate UIML

Page 43: How to Survive Multi-Device User Interface Design with UIML

Motivation

• UIML language is platform independent

• Renderers have to be created

– For different computing platforms

– Different programming languages

Page 44: How to Survive Multi-Device User Interface Design with UIML

Java Swing

Swing Backend

UIML for Java

Hardware

OS

Java AWT Logic

UIML

UIML Java renderer

AWT Backend

• Containment

• UI type conversion

Page 45: How to Survive Multi-Device User Interface Design with UIML

UIML for .NET

Hardware

OS

GTK# Logic

UIML

UIML .NET renderer

GTK# Backend

SWF

SWF Backend

Page 46: How to Survive Multi-Device User Interface Design with UIML

High maintenance and development cost

Hardware

OS

Toolkit Logic

UIML

UIML .NET renderer

Toolkit Backend

Hardware

OS

ToolkitLogic

UIML

UIML Java renderer

Toolkit Backend

Page 47: How to Survive Multi-Device User Interface Design with UIML

Flexible Intermediate rendering

Hardware

OS

Toolkit Logic

UIML

UIML .NET renderer

Toolkit Backend

Hardware

OS

Toolkit Logic

UIML

UIML Java renderer

Toolkit Backend

iRenderer iRenderer

Page 48: How to Survive Multi-Device User Interface Design with UIML

Intermediate Renderer

Structure

Style

Behavior

Vocabulary

UIML iUIML

Concrete Widget

PropertiesCallbacks

Concrete Widget

PropertiesCallbacks

Concrete Widget

PropertiesCallbacks

Concrete Widget

PropertiesCallbacks

Concrete Widget

PropertiesCallbacks

IntermediateRenderer

Page 49: How to Survive Multi-Device User Interface Design with UIML

Example UIML

<d-class id=« frame » maps-to=« System.Windows.Forms.GroupBox »>…

</d-class>

Page 50: How to Survive Multi-Device User Interface Design with UIML

Corresponding iUIML

Page 51: How to Survive Multi-Device User Interface Design with UIML

Intermediate UIML

• JSON language (http://json.org)

• All UIML abstractions are resolved

– Concrete widget names

– Concrete property names

– Concrete event names

• iUIML is easy to translate into a running UI

• We built an Adobe Flex renderer in 3 days…

Page 52: How to Survive Multi-Device User Interface Design with UIML

Adobe Flex Renderer

Page 53: How to Survive Multi-Device User Interface Design with UIML

Design Tools

Page 54: How to Survive Multi-Device User Interface Design with UIML

Motivation

• Learning UIML takes time

– Especially for non-technical designers

• Polishing a UI in UIML is difficult

– Requires switching between edit and run mode

Page 55: How to Survive Multi-Device User Interface Design with UIML

Motivation

• Creating one UI for a range of devices is challenging

• Automatic transformations often not aesthetically pleasing

• Manual adjustment is needed

Page 56: How to Survive Multi-Device User Interface Design with UIML

Design Tool: Gummy

Page 57: How to Survive Multi-Device User Interface Design with UIML

Gummy

• Platform independent GUI builder

• Features

– Design GUIs graphically

– Export GUIs as UIML

– Transform GUIs from one platform to another (based on UIML)

– Load a platform-specific design workspace dynamically

Page 58: How to Survive Multi-Device User Interface Design with UIML

Dynamic Design Workspace Loading

Page 59: How to Survive Multi-Device User Interface Design with UIML

Gummy Architecture

DVB-MHP renderer

PDA renderer

Desktop renderer

Desktop Proxy

PDA proxy

DVB-MHP proxy

<uiml></uiml>

Desktop

W2P

Page 60: How to Survive Multi-Device User Interface Design with UIML

Problem in Mobile UI Design

Designer Device

Target Device

Page 61: How to Survive Multi-Device User Interface Design with UIML

Spacing and Positioning

• Foto

Page 62: How to Survive Multi-Device User Interface Design with UIML

Touch Screen Characteristics

Touch Screen Sensitivity?

Occluded Areas?

Page 63: How to Survive Multi-Device User Interface Design with UIML

Interaction Techniques and Emulators

Page 64: How to Survive Multi-Device User Interface Design with UIML

Our Solution: Gummy-Live

“Mirror design changes to the mobile target device in real time”

Page 65: How to Survive Multi-Device User Interface Design with UIML

Gummy-Live

Page 66: How to Survive Multi-Device User Interface Design with UIML

Conclusion

Renderer Tool Support Designer Support