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

10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftshyamraj55
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKUXDXConf
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024TopCSSGallery
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyUXDXConf
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityScyllaDB
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastUXDXConf
 

Recently uploaded (20)

10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 

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”