Creating an Intuitive Multi-screen Experience

37
Creating an Intuitive Multi-screen Experience senthil

Transcript of Creating an Intuitive Multi-screen Experience

Page 1: Creating an Intuitive Multi-screen Experience

Creating an Intuitive Multi-screen Experience

senthil

Page 2: Creating an Intuitive Multi-screen Experience

The secret sauce to provide an awesome multi-screen

experience…

Page 3: Creating an Intuitive Multi-screen Experience

There is none!

Page 4: Creating an Intuitive Multi-screen Experience

There is none no one!

Page 5: Creating an Intuitive Multi-screen Experience

There is NO one-size-fits-all solution

#1

Page 6: Creating an Intuitive Multi-screen Experience

The client decides on how the page should be rendered

Responsive

Page 7: Creating an Intuitive Multi-screen Experience

CSS media queries

Fluid Layout using percentages

Responsive

Page 8: Creating an Intuitive Multi-screen Experience

Suitable for read-only web pages

Responsive

Page 9: Creating an Intuitive Multi-screen Experience

Server decides the page view

Adaptive

Page 10: Creating an Intuitive Multi-screen Experience

Sever controller sniffs user agent & decides which view to render

Adaptive

Page 11: Creating an Intuitive Multi-screen Experience

Suitable for highly interactive pages & SPAs

Adaptive

Page 12: Creating an Intuitive Multi-screen Experience

Client & server work together and render optimized experience

Fusion – RESS*

*REsponsive web design + Server Side components

Page 13: Creating an Intuitive Multi-screen Experience

e.g.

• Layout is done responsively

• Server decides on which JS/modules/templates to include

Fusion

Page 14: Creating an Intuitive Multi-screen Experience

Pages with moderate interaction –Most eBay pages

Fusion

Page 15: Creating an Intuitive Multi-screen Experience

Events

#2

Page 16: Creating an Intuitive Multi-screen Experience

Events == Desktop + Swipe

Page 17: Creating an Intuitive Multi-screen Experience

• Tiny (650 bytes) jQuery plugin to handle swipe events

• Can be included unconditionally to enhance user experience

jquery.tactile.js

Page 18: Creating an Intuitive Multi-screen Experience

• Clicks are delayed by 300ms

• Use FastClick for highly interactive pages

Clicks

Page 19: Creating an Intuitive Multi-screen Experience

• Mouse events – mouseenter, mouseleave etc.

• :hover pseudo-class selector

Avoid

Page 20: Creating an Intuitive Multi-screen Experience

• CSS based animations

• requestAnimationFrame API

• Paint only what is needed

16ms is all you got!

Page 21: Creating an Intuitive Multi-screen Experience

Pixel is not a Pixel

#3

Page 22: Creating an Intuitive Multi-screen Experience

Viewport

<meta name="viewport" content="width=device-width"/>

Page 23: Creating an Intuitive Multi-screen Experience

Viewport

Desktop == Tablet Landscape

Page 24: Creating an Intuitive Multi-screen Experience

Use orientation (portrait & landscape) media queries with caution

Viewport

Page 25: Creating an Intuitive Multi-screen Experience

Responsive Images

They are not there yet!

Page 26: Creating an Intuitive Multi-screen Experience

Responsive Images

#container {background-image:url(‘desktop.png’)\9; // IE8 hackwidth: 200px;

}@media (min-width: 961px) {

#container { background-image:url('desktop.png'); }}@media (max-width: 960px) {

#container { background-image:url('tablet.png'); width:100px; }}

Page 27: Creating an Intuitive Multi-screen Experience

Scrolling

expect the unexpected

#4

Page 28: Creating an Intuitive Multi-screen Experience

• Simulating natural scroll is very hard & confusing

• Add scope buffers

Page 29: Creating an Intuitive Multi-screen Experience

-webkit-overflow-scrolling:touch

Timesaver

Page 30: Creating an Intuitive Multi-screen Experience

Use Event Debouncing

Page 31: Creating an Intuitive Multi-screen Experience

Google 0r Stackoverflow may not provide the right solutions

Page 32: Creating an Intuitive Multi-screen Experience

Remove the annoyance

#5

Page 33: Creating an Intuitive Multi-screen Experience

• Tiny click area (< 44px)

• Hover state functionality

• Tightly cluttered design

Avoid

Page 34: Creating an Intuitive Multi-screen Experience

Work with your designers from Day Zero

Page 35: Creating an Intuitive Multi-screen Experience

There is NO IE6, 7 or 8

Good News

Page 36: Creating an Intuitive Multi-screen Experience

Android* == IE

*Newer ones are better

Bad News

Page 37: Creating an Intuitive Multi-screen Experience

Thank You