SlideShare une entreprise Scribd logo
1  sur  66
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à 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
 

Similaire à 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
 

Dernier

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Dernier (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

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”