SlideShare a Scribd company logo
1 of 66
Download to read offline
How to Survive Multi-Device User
Interface Development with UIML




          Jo Vermeulen and Jan Meskens
     {jo.vermeulen,jan.meskens}@uhasselt.be



          Hasselt University – tUL – IBBT
         Expertise Centre for Digital Media
                     Belgium
A little bit about us …
A little bit about us …



                             About 80 researchers …




Specializing in …
A little bit about us …



                             About 80 researchers …




Specializing in …
The UIML Crew




  Kris Luyten                     Jo Vermeulen                 Jan Meskens
    Professor                      PhD student                 PhD student

   Since 2002                       Since 2004                  Since 2006

• PhD about XML UIDLs         • extended Uiml.net          • extended Uiml.net
• developed Uiml.net          • MSc thesis                 • developed Gummy
• several research projects   • 2 applied research proj.   • BSc & MSc thesis
• > 25 related publications   • 6 related publications     • basic research project
• numerous students           • 6 students                 • 5 related publications
                                                           • 1 student
What is UIML?
A description of a user interface
UIDLs in practice
UIML is different
  UIML is different
UIML is different

• High level

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


• Meta: build your own User Interface Language
  – cfr. XML
What does UIML look like?
What does UIML look like?


<uiml>
  <interface>
    <structure>
      <part>...</part>
    </structure>
    <style>
      <property>...</property>
    </style>
    <behavior>
      <rule>...</rule>
    </behavior>
  </interface>
  <peers>...</peers>
</uiml>
What does UIML look like?
A bit of history
UIML: a pioneering UIDL

1997: UIML is born.
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
UIML: a pioneering UIDL

1998-2000: updated specification & tool support.
• 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
UIML: a pioneering UIDL

2001-2004: UIML comes of age
• 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
The company behind UIML


Harmonia, Inc.
                        • contracts with
                          US DoD

                        • e.g. UIs for
                          missile control
UIML as abstraction
UIML as abstraction



         UIML

UI toolkits     Logic

          OS

      Hardware
Same device, different toolkit


    UIML                         UIML

Toolkit 1   …                Toolkit 2   …

      …                            …

      …                            …

   Device A                      Device A
Different device/OS/toolkit


    UIML                            UIML

…          …                    …          …

     …                               …

     …                               …

Device A                        Device B
Multi-device/toolkit examples
Extra component necessary


           UIML

      UIML renderer

  UI toolkits     Logic

            OS

        Hardware
UIML Renderer

• Runtime environment

• Allows for:

  – rapid prototyping


  – dynamic changes at runtime
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
UIML research/teaching
Dynamic mobile guide UIs

Context-aware UIs

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

Dynamic changes at
runtime
OSGi + UIML




UIML Activator Bundle
controls rendering core and
connects with other OSGI
components
Distributed Applications

• MSc thesis Neal Robben

• Distributed user interfaces with Uiml.net

• Synchronization between different UI
  instances
UIML and distributed
   Applications
UIML and X + V

• MSc thesis Rob Van Roey

• X+V backend for UIML

• multimodal user interfaces
  – GUI interaction (XHTML)
  – speech (VoiceXML)
UIML and X + V
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
UIML on CarMelody platform
Disadvantages of UIML

• Lacks mature/available tools
• Lacks community
• Lacks documentation

• Lacks proof that it “just works” in
  industrial/commercial settings
What about performance?
Smart optimization

• Rendering certainly slower

• But on the other hand, …

• The UI description provides more data,
  allowing for smarter optimizations
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
Performance comparison

8
             7
7

6

5

4                                       Unoptimized
3                                       Pre-caching

2

1
                         0,35
0
    Rendering time per page (seconds)
Intermediate UIML
Motivation

• UIML language is platform independent
• Renderers have to be created
  – For different computing platforms
  – Different programming languages
UIML for Java


                                  UIML
                         Swing
                         AWT           UIML Java
                        Backend        renderer

                       Java Swing
                        Java AWT         Logic
• Containment
• UI type conversion
                                  OS

                              Hardware
UIML for .NET


          UIML
 GTK#
  SWF          UIML .NET
Backend         renderer

 GTK#
 SWF              Logic

          OS

      Hardware
High maintenance and
                  development cost

           UIML                     UIML
 Toolkit        UIML .NET    UIML Java          Toolkit
Backend          renderer    renderer          Backend

 Toolkit           Logic    Logic             Toolkit

           OS                            OS

      Hardware                   Hardware
Flexible Intermediate
                          rendering

            UIML                                 UIML
 Toolkit    UIML .NET                 Toolkit    UIML Java
                         iRenderer                            iRenderer
Backend      renderer                Backend     renderer


  Toolkit               Logic          Toolkit               Logic

              OS                                  OS

           Hardware                             Hardware
Intermediate Renderer

  UIML                                         iUIML
                                            Concrete Widget
Structure                                    Properties
                                             Callbacks

  Style
                                 Concrete Widget      Concrete Widget

                 Intermediate      Properties           Properties
 Behavior        Renderer          Callbacks            Callbacks


                          Concrete Widget      Concrete Widget

                            Properties           Properties
Vocabulary                  Callbacks            Callbacks
Example UIML




<d-class id=« frame »
 maps-to=« System.Windows.Forms.GroupBox »>
 …
</d-class>
Corresponding iUIML
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…
Adobe Flex Renderer
Design Tools
Motivation

• Learning UIML takes time
  – Especially for non-technical designers
• Polishing a UI in UIML is difficult
  – Requires switching between edit and run mode
Motivation

• Creating one UI for a range of devices is
  challenging
• Automatic transformations often not
  aesthetically pleasing
• Manual adjustment is needed
Design Tool: Gummy
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
Dynamic Design Workspace
        Loading
Gummy Architecture



                                 Desktop renderer

                <uiml>
          Desktop Proxy

               </uiml>
            PDA proxy
                                    PDA renderer
                          W2P
          DVB-MHP proxy
Desktop



                                DVB-MHP renderer
Problem in Mobile UI Design


Target Device




                   Designer Device
Spacing and Positioning


• Foto
Touch Screen Characteristics


Touch Screen Sensitivity?




                            Occluded Areas?
Interaction Techniques and
         Emulators
Our Solution: Gummy-Live

“Mirror design
 changes to
 the mobile
 target device
 in real time”
Gummy-Live
Conclusion




Renderer Tool Support   Designer Support

More Related Content

Similar to How to Survive Multi-Device User Interface Design with UIML

Radu vunvulea building and testing windows 8 metro style applications using ...
Radu vunvulea  building and testing windows 8 metro style applications using ...Radu vunvulea  building and testing windows 8 metro style applications using ...
Radu vunvulea building and testing windows 8 metro style applications using ...Radu Vunvulea
 
Project Proposal for Minor Project
Project Proposal for Minor Project Project Proposal for Minor Project
Project Proposal for Minor Project Aniket Maithani
 
EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11Chauvin Mariot
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouchJonas Follesø
 
Code, ci, infrastructure - the gophers way
Code, ci, infrastructure - the gophers wayCode, ci, infrastructure - the gophers way
Code, ci, infrastructure - the gophers wayAlex Baitov
 
OpenGL ES EGL Spec&APIs
OpenGL ES EGL Spec&APIsOpenGL ES EGL Spec&APIs
OpenGL ES EGL Spec&APIsJungsoo Nam
 
ITCamp 2011 - Mihai Nadas - Windows Azure interop
ITCamp 2011 - Mihai Nadas - Windows Azure interopITCamp 2011 - Mihai Nadas - Windows Azure interop
ITCamp 2011 - Mihai Nadas - Windows Azure interopITCamp
 
Learn the java basic programming with example and syntaxchapter1-part-b.pptx
Learn the java basic programming with example and syntaxchapter1-part-b.pptxLearn the java basic programming with example and syntaxchapter1-part-b.pptx
Learn the java basic programming with example and syntaxchapter1-part-b.pptxGaytriMate
 
Make Cross Platform Apps that Suck Less
Make Cross Platform Apps that Suck LessMake Cross Platform Apps that Suck Less
Make Cross Platform Apps that Suck Lessjhugman
 
What is codename one
What is codename oneWhat is codename one
What is codename oneShai Almog
 
Java Chapter 2 Overview.ppt
Java Chapter 2 Overview.pptJava Chapter 2 Overview.ppt
Java Chapter 2 Overview.pptMiltonMolla1
 
Java Chapter 2 Overview.ppt
Java Chapter 2 Overview.pptJava Chapter 2 Overview.ppt
Java Chapter 2 Overview.pptMiltonMolla1
 
Win rt fundamentals
Win rt fundamentalsWin rt fundamentals
Win rt fundamentalsKevin Stumpf
 
UI Prototyping with Smalltalk at Thales
UI Prototyping with Smalltalk at ThalesUI Prototyping with Smalltalk at Thales
UI Prototyping with Smalltalk at ThalesESUG
 
Overview of Adroid Architecture.pptx
Overview of Adroid Architecture.pptxOverview of Adroid Architecture.pptx
Overview of Adroid Architecture.pptxdebasish duarah
 
Browser Object Model and Animations in qooxdoo
Browser Object Model and Animations in qooxdooBrowser Object Model and Animations in qooxdoo
Browser Object Model and Animations in qooxdooSebastian Werner
 
Yet another DSL for cross platforms mobile development
Yet another DSL for cross platforms mobile developmentYet another DSL for cross platforms mobile development
Yet another DSL for cross platforms mobile developmentOlivier Le Goaër
 

Similar to How to Survive Multi-Device User Interface Design with UIML (20)

Radu vunvulea building and testing windows 8 metro style applications using ...
Radu vunvulea  building and testing windows 8 metro style applications using ...Radu vunvulea  building and testing windows 8 metro style applications using ...
Radu vunvulea building and testing windows 8 metro style applications using ...
 
Project Proposal for Minor Project
Project Proposal for Minor Project Project Proposal for Minor Project
Project Proposal for Minor Project
 
EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
 
Code, ci, infrastructure - the gophers way
Code, ci, infrastructure - the gophers wayCode, ci, infrastructure - the gophers way
Code, ci, infrastructure - the gophers way
 
OpenGL ES EGL Spec&APIs
OpenGL ES EGL Spec&APIsOpenGL ES EGL Spec&APIs
OpenGL ES EGL Spec&APIs
 
ITCamp 2011 - Mihai Nadas - Windows Azure interop
ITCamp 2011 - Mihai Nadas - Windows Azure interopITCamp 2011 - Mihai Nadas - Windows Azure interop
ITCamp 2011 - Mihai Nadas - Windows Azure interop
 
Learn the java basic programming with example and syntaxchapter1-part-b.pptx
Learn the java basic programming with example and syntaxchapter1-part-b.pptxLearn the java basic programming with example and syntaxchapter1-part-b.pptx
Learn the java basic programming with example and syntaxchapter1-part-b.pptx
 
Make Cross Platform Apps that Suck Less
Make Cross Platform Apps that Suck LessMake Cross Platform Apps that Suck Less
Make Cross Platform Apps that Suck Less
 
What is codename one
What is codename oneWhat is codename one
What is codename one
 
An introduction to java programming language forbeginners(java programming tu...
An introduction to java programming language forbeginners(java programming tu...An introduction to java programming language forbeginners(java programming tu...
An introduction to java programming language forbeginners(java programming tu...
 
Java Chapter 2 Overview.ppt
Java Chapter 2 Overview.pptJava Chapter 2 Overview.ppt
Java Chapter 2 Overview.ppt
 
Java Chapter 2 Overview.ppt
Java Chapter 2 Overview.pptJava Chapter 2 Overview.ppt
Java Chapter 2 Overview.ppt
 
Win rt fundamentals
Win rt fundamentalsWin rt fundamentals
Win rt fundamentals
 
UI Prototyping with Smalltalk at Thales
UI Prototyping with Smalltalk at ThalesUI Prototyping with Smalltalk at Thales
UI Prototyping with Smalltalk at Thales
 
Overview of Adroid Architecture.pptx
Overview of Adroid Architecture.pptxOverview of Adroid Architecture.pptx
Overview of Adroid Architecture.pptx
 
Browser Object Model and Animations in qooxdoo
Browser Object Model and Animations in qooxdooBrowser Object Model and Animations in qooxdoo
Browser Object Model and Animations in qooxdoo
 
Auto it - AnhPC
Auto it - AnhPCAuto it - AnhPC
Auto it - AnhPC
 
Intel AppUp™ SDK Suite 1.2 for MeeGo
Intel AppUp™ SDK Suite 1.2 for MeeGoIntel AppUp™ SDK Suite 1.2 for MeeGo
Intel AppUp™ SDK Suite 1.2 for MeeGo
 
Yet another DSL for cross platforms mobile development
Yet another DSL for cross platforms mobile developmentYet another DSL for cross platforms mobile development
Yet another DSL for cross platforms mobile development
 

Recently uploaded

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Recently uploaded (20)

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

How to Survive Multi-Device User Interface Design with UIML

  • 1. How to Survive Multi-Device User Interface Development with UIML Jo Vermeulen and Jan Meskens {jo.vermeulen,jan.meskens}@uhasselt.be Hasselt University – tUL – IBBT Expertise Centre for Digital Media Belgium
  • 2. A little bit about us …
  • 3. A little bit about us … About 80 researchers … Specializing in …
  • 4. A little bit about us … About 80 researchers … Specializing in …
  • 5. The UIML Crew Kris Luyten Jo Vermeulen Jan Meskens Professor PhD student PhD student Since 2002 Since 2004 Since 2006 • PhD about XML UIDLs • extended Uiml.net • extended Uiml.net • developed Uiml.net • MSc thesis • developed Gummy • several research projects • 2 applied research proj. • BSc & MSc thesis • > 25 related publications • 6 related publications • basic research project • numerous students • 6 students • 5 related publications • 1 student
  • 7. A description of a user interface
  • 9. UIML is different UIML is different
  • 10. UIML is different • High level • Generic – No specific tags (e.g. <button>) • Meta: build your own User Interface Language – cfr. XML
  • 11. What does UIML look like?
  • 12. What does UIML look like? <uiml> <interface> <structure> <part>...</part> </structure> <style> <property>...</property> </style> <behavior> <rule>...</rule> </behavior> </interface> <peers>...</peers> </uiml>
  • 13. What does UIML look like?
  • 14. A bit of history
  • 15. UIML: a pioneering UIDL 1997: UIML is born. 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
  • 16. UIML: a pioneering UIDL 1998-2000: updated specification & tool support. • 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
  • 17. UIML: a pioneering UIDL 2001-2004: UIML comes of age • 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
  • 18. The company behind UIML Harmonia, Inc. • contracts with US DoD • e.g. UIs for missile control
  • 20. UIML as abstraction UIML UI toolkits Logic OS Hardware
  • 21. Same device, different toolkit UIML UIML Toolkit 1 … Toolkit 2 … … … … … Device A Device A
  • 22. Different device/OS/toolkit UIML UIML … … … … … … … … Device A Device B
  • 24. Extra component necessary UIML UIML renderer UI toolkits Logic OS Hardware
  • 25. UIML Renderer • Runtime environment • Allows for: – rapid prototyping – dynamic changes at runtime
  • 26. 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
  • 28. Dynamic mobile guide UIs Context-aware UIs Adapt according to the context-of-use (e.g. location, user profile) Dynamic changes at runtime
  • 29. OSGi + UIML UIML Activator Bundle controls rendering core and connects with other OSGI components
  • 30. Distributed Applications • MSc thesis Neal Robben • Distributed user interfaces with Uiml.net • Synchronization between different UI instances
  • 31. UIML and distributed Applications
  • 32. UIML and X + V • MSc thesis Rob Van Roey • X+V backend for UIML • multimodal user interfaces – GUI interaction (XHTML) – speech (VoiceXML)
  • 33. UIML and X + V
  • 34. 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
  • 35. UIML on CarMelody platform
  • 36.
  • 37. Disadvantages of UIML • Lacks mature/available tools • Lacks community • Lacks documentation • Lacks proof that it “just works” in industrial/commercial settings
  • 39. Smart optimization • Rendering certainly slower • But on the other hand, … • The UI description provides more data, allowing for smarter optimizations
  • 40. 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
  • 41. Performance comparison 8 7 7 6 5 4 Unoptimized 3 Pre-caching 2 1 0,35 0 Rendering time per page (seconds)
  • 43. Motivation • UIML language is platform independent • Renderers have to be created – For different computing platforms – Different programming languages
  • 44. UIML for Java UIML Swing AWT UIML Java Backend renderer Java Swing Java AWT Logic • Containment • UI type conversion OS Hardware
  • 45. UIML for .NET UIML GTK# SWF UIML .NET Backend renderer GTK# SWF Logic OS Hardware
  • 46. High maintenance and development cost UIML UIML Toolkit UIML .NET UIML Java Toolkit Backend renderer renderer Backend Toolkit Logic Logic Toolkit OS OS Hardware Hardware
  • 47. Flexible Intermediate rendering UIML UIML Toolkit UIML .NET Toolkit UIML Java iRenderer iRenderer Backend renderer Backend renderer Toolkit Logic Toolkit Logic OS OS Hardware Hardware
  • 48. Intermediate Renderer UIML iUIML Concrete Widget Structure Properties Callbacks Style Concrete Widget Concrete Widget Intermediate Properties Properties Behavior Renderer Callbacks Callbacks Concrete Widget Concrete Widget Properties Properties Vocabulary Callbacks Callbacks
  • 49. Example UIML <d-class id=« frame » maps-to=« System.Windows.Forms.GroupBox »> … </d-class>
  • 51. 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…
  • 54. Motivation • Learning UIML takes time – Especially for non-technical designers • Polishing a UI in UIML is difficult – Requires switching between edit and run mode
  • 55. Motivation • Creating one UI for a range of devices is challenging • Automatic transformations often not aesthetically pleasing • Manual adjustment is needed
  • 57. 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
  • 59. Gummy Architecture Desktop renderer <uiml> Desktop Proxy </uiml> PDA proxy PDA renderer W2P DVB-MHP proxy Desktop DVB-MHP renderer
  • 60. Problem in Mobile UI Design Target Device Designer Device
  • 62. Touch Screen Characteristics Touch Screen Sensitivity? Occluded Areas?
  • 64. Our Solution: Gummy-Live “Mirror design changes to the mobile target device in real time”