designing rich web experience

63
Designing the Rich Web Experience Principles and patterns for rich interaction design on the web Bill Scott Director, UI Engineering netflix.com [email protected] 1

Upload: interactionpatternsorg

Post on 28-Jan-2015

109 views

Category:

Technology


2 download

DESCRIPTION

Bill Scott, Director from the UI Engineering team at Netflix shows ways to use RIA to enhance the User Experience. If you take more interest in the field of design patterns than drop by at www.interaction-patterns.org.

TRANSCRIPT

Page 1: Designing Rich Web Experience

Designing the Rich Web ExperiencePrinciples and patterns for rich interaction design on the web

Bill ScottDirector, UI Engineering

[email protected]

1

Page 2: Designing Rich Web Experience

background

2

Page 3: Designing Rich Web Experience

developer.yahoo.com/ypatterns

3

Page 4: Designing Rich Web Experience

background

4

Page 5: Designing Rich Web Experience

protoscript.com

5

Page 6: Designing Rich Web Experience

7,000,000Netflix subscribers

55,000,000DVDs in inventory

90,000 DVD titles

1.6 million shipped on average daily

95% of inventory shipped each quarter

5,000 Instant Watching titles

2 billion+user ratings

2 millionmovies rated daily by users

100+shipping points

6

Page 7: Designing Rich Web Experience

surfacing vocabulary

7

Page 8: Designing Rich Web Experience

current patterns. developer.yahoo.com/ypatterns

8

Page 9: Designing Rich Web Experience

rich patternsDrag and Drop. Drag and Drop Modules. In Page Editing. In Page Custom

Editing. Direct State Editing. Grid Cell Editing. Inline Custom Editing. Inline Tag Editing. Popup Custom Editing. Slide-out Custom Editing. Inline Text Editing. Persistent Portals. Inline Reordering. Indication. Busy Indication. Cursor Busy. In Context Busy. In Context Progress. Inline Status. Auto Complete. Balloon Error Tip. Deferred Content Loading. Dynamic Goal.

Narrowing Choices. Refining Search. Live Search. Dynamic Filter. Invitation. Cursor Invitation. Drop Invitation. Tool Tip Invitation. Hover Invitation. Detail Zoom. Opacity Focus. Configurable Module - Faceplate. Configurable Module - Flip It. Configurable Module - Inline Configure. Configurable Module - Slide

Out Drawer. Slide Out. Flip. Opacity Fade. Endless Scrolling. Expandable Paging Boundary. Fresh Content. Hover Detail. In Place Drill Down. Inline

Assistant. Inline Validation. Validate Then Suggest. On Demand Refresh. Periodic Refresh. Resizable Modules. Scrolling Modules. Auto Save. In Context

Tools. Remembered Collection. Remembered Preferences. Auto Form Fill. Rating an Object. Transition. Brighten Transition. Cross Fade Transition. Dim

Transition. Expand Transition. Fade In Transition. Fade Out Transition. Flip Transition. Move Transition. Self-Healing Transition. Collapse Transition. Slide

Transition. Rich Internet Object. Available. Selected.

9

Page 10: Designing Rich Web Experience

classic model. rich model.

Server

HttpRequest

HttpResponseMy Profile

NameGender

Age

Edit

Joe SmithMale27

My Profile

NameGender

Age

Photo

Submit

Server

HttpRequest

HttpResponse

My Profile

NameGender

Age

Joe SmithMale27

XHRObject

Server

Save

Tim Jones

10

Page 11: Designing Rich Web Experience

interaction. feedback. information.

Interaction

Info

Feedback

page

Info

refresh boundary

11

Page 12: Designing Rich Web Experience

interaction + feedback + information = richness

Interaction

Info

Feedback

12

Page 13: Designing Rich Web Experience

design principles for richness

Interaction InfoFeedback

13

Page 14: Designing Rich Web Experience

interaction principles

Interaction InfoFeedback

14

Page 15: Designing Rich Web Experience

pattern. drag & drop.

principle. make it direct.

pattern. inline editing.

pattern. in-context tools.

pattern. in-page action.

15

Page 16: Designing Rich Web Experience

make it direct

Inline EditingUse inline forms where possibleUse lightweight popups for ancillaryinformation

16

Page 17: Designing Rich Web Experience

make it direct

In-context toolsSame as context menus

Only good for single objectsCan actually slow you down

17

Page 18: Designing Rich Web Experience

make it direct

Use Drag & Drop where appropriateNot for simply setting an attribute

Don’t construct artificial visual constructs

18

Page 19: Designing Rich Web Experience

make it direct

Use Drag & Drop where appropriateNot for simply setting an attribute

Don’t construct artificial visual constructsGood for layout changes/re-organizing

19

Page 20: Designing Rich Web Experience

make it direct

Use Drag & Drop where appropriateNot for simply setting an attribute

Don’t construct artificial visual constructsGood for layout changes/re-organizing

Good for grabbing items

20

Page 21: Designing Rich Web Experience

make it direct

Take care of the interesting moments

ID: Bill Scott & Eric Miraglia Date:

Mouse

Hover Mouse Down Drag Initiated

Drag Over

Valid Target

Drag Over

Invalid Target

Drag Over

Parent Container

Drop

Accepted

Drop

Rejected

Drop On

Parent Container

Cursor

CSS Move cursorCSS Move cursor CSS Move cursor CSS Move cursor CSS Move cursor CSS Move cursor Normal Cursor Normal Cursor Normal Cursor

Tool Tip

Drag Object

Full Opacity Reduced Opacity Reduced Opacity Reduced Opacity & Invalid Badge Reduced Opacity

Modules animates into the area

just below insertion bar

Modules animates back to

the home area

Modules animates back to

the home area

Module comes to rest in new

area

Module comes back to rest

at full opacity

Modules comes back to

rest at full opacity

Modules slide up in a self-healing

transition to close hole

Drop Target

No insertion bar, just a gap No insertion bar, just a gap Insertion bar showing where it will drop No insertion bar, just a gap No insertion bar, just a gap & original hole

Insertion bar is removed as first

frame of animation

Insertion bar is removed

as first frame of animation

Insertion bar is removed

as first frame of

animation

Drag and Drop Modules - Interesting Moments Grid

Currently on beta.my.yahoo.com Nov-05

21

Page 22: Designing Rich Web Experience

ID: Bill Scott & Eric Miraglia Date:

Mouse

Hover Mouse Down Drag Initiated

Drag Over

Valid Target

Drag Over

Invalid Target

Drag Over

Parent Container

Drop

Accepted

Drop

Rejected

Drop On

Parent Container

Cursor

CSS Move cursorCSS Move cursor CSS Move cursor CSS Move cursor CSS Move cursor CSS Move cursor Normal Cursor Normal Cursor Normal Cursor

Tool Tip

Drag Object

Full Opacity Reduced Opacity Reduced Opacity Reduced Opacity & Invalid Badge Reduced Opacity

Modules animates into the area

just below insertion bar

Modules animates back to

the home area

Modules animates back to

the home area

Module comes to rest in new

area

Module comes back to rest

at full opacity

Modules comes back to

rest at full opacity

Modules slide up in a self-healing

transition to close hole

Drop Target

No insertion bar, just a gap No insertion bar, just a gap Insertion bar showing where it will drop No insertion bar, just a gap No insertion bar, just a gap & original hole

Insertion bar is removed as first

frame of animation

Insertion bar is removed

as first frame of animation

Insertion bar is removed

as first frame of

animation

Drag and Drop Modules - Interesting Moments Grid

Currently on beta.my.yahoo.com Nov-05

22

Page 23: Designing Rich Web Experience

principle. keep a light footprint.

pattern. remembered collections.

pattern. rating an object.pattern. in page action.

Netflix introduced in 2000. 2 billion+ ratings. 2 million per

day

Key to digg’s early success -

Kevin Rose

23

Page 24: Designing Rich Web Experience

keep a light footprint

Remove the “pain points”Shorten the pathKeep actions immediate and lightUse hover, blur, focus; avoid heavy events

24

Page 25: Designing Rich Web Experience

keep a light footprint

Design for engagementUse invitations & feedback

Treat it like an impusle aisleDo it in context

25

Page 26: Designing Rich Web Experience

principle. cross borders reluctantly.pattern. on-demand scrolling.

pattern. hover details.

pattern. in-context expand. pattern. inline assistant.

pattern. lightweight popup + lightbox.

26

Page 27: Designing Rich Web Experience

cross borders reluctantly

Rethink process flowsIt’s the user’s mental model, not the page modelEvery page jump is a mental speed bumpBut some things are still step-by-step

27

Page 28: Designing Rich Web Experience

cross borders reluctantly

Re-think pagingUse scrolling for “owned” data

Watch out for dual scroll bar issueHybrid of paging & scrolling

28

Page 29: Designing Rich Web Experience

cross borders relunctantly

Use OverlaysFor more information

Replace page transitionWhen editing an individual, more complex item

Be symmetricalTry not to disturb the page

29

Page 30: Designing Rich Web Experience

30

Page 31: Designing Rich Web Experience

cross borders relunctantly

Use in-context expandsFor editing part of a collectionNeed to see surrounding contextFor managing content modules

31

Page 32: Designing Rich Web Experience

cross borders relunctantly

Use real-estate creativelyUse slideoutsUse in-place zoomRemember the backstage

32

Page 33: Designing Rich Web Experience

Interactionkey principle

prefer direct, lightweight,

in-page interaction

33

Page 34: Designing Rich Web Experience

feedback principles

Interaction InfoFeedback

34

Page 35: Designing Rich Web Experience

principle. give live feedback.pattern. live suggest.

pattern. auto complete.

pattern. periodic refresh.

pattern. live previews.

pattern. busy indicator.

35

Page 36: Designing Rich Web Experience

give live feedback

Keep the goal in mindDesign for relevancyIs it narrowing or distracting

36

Page 37: Designing Rich Web Experience

give live feedback

Keep the goal in mindDesign for relevancyIs it narrowing or distracting?Use feedback to boost confidenceLet the user iterate where possible

37

Page 38: Designing Rich Web Experience

38

Page 39: Designing Rich Web Experience

give live feedback

Shape user perceptionMake time pass faster

Make application feel more responsiveContinuous feedback: just-in-time directions

39

Page 40: Designing Rich Web Experience

give live feedback

Prevent errors before-handOunce of preventive design worth pound of error-handling

Look before you leapUse live-previews

40

Page 41: Designing Rich Web Experience

give live feedback

Keep feedback focusedAvoid side-noise (peripheral distractions)Use laws of proximity in context feedbackRespect feedback bandwidth

41

Page 42: Designing Rich Web Experience

principle. offer an invitation.

pattern. hover invitation.

pattern. tooltip invitation + hover invitation + cursor invitation.

pattern. drag invitation. drop invitation.

pattern. tour invitation.

42

Page 43: Designing Rich Web Experience

offer an invitation

DiscoverabilityNo easy answerUse the hover to reveal interactionUse the familar to teach the newTours are generally a band-aidCan’t flag all interactions

43

Page 44: Designing Rich Web Experience

Bridge the new with the oldHyperlinks as actions

Reveal with hoversDrop down clues

offer an invitation

44

Page 45: Designing Rich Web Experience

offer an invitation

Make it invitingTreat it as a welcome mat

Use hover, cursor, tooltip, and pageKeep the noise down

45

Page 46: Designing Rich Web Experience

offer an invitation

Keep actions out of itLet the user feel free to exploreDon’t proselytize

46

Page 47: Designing Rich Web Experience

principle. show transitions.

pattern. fade transition + self-healing transition.

pattern. slide transition.

pattern. active spotlight.

pattern. zoom box.

47

Page 48: Designing Rich Web Experience

show transitions

Speak to the brainUnderstanding attention processing

48

Page 49: Designing Rich Web Experience

show transitions

Speak to the brainUnderstanding attention processingSending the wrong message

49

Page 50: Designing Rich Web Experience

show transitions

Less is more“Cut it in-half ” rule of thumb

Use “contrast knob” approach

50

Page 51: Designing Rich Web Experience

show transitions

What you can communicate...Speed up time

Slow down interactionShow state change

Show relationships between objectsFocus attention

51

Page 52: Designing Rich Web Experience

Feedbackkey principle

Provide invitations beforehand,transitions during,

and feedback after interaction

52

Page 53: Designing Rich Web Experience

information principles

Interaction InfoFeedback

53

Page 54: Designing Rich Web Experience

principle. think in objects.

pattern. shareable object.

54

Page 55: Designing Rich Web Experience

think in objects

55

Page 56: Designing Rich Web Experience

principle. tie information to interactivity.

pattern. multi-variate views.

56

Page 57: Designing Rich Web Experience

tie information to interactivity

Think “deeper interaction”Multi-variate datafocus + context

57

Page 58: Designing Rich Web Experience

tie information to interactivity

Think “deeper interaction”Multi-variate datafocus + contextInteresting relationships

58

Page 59: Designing Rich Web Experience

Think “deeper interaction”Multi-variate datafocus + contextInteresting relationshipsRelevant recommendations

59

Page 60: Designing Rich Web Experience

Infokey principle

Think in objects, tie information to interactivity

60

Page 61: Designing Rich Web Experience

key principles for richness

Feedback

Info

Interaction Prefer direct, lightweight, in-page interactions

Provide invitations beforehand,transitions during and feedback after interaction

Think in objects andtie information to interactivity

61

Page 62: Designing Rich Web Experience

My talk at 4pm: Anti-Patterns

big ball of mud. meandering way. borg idiom. tiny targets. mystery meat.

buried treasure. hover and cover. pogo stick navigation. novel notions.

against the flow. metaphor mismatch. double duty. linkitus. blind type.

windows aplenty. animation gone wild. misguided misdirections. unmarked hazards. missed

moments. missing scene. one at a time. non-symmetrical actions.

Note: anti-patterns denoted in bold are discussed in this talk.

62

Page 63: Designing Rich Web Experience

my blog. looksgoodworkswell.comthis prez. billwscott.com/share/presentations/2007/wb2.0/

NETFLIX is hiring!

UI EngineersVisual/Interaction DesignersGraphic Designer

63