SlideShare une entreprise Scribd logo
1  sur  55
XML based user interaction through Rich Interfaces - SVG - MULTIMEDIA DOCUMENT Stéphane Sire (speaking)
PLAN ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PART 1 Rich User Interaction Style
EVOLUTION OF USER GRAPHICAL INTERACTION STYLES Desktop Web Mobile Command Line Direct (1983) Manipulation Point & Click (hypertext) HTML Forms WAP Rich User Interaction WIMP Rich Desktop Application (RDA) Rich Internet Application (RIA) iPhone and alike (touch based)
CHARACTERISTICS OF RICH USER INTERACTION ,[object Object],[object Object],[object Object],[object Object],[object Object],A new vocabulary for design
BETTER GRAPHICS (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Source: Digistrip (CENA)
BETTER GRAPHICS (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
BETTER GRAPHICS (3)  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
BETTER GRAPHICS (4) ,[object Object],[object Object],[object Object],Source  www.corzo.com Source  www.treebuilder.de
EXTENSIVE USE OF ANIMATIONS User's guidance System state change Visual state transition Source  www.joehewitt.com/iui/samples/music.html Source  www.lemonde.fr (choose Journal Electronique) Source  www.panic.com/goods/
ANIMATION TRICKS ,[object Object],[object Object],[object Object],Author's made movie from  www.laredoute.fr    Author's made movie from  www.youarethemodel.com
NEW LAYOUT MODELS (1) ,[object Object],Source  www.laredoute.fr Source  www.natoora.com Source  maps.google.com
NEW LAYOUT MODELS (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Source  www.goruneasy.com Source  www.yomiuri.co.jp  (site design has changed)
NEW LAYOUT MODELS (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Source  www.tf1.fr
BORROWINGS FROM OTHER STYLES ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Source  www.amazon.com Source  www.wat.tv
BETTER FEEDBACK TIMES WITH AJAX ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Source www.trivop.com Source www.darty.com/nav/achat/telephonie/telephonie_mobile/telephone_portable/guide.html (site design has changed)
RICH USER INTERACTION (SUMMARY) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],( video  on youTube)
PART 2 Iterative Design and Supportive Technologies
PRODUCT DEVELOPMENT PROCESS Reprinted from "Sketching User Experiences" (Buxton, 2007)
ITERATIVE DESIGN
CLOSE TO AGILE SOFTWARE DEVELOPMENT ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
EXAMPLES Source:  Nielsen Source:  Hiser Source:  Alex Poole
CLASSICAL DEVELOPMENT CYCLE Users Sketches Storyboard Wireframes IA diagrams Programmers Interaction, Visual, Motion, … Designers Executable Code Browser Plugin Runtime Env. Feedback loop How to increase the number of iterations ?
MODEL DRIVEN DEVELOPMENT CYCLE Users Sketches Storyboard Wireframes IA diagrams Programmers Interaction, Visual, Motion, … Designers Graphical models Animation models Other models… XML Browser, Plugin Runtime Env. Executable code
HOW TO EDIT A MODEL ? ,[object Object],[object Object],SVG File
A SHORT EXAMPLE  Interaction Designer Visual  Designer Programmer: + Javascript  Graphical Model File(s) Example from Adobe dev web site
ADDING MORE MODELS….  Interaction Designer Visual  Designer Graphical Model Behavior Modelling with State Machines Finite State Machine Models
MODEL DRIVEN SUMMARY ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Models Models (XML) Code Code
PART 3 Web Standards for Graphical Design: SVG and alike
W3C STANDARDS (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
WEB STANDARDS AND MDA Markup  Only Code Behind  Markup  Behind Code Only XML XML Imperative Prog. Lang. Imperative Prog. Lang. Definition of Interactive Components Instantiation of Interactive Components Today Web applications Future of  applications Today Desktop applications
W3C AND RICH USER INTERACTION (*) simplified with specialized toolkits (scriptaculous, jQuery, etc)  Characteristics Standard solution Better graphics SVG  or CSS3 (with HTML)  Animation SMIL/ SVG  animation module  DOM Manipulation with Javascript(*) Creative layout SVG  or CSS (with HTML) DOM Manipulation with Javascript(*) Better feedback time XMLHttpRequest  Cross domain XHR Borrowing from other styles All of the above
SVG HISTORY ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SVG VS. FLASH (*) see  http://www.w3.org/TR/SVG/minimize.html Property SWF SVG XML - Std W3C No Yes Metadata Yes, propietary Yes, RDF compatible Format Binary Text Size < SVG > SWF : but can be compressed with gzip by about 80% (*) Runtime Plugin (200K) Native (Opera,  Safari ,  Firefox, … ) Source No Yes (text is searchable and selectable) Audio/Video Yes Yes (SVG 1.2 Tiny)
AUTHORING TOOLS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PLAYERS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DRAWING BASIC SHAPES ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<rect x=&quot;200&quot; y=&quot;300&quot; width=&quot;90&quot; height=&quot;40” fill=&quot;lime&quot; stroke=&quot;blue&quot;  stroke-linejoin=&quot;bevel&quot;  stroke-width=&quot;3&quot;/>
DRAWING ARBITRARY SHAPES ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<path d=&quot;M 100 100 L 300 100 L 200 300 z&quot; fill=&quot;red&quot; stroke=&quot;blue&quot; stroke-width=&quot;1&quot; />
PATH DATA VOCABULARY ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],M 100,100 L 200, 200 x Cur point
MORE PATH DATA VOCABULARY See details on  http://www.w3.org/TR/SVG/paths.html Command Args (can be repeated)+ Description A, a rx ry x-axis-rotation direction sweep x y Elliptical arc C, c x1 y1 x2 y2 x y  Cubic B ézier curve from current point to x y with control points x1 y2 and x2 y2 S, s x2 y2 x y  Cubic B ézier curve with control point as the reflection of the reflection of second control point of a C, c command Q, q x1 y1 x y  Quadratic B ézier curve from current point to x y with control point x1 y1 T, t x y Quadratic B ézier curve with control point as the reflection of previous control point of a Q, q command
DEFINING REUSABLE GRAPHICAL COMPONENTS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<g id=&quot;shape&quot; stroke=&quot;blue&quot;> <path width=&quot;1cm&quot; d=&quot;M 0 50 35 25 70 50 Z&quot;  stroke-width=&quot;0.1cm&quot; fill=&quot;none&quot;/>  <rect x=&quot;10&quot; y=&quot;50&quot; width=&quot;50&quot; height=&quot;1cm&quot;  stroke-width=&quot;0.1cm&quot;/>  </g> <use xlink:href=&quot;#shape&quot; x=&quot;140&quot; y=&quot;20&quot;/> <use xlink:href=&quot;#shape&quot; x=&quot;70&quot; y=&quot;60&quot;/>
DECLARING GRAPHICAL COMPONENTS WITHOUT DRAWING THEM  ,[object Object],[object Object],[object Object],<defs> <g id=&quot;shape&quot; stroke=&quot;blue&quot;> <path width=&quot;1cm&quot; d=&quot;M 0 50 35 25 70 50 Z&quot;  stroke-width=&quot;0.1cm&quot; fill=&quot;none&quot;/>  <rect x=&quot;10&quot; y=&quot;50&quot; width=&quot;50&quot; height=&quot;1cm&quot;  stroke-width=&quot;0.1cm&quot;/>  </g> </defs> <use xlink:href=&quot;#shape&quot; x=&quot;140&quot; y=&quot;20&quot;/> <use xlink:href=&quot;#shape&quot; x=&quot;70&quot; y=&quot;60&quot;/>
POSITIONING GRAPHICS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<g transform=&quot;rotate(20, 200, 300)&quot;> <rect x=&quot;200&quot; y=&quot;300&quot; width=&quot;90&quot; height=&quot;40&quot; fill=&quot;lime&quot; stroke=&quot;blue&quot; stroke-width=&quot;3&quot;/> </g>
PAINTING AND COLORING ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<defs> <linearGradient id=&quot;Gradient01&quot;> <stop offset=&quot;20%&quot; stop-color=&quot;#39F&quot; /> <stop offset=&quot;90%&quot; stop-color=&quot;#F3F&quot; /> </linearGradient>  </defs> <rect x=&quot;200&quot; y=&quot;300&quot; width=&quot;90&quot; height=&quot;40” fill=&quot;url(#Gradient01)&quot; stroke=&quot;blue” stroke-width=&quot;3&quot;/>
CLIPPING ,[object Object],[object Object],[object Object],[object Object],[object Object],Clip layer Not visible Content layer Result <clipPath id=&quot;visContent&quot;> <text x=&quot;0&quot; y=&quot;80&quot; font-family=&quot;Verdana&quot; font-size=&quot;70&quot;  fill=&quot;blue&quot; >Media</text>  </clipPath> <g clip-path=&quot;url(#visContent)&quot;> <rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;200&quot; height=&quot;100&quot; fill=&quot;url(#grad)&quot;/> </g>
MASKING ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Layer1 Layer2 Masked  by Layer3 Result Layer3 Mask Not visible <g mask=&quot;url(#Mask)&quot;> <use xlink:href=&quot;#logo&quot; transform=&quot;scale(1 -1&quot;/> </g>
ANIMATING GRAPHICS (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<rect x=&quot;10&quot; y=&quot;10&quot; width=&quot;200&quot; height=&quot;20&quot;>  < animate attributeName =&quot;width&quot;  attributeType =&quot;XML&quot;  from =&quot;200&quot;  to =&quot;20&quot;  begin =&quot;0s&quot;  dur =&quot;5s&quot;  fill =&quot;freeze&quot;   />  </rect>
ANIMATING GRAPHICS (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
METADATA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<g>  < title > Company sales by region </ title >  < desc > This is a bar chart which shows company sales by region. </ desc >  <!-- Bar chart defined as vector data -->  </g>
HOW TO USE SVG ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
EXTRA FEATURES  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CONCLUSION: RIA STANDARDS AND TECHNOLOGIES X11 1987 1992 1994 2002 2004 Shockwave HTML HTML 4.0 Flash/SWF X-HTML SVG Javascript DOM XMLHttpRequest Ajax CSS IFrame 1990 1996 1998 2000 2006 OpenGL PDF Direct 3D OpenGL 2.0 Mosaic Netscape IE Firefox Konfabulator AIR Silverlight XAML Flex/MXML XUL WVG
CREDITS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
EXTRA SLIDES
COMPLETE SVG FILE EXAMPLE <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <!DOCTYPE svg [  <!-- entities etc. here -->  ]> <svg version=&quot;1.1&quot; baseProfile=&quot;full&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; width=&quot;8cm&quot; height=&quot;6cm&quot;> <defs> <!-- resources to be reused --> <linearGradient id=&quot;Gradient01&quot;> <stop offset=&quot;20%&quot; stop-color=&quot;#39F&quot; /> <stop offset=&quot;90%&quot; stop-color=&quot;#F3F&quot; /> </linearGradient>  <rect id=&quot;shape&quot; width=&quot;1cm&quot; height=&quot;1cm&quot; stroke=&quot;blue&quot; stroke-width=&quot;0.1cm&quot;/>  </defs> <!-- content -->   <rect x=&quot;.1cm&quot; y=&quot;.1cm&quot; width=&quot;7.9cm&quot; height=&quot;5.9cm&quot; fill=&quot;none&quot; stroke=&quot;black&quot; stroke-width=&quot;1px&quot; /> <use x=&quot;1cm&quot; y=&quot;1cm&quot; xlink:href=&quot;#shape&quot; fill=&quot;#BBB&quot;/> <use x=&quot;4cm&quot; y=&quot;1cm&quot; xlink:href=&quot;#shape&quot; fill=&quot;url(#Gradient01)&quot;/>  <use x=&quot;1cm&quot; y=&quot;4cm&quot; xlink:href=&quot;#shape&quot; fill=&quot;url(#Gradient01)&quot;/>  <use x=&quot;4cm&quot; y=&quot;4cm&quot; xlink:href=&quot;#shape&quot; fill=&quot;blue&quot;/>  </svg>

Contenu connexe

Similaire à Rich User Interaction with SVG

HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1James Pearce
 
Web Development for Mobile: GTUG Talk at Google
Web Development for Mobile: GTUG Talk at GoogleWeb Development for Mobile: GTUG Talk at Google
Web Development for Mobile: GTUG Talk at GoogleEstelle Weyl
 
Sergey Ilinsky Presentation Ample Sdk
Sergey Ilinsky Presentation Ample SdkSergey Ilinsky Presentation Ample Sdk
Sergey Ilinsky Presentation Ample SdkAjax Experience 2009
 
[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 RefresherIvano Malavolta
 
An Intro to Mobile HTML5
An Intro to Mobile HTML5An Intro to Mobile HTML5
An Intro to Mobile HTML5James Pearce
 
[1D6]RE-view of Android L developer PRE-view
[1D6]RE-view of Android L developer PRE-view[1D6]RE-view of Android L developer PRE-view
[1D6]RE-view of Android L developer PRE-viewNAVER D2
 
HTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentHTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentTilak Joshi
 
Bd conf sencha touch workshop
Bd conf sencha touch workshopBd conf sencha touch workshop
Bd conf sencha touch workshopJames Pearce
 
Graphics in mobile terminals
Graphics in mobile terminalsGraphics in mobile terminals
Graphics in mobile terminalsTomi Aarnio
 
A Snapshot of the Mobile HTML5 Revolution
A Snapshot of the Mobile HTML5 RevolutionA Snapshot of the Mobile HTML5 Revolution
A Snapshot of the Mobile HTML5 RevolutionJames Pearce
 
An Introduction to Sencha Touch
An Introduction to Sencha TouchAn Introduction to Sencha Touch
An Introduction to Sencha TouchJames Pearce
 
MyVR 3D Map Technology
MyVR 3D Map TechnologyMyVR 3D Map Technology
MyVR 3D Map TechnologyOlav Sylthe
 
Wire It 0.5.0 Presentation
Wire It 0.5.0 PresentationWire It 0.5.0 Presentation
Wire It 0.5.0 PresentationEric Abouaf
 
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Esri Nederland
 
Cross platform mobile web apps
Cross platform mobile web appsCross platform mobile web apps
Cross platform mobile web appsJames Pearce
 
Rmll2010 html5-css3-english
Rmll2010 html5-css3-englishRmll2010 html5-css3-english
Rmll2010 html5-css3-englishFnot
 
Flash for Mobile Devices
Flash for Mobile DevicesFlash for Mobile Devices
Flash for Mobile Devicespaultrani
 

Similaire à Rich User Interaction with SVG (20)

HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1
 
Web Development for Mobile: GTUG Talk at Google
Web Development for Mobile: GTUG Talk at GoogleWeb Development for Mobile: GTUG Talk at Google
Web Development for Mobile: GTUG Talk at Google
 
Sergey Ilinsky Presentation Ample Sdk
Sergey Ilinsky Presentation Ample SdkSergey Ilinsky Presentation Ample Sdk
Sergey Ilinsky Presentation Ample Sdk
 
[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher
 
An Intro to Mobile HTML5
An Intro to Mobile HTML5An Intro to Mobile HTML5
An Intro to Mobile HTML5
 
HTML5 - A Whirlwind tour
HTML5 - A Whirlwind tourHTML5 - A Whirlwind tour
HTML5 - A Whirlwind tour
 
[1D6]RE-view of Android L developer PRE-view
[1D6]RE-view of Android L developer PRE-view[1D6]RE-view of Android L developer PRE-view
[1D6]RE-view of Android L developer PRE-view
 
HTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentHTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web Development
 
Bd conf sencha touch workshop
Bd conf sencha touch workshopBd conf sencha touch workshop
Bd conf sencha touch workshop
 
Graphics in mobile terminals
Graphics in mobile terminalsGraphics in mobile terminals
Graphics in mobile terminals
 
A Snapshot of the Mobile HTML5 Revolution
A Snapshot of the Mobile HTML5 RevolutionA Snapshot of the Mobile HTML5 Revolution
A Snapshot of the Mobile HTML5 Revolution
 
An Introduction to Sencha Touch
An Introduction to Sencha TouchAn Introduction to Sencha Touch
An Introduction to Sencha Touch
 
MyVR 3D Map Technology
MyVR 3D Map TechnologyMyVR 3D Map Technology
MyVR 3D Map Technology
 
Wire It 0.5.0 Presentation
Wire It 0.5.0 PresentationWire It 0.5.0 Presentation
Wire It 0.5.0 Presentation
 
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
 
mobicon_paper
mobicon_papermobicon_paper
mobicon_paper
 
Cross platform mobile web apps
Cross platform mobile web appsCross platform mobile web apps
Cross platform mobile web apps
 
Rmll2010 html5-css3-english
Rmll2010 html5-css3-englishRmll2010 html5-css3-english
Rmll2010 html5-css3-english
 
Flash for Mobile Devices
Flash for Mobile DevicesFlash for Mobile Devices
Flash for Mobile Devices
 
Component Art
Component ArtComponent Art
Component Art
 

Dernier

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 

Dernier (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 

Rich User Interaction with SVG

  • 1. XML based user interaction through Rich Interfaces - SVG - MULTIMEDIA DOCUMENT Stéphane Sire (speaking)
  • 2.
  • 3. PART 1 Rich User Interaction Style
  • 4. EVOLUTION OF USER GRAPHICAL INTERACTION STYLES Desktop Web Mobile Command Line Direct (1983) Manipulation Point & Click (hypertext) HTML Forms WAP Rich User Interaction WIMP Rich Desktop Application (RDA) Rich Internet Application (RIA) iPhone and alike (touch based)
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. EXTENSIVE USE OF ANIMATIONS User's guidance System state change Visual state transition Source www.joehewitt.com/iui/samples/music.html Source www.lemonde.fr (choose Journal Electronique) Source www.panic.com/goods/
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. PART 2 Iterative Design and Supportive Technologies
  • 19. PRODUCT DEVELOPMENT PROCESS Reprinted from &quot;Sketching User Experiences&quot; (Buxton, 2007)
  • 21.
  • 22. EXAMPLES Source: Nielsen Source: Hiser Source: Alex Poole
  • 23. CLASSICAL DEVELOPMENT CYCLE Users Sketches Storyboard Wireframes IA diagrams Programmers Interaction, Visual, Motion, … Designers Executable Code Browser Plugin Runtime Env. Feedback loop How to increase the number of iterations ?
  • 24. MODEL DRIVEN DEVELOPMENT CYCLE Users Sketches Storyboard Wireframes IA diagrams Programmers Interaction, Visual, Motion, … Designers Graphical models Animation models Other models… XML Browser, Plugin Runtime Env. Executable code
  • 25.
  • 26. A SHORT EXAMPLE Interaction Designer Visual Designer Programmer: + Javascript Graphical Model File(s) Example from Adobe dev web site
  • 27. ADDING MORE MODELS…. Interaction Designer Visual Designer Graphical Model Behavior Modelling with State Machines Finite State Machine Models
  • 28.
  • 29. PART 3 Web Standards for Graphical Design: SVG and alike
  • 30.
  • 31. WEB STANDARDS AND MDA Markup Only Code Behind Markup Behind Code Only XML XML Imperative Prog. Lang. Imperative Prog. Lang. Definition of Interactive Components Instantiation of Interactive Components Today Web applications Future of applications Today Desktop applications
  • 32. W3C AND RICH USER INTERACTION (*) simplified with specialized toolkits (scriptaculous, jQuery, etc) Characteristics Standard solution Better graphics SVG or CSS3 (with HTML) Animation SMIL/ SVG animation module DOM Manipulation with Javascript(*) Creative layout SVG or CSS (with HTML) DOM Manipulation with Javascript(*) Better feedback time XMLHttpRequest Cross domain XHR Borrowing from other styles All of the above
  • 33.
  • 34. SVG VS. FLASH (*) see http://www.w3.org/TR/SVG/minimize.html Property SWF SVG XML - Std W3C No Yes Metadata Yes, propietary Yes, RDF compatible Format Binary Text Size < SVG > SWF : but can be compressed with gzip by about 80% (*) Runtime Plugin (200K) Native (Opera, Safari , Firefox, … ) Source No Yes (text is searchable and selectable) Audio/Video Yes Yes (SVG 1.2 Tiny)
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40. MORE PATH DATA VOCABULARY See details on http://www.w3.org/TR/SVG/paths.html Command Args (can be repeated)+ Description A, a rx ry x-axis-rotation direction sweep x y Elliptical arc C, c x1 y1 x2 y2 x y Cubic B ézier curve from current point to x y with control points x1 y2 and x2 y2 S, s x2 y2 x y Cubic B ézier curve with control point as the reflection of the reflection of second control point of a C, c command Q, q x1 y1 x y Quadratic B ézier curve from current point to x y with control point x1 y1 T, t x y Quadratic B ézier curve with control point as the reflection of previous control point of a Q, q command
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52. CONCLUSION: RIA STANDARDS AND TECHNOLOGIES X11 1987 1992 1994 2002 2004 Shockwave HTML HTML 4.0 Flash/SWF X-HTML SVG Javascript DOM XMLHttpRequest Ajax CSS IFrame 1990 1996 1998 2000 2006 OpenGL PDF Direct 3D OpenGL 2.0 Mosaic Netscape IE Firefox Konfabulator AIR Silverlight XAML Flex/MXML XUL WVG
  • 53.
  • 55. COMPLETE SVG FILE EXAMPLE <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <!DOCTYPE svg [ <!-- entities etc. here --> ]> <svg version=&quot;1.1&quot; baseProfile=&quot;full&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; width=&quot;8cm&quot; height=&quot;6cm&quot;> <defs> <!-- resources to be reused --> <linearGradient id=&quot;Gradient01&quot;> <stop offset=&quot;20%&quot; stop-color=&quot;#39F&quot; /> <stop offset=&quot;90%&quot; stop-color=&quot;#F3F&quot; /> </linearGradient> <rect id=&quot;shape&quot; width=&quot;1cm&quot; height=&quot;1cm&quot; stroke=&quot;blue&quot; stroke-width=&quot;0.1cm&quot;/> </defs> <!-- content --> <rect x=&quot;.1cm&quot; y=&quot;.1cm&quot; width=&quot;7.9cm&quot; height=&quot;5.9cm&quot; fill=&quot;none&quot; stroke=&quot;black&quot; stroke-width=&quot;1px&quot; /> <use x=&quot;1cm&quot; y=&quot;1cm&quot; xlink:href=&quot;#shape&quot; fill=&quot;#BBB&quot;/> <use x=&quot;4cm&quot; y=&quot;1cm&quot; xlink:href=&quot;#shape&quot; fill=&quot;url(#Gradient01)&quot;/> <use x=&quot;1cm&quot; y=&quot;4cm&quot; xlink:href=&quot;#shape&quot; fill=&quot;url(#Gradient01)&quot;/> <use x=&quot;4cm&quot; y=&quot;4cm&quot; xlink:href=&quot;#shape&quot; fill=&quot;blue&quot;/> </svg>