Rich User Interaction with SVG - Presentation Transcript
XML based user interaction through Rich Interfaces - SVG - MULTIMEDIA DOCUMENT Stéphane Sire (speaking)
PLAN
Part 1
Rich User Interaction Style
Part 2
Iterative Design and supportive technologies
Part 3
SVG and alike
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)
Very efficient algorithm to draw it (De Casteljeau algorithm)
Applications
Rounded shapes
BETTER GRAPHICS (4)
Pixel Effects
Anti-aliasing
Filters (blur, bump mapping, etc.)
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
"Exageration"
Pace
Application: Kinetic Scrolling ( video on youTube)
Author's made movie from www.laredoute.fr Author's made movie from www.youarethemodel.com
Linear (ribbon) : www.gucci.com or www.christofle.com
Two dimensions : www.goruneasy.com
Unconventional : www.etsy.com (cf. Explore)
Source www.goruneasy.com Source www.yomiuri.co.jp (site design has changed)
NEW LAYOUT MODELS (3)
Fixed layout + Animation
Scrolling Ribbon
more information with constant space within the page
Layers + Animation
Drawer windows
Docks
Source www.tf1.fr
BORROWINGS FROM OTHER STYLES
Direct manipulation
Drag & drop but still marginal
Post-WIMP techniques
Bifocal menus
Video-games
Rotative menus
Source www.amazon.com Source www.wat.tv
BETTER FEEDBACK TIMES WITH AJAX
No more page reload and full page refresh
Increase reactivity
Requires special tricks to get user's attention
Applications
Auto-suggestion input field (see Google Autosuggest )
Dynamical queries
allows some forms with no "Submit" button
or allows to pre-filter results before submitting
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)
Graphical design
To increase intuitivity
To create emotions
Emotions increase perceived usability
See Don Norman last book "Emotional Design"
Requires multi-disciplinary teams
User experience (interaction) designer
Visual designer, Motion designer
Developers
etc
( 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
Agile Manigesto (source agilemanifesto.org )
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
See also Extreme Programming
Web version
the permanent Beta
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 ?
Specialized editors
Example for graphics: Adobe illustrator
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
Models
Specialized editors
Easy to move from one platform to another
Code
Programming skills
Hard to maintain
Less portable
Models Models (XML) Code Code
PART 3 Web Standards for Graphical Design: SVG and alike
W3C STANDARDS (1)
Mainly "Models"
XML based languages
From "Draft" to "Recommendation" status
API for manipulating models loaded into memory as trees
Many more APIs (events, load and save, progression, etc.)
XMLHttpRequest
Ajax programming
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
S calable V ector G raphic
Started in 1998
1st draft: February 1999
SVG 1.1 recommendation 2003
http://www.w3.org/TR/SVG11/
SVG 1.2 Tiny candidate recommendation 2006
http://www.w3.org/TR/SVGMobile12/
SVG 1.2 Full to come later
Working Group with main software editors
Sun, Adobe, Apple, Microsoft, Corel, Ilog, HP, Canon, Autodesk, etc.
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)
outline of a shape which can be filled, stroked, used as a clipping path
defined by connected lignes, arcs and curves.
Base attribute
"path data" : complex vocabulary
"," and EOL are allowed in "path data", spaces are optional between a command and a number (to compress data)
<path d="M 100 100 L 300 100 L 200 300 z" fill="red" stroke="blue" stroke-width="1" />
PATH DATA VOCABULARY
Each command is named by a letter (M: moveto L: lineto, etc.) followed by a coordinate, either
Absolute if capital (e.g. "M")
Relative to the previous point if lowercase (e.g. "m")
M and m:
Move the point to the given coordinate
Create a new sub-path starting at the origin
Syntax: M|m (x y) (x y)*
The second group (x y)* is interpreted as lineto commands
Ex: M100 100 200 200
L and l:
Draw a line from the current point to the given coordinate and draw lines between subsequent given points
Syntax: L|l (x y) (x y)*
H and h (V and v):
Draw a horizontal line (vertical) from the current point to the current point incremented with the given number
Syntax: H|h (x) et V|v (y)
Z and z:
Close current subpath with the last point defined with M|m
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
Indexing image file (do not forget it's text files)
SVG 1.2 also introduces attributes for RDFa & microformats
<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
Within an SVG document (.svg : image/svg+xml)
You can nest several SVG fragments / views inside an SVG document
This is a way to define "elastic" layouts
Apply % values to x, y and width, height attributes
Don't forget viewBox attribute to scale to fit
Within an HTML document
By reference with <embed>, <object>, <iframe> or <img> tags
See www.carto.net/papers/svg/samples/svg_html.shtml
Within an XHTML document (.xhtml : text/xhtml+xml)
Using the namespace inclusion mechanism
Must be parsed as XML by the browser
For a local file ".xhtml" is a way to force it
EXTRA FEATURES
Pixel filters
Markers
Glyphs
Text along a path
Adding Interactivity with Javascript Programming
SVG APIs
SVG DOM API: for scripted interactivity
SVG Micro DOM (for SVG 1.2 Tiny)
Much more … explore by yourself
Mozilla SVG home: developer.mozilla.org/en/docs/SVG
Lot of fascinating examples: www.treebuilder.de/
SVG-Wiki: wiki.svg.org/
W3C SVG Home: www.w3.org/Graphics/SVG/
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
Web sources indicated directly on the slides, otherwise (many thanks to them):
Illustrations
p7 CENA Digistrip www.tls.cena.fr/divisions/PII/toccata/composants/digistrips.html
Demos
p10 SVG Slot Machine – www.treebuilder.de
p30 Adobe Airbus A321 Panel demo – www.adobe.com/svg/demos/main.html
Book
Sketching User Experience, Bill Buxton, Morgan Kaufman by Elsevier inc. 2007 – www.billbuxton.com
Article
Combining SVG and models of interaction to build highly interactive user interfaces,
S. Chatty, A. Lemort, S. Sire, J-L. Vinot, SVGOpen 2005 – www.svgopen.org/2005/papers/CombiningSVGModelsBuildInteractiveUserInterfaces/
Part of a course on multimedia document engineering more
Part of a course on multimedia document engineering, presented at EPFL during the Spring 2009 semester. Quick introduction to the W3C SVG specification and Model Driven User Interface Design. less
0 comments
Post a comment