Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Being Responsive — Intersystems Global Summit 2014

Being Responsive — Intersystems Global Summit 2014

Presented at Intersystems Global Summit 2014

Talk about how we need to break free of our illusions and rewire our brains in order to build better, more future-friendly products.

Jason Grigsby

March 17, 2014
Tweet

More Decks by Jason Grigsby

Other Decks in Technology

Transcript

  1. Technology Cycles - Wealth Creation / Destruction New Companies Often

    Win Big in New Cycles While Incumbents Often Falter Mainframe Computing 1960s Personal Computing 1980s Desktop Internet Computing 1990s Mobile Internet Computing 2000s Mini Computing 1970s New Winners New Winners New Winners New Winners Note: Winners from 1950s to 1980s based on Fortune 500 rankings (revenue-based), desktop Internet winners based on wealth created from 1995 to respective peak market capitalizations. Source: FactSet, Fortune, Morgan Stanley Research. Microsoft Cisco Intel Apple Oracle EMC Dell Compaq Google AOL eBay Yahoo! Yahoo! Japan Amazon.com Tencent Alibaba Baidu Rakuten Digital Equipment Data General HP Prime Computervision Wang Labs IBM NCR Control Data Sperry Honeywell Burroughs 16 You could be disrupted. Source: http://www.morganstanley.com/institutional/techresearch/mobile_internet_report122009.html
  2. Lines between device classes are blurring Model Type Size Size

    Display Resolution Resolution Viewport Viewport W H W H W H Samsung Galaxy Note 2 Phone 3.17” 5.95” 5.5” 720 1280 360 640 Motorola RAZR HD Phone 2.67” 5.19” 4.7” 720 1280 360 519 Motorola Atrix HD Phone 2.75” 5.26” 4.5” 720 1280 540 812 HTC Droid DNA Phone 2.78” 5.5” 5” 1080 1920 360 640 Nexus 7 Tablet 4.72” 7.81” 7” 800 1280 600 793 Kindle Fire Tablet 4.72” 7.44” 7” 600 1024 600 819 Kindle Fire HD Tablet 5.4” 7.6” 7” 800 1280 533 731
  3. 640 px 600 px 519 px 640 px 622 px

    533 px 812 px Which are phones and which are tablets?
  4. Small screen assets Large screen assets Progressive enhancement based on

    screen size Mobile First Responsive Web Design is a technical approach for responsible responsive designs.
  5. We often dismiss as unlikely the idea that someone will

    want to use our service on a small screen.
  6. It’s fairly certain that the highest-value use will stay predominantly

    on desktop. —Jakob Nielsen http://www.flickr.com/photos/dplanet/82899080/
  7. Most complex tasks have vastly better user experience on the

    desktop and thus will be performed there… Yes, you might enter a stock trade with your broker's mobile app, but you'll research new mutual funds on the desktop. —Jakob Nielsen
  8. 80% during misc downtime 76% while waiting in lines 86%

    while watching TV 69% for point of sale research http://www.flickr.com/photos/carbonnyc/5140154965
  9. TMI

  10. How many cars are sold through eBay’s iPhone app each

    week? http://techcrunch.com/2011/10/09/ebay-vp-steve-yankovich-en-route-to-4b-in-gross-mobile-sales-tctv/
  11. How many cars are sold through eBay’s iPhone app each

    week? 2,600 http://techcrunch.com/2011/10/09/ebay-vp-steve-yankovich-en-route-to-4b-in-gross-mobile-sales-tctv/
  12. In late 2008, after I had left the company, most

    of the eBay Mobile team was laid off or re-assigned to other parts of the company. Executives wanted to focus on the “core” of the business, and eBay Mobile was evidently not considered “core”. —Alan Lewis, Original developer of eBay iPhone App http://alanlewis.typepad.com/weblog/2011/01/ebay-for-iphone-why-it-almost-didnt-happen.html
  13. But if there’s one thing I’ve learned in observing people

    on their mobile devices, it’s that they’ll do anything on mobile if they have the need. Write long emails? Check. Manage complex sets of information? Check. And the list goes on. If people want to do it, they’ll do it on mobile -especially when it’s their only or most convenient option. —Luke Wroblewski lukew.com/ff/entry.asp?1333
  14. is difficult when we spend so much time on our

    PCs. http://www.flickr.com/photos/goobi/4021009835/
  15. Major Breakpoint 1 (media query in document head) Major Breakpoint

    3 (media query in document head) 320 px to 720 px wide 720 px to 1024 px major breakpoints Example major layout changes 320 720 Major Breakpoint 2 (media query in document head) nothing is here...but that’s ok! (P) = Portrait (L) = Landscape (L*) = Landscape w/ native viewport adaptation < 320 px wide and/or unable to understand further instructions 1024 iPhone (P) many Android (P) many BlackBerry S60 QWERTY Most S60 (L) S40 QWERTY some tablets most NetBooks many Desktops http://www.slideshare.net/yiibu/pragmatic-responsive-design
  16. Major Breakpoint 3 (media query in document head) iPhone (L*)

    Android (L*) some Symbian touch (L) some tablets (L) some Symbian touch (L) 640 768 360 720 Major Breakpoint 1 (media query in document head) Major Breakpoint 2 (media query in document head) 720 px to 1024 px 320 px to 720 px wide nothing is here...but that’s ok! 320 minor breakpoints Example Symbian touch (P) (P) = Portrait (L) = Landscape (L*) = Landscape w/ native viewport adaptation iPhone (P) many Android (P) many BlackBerry S60 QWERTY Most S60 (L) S40 QWERTY < 320 px wide and/or unable to understand further instructions iPad (P) some Android tablets (P) Minor Breakpoint (@media) 1024 Minor Breakpoint (@media) Minor Breakpoint (@media) Minor Breakpoint (@media) 480 some tablets most NetBooks many Desktops content-related tweaks http://www.slideshare.net/yiibu/pragmatic-responsive-design
  17. iPhone (L*) Android (L*) some Symbian touch (L) some tablets

    (L) Minor Breakpoint (@media) Major Breakpoint 3 (media query in document head) 480 640 768 360 Symbian touch (P) 720 Major Breakpoint 1 (media query in document head) Major Breakpoint 2 (media query in document head) 720 px to 1024 px 320 px to 720 px wide nothing is here...but that’s ok! 320 240 Minor Breakpoint for small devices w/media query support < 320 px wide and/or unable to understand further instructions ...and so on Example some Symbian touch (L) (P) = Portrait (L) = Landscape (L*) = Landscape w/ native viewport adaptation iPad (P) some Android tablets (P) 1024 TVs Minor Breakpoint (@media) Minor Breakpoint (@media) Minor Breakpoint (@media) iPhone (P) many Android (P) many BlackBerry S60 QWERTY Most S60 (L) S40 QWERTY some Android (P) many S40 (P) most S60 (P) some tablets most NetBooks many Desktops http://www.slideshare.net/yiibu/pragmatic-responsive-design
  18. as you can see, this has the potential to get

    out of hand... iPhone (L*) Android (L*) some Symbian touch (L) some tablets (L) Minor Breakpoint (@media) some tablets (L) 640 768 360 Symbian touch (P) 720 Major Breakpoint 1 (media query in document head) Major Breakpoint 2 (media query in document head) TVs 720 px to 1024 px 320 px to 720 px wide nothing is here...but that’s ok! 320 240 Minor Breakpoint for small devices w/media query support some Android (P) many S40 (P) most S60 (P) < 320 px wide and/or unable to understand further instructions some Symbian touch (L) iPad (P) some Android tablets (P) Minor Breakpoints (@media) some tablets (L) 1280 800 Minor Breakpoint (@media) 600 some tablets (P) some tablets most NetBooks many Desktops 1366 many laptops Minor Breakpoint (@media) Minor Breakpoint (@media) Minor Breakpoint (@media) Major Breakpoint 3 (media query in document head) iPhone (P) many Android (P) many BlackBerry S60 QWERTY Most S60 (L) S40 QWERTY Minor Breakpoint (@media) 480 1024 http://www.slideshare.net/yiibu/pragmatic-responsive-design
  19. ! download " view on github # view demo what

    it is Pattern Lab is a collection of tools to help you create atomic design systems. pattern lab documentation about resources demo on github pattern lab atoms molecules organisms templates pages create atomic design systems
  20. mobile desktop THE ART OF WEB DEVELOPMENT THE ART OF

    WEB DEVELOPMENT Web widgets THE ART OF WEB DEVELOPMENT THE ART OF WEB DEVELOPMENT Mobile widgets
  21. It’s not that we’re technically incapable, but adapting a phone

    UI to a tablet UI is not so dissimilar from trying to automatically adapt desktop UI to a phone. They are fundamentally different platforms with different usability considerations, and something that makes sense on phones may or may not belong on tablets. —Todd Anglin, Kendo UI http://www.kendoui.com/blogs/teamblog/posts/12-09-11/universal_mobile_apps_with_html5_and_kendo_ui.aspx
  22. And keyboard and mouse are what we envision work is.

    http://www.flickr.com/photos/royalsapien/2387707860
  23. We’ve started letting go of some of our mistaken assumptions.

    http://www.flickr.com/photos/paulocarrillo/124755065/
  24. = =

  25. We can no longer make assumptions about input based on

    screen size or form factor. And we probably never should have.
  26. Web Speech API Specification 19 October 2012 Editors: Glen Shires,

    Google Inc. Hans Wennborg, Google Inc. Please refer to the errata for this document, which may include some normative corrections. Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech API Community Group under the W3C Community Final Specification Agreement (FSA). A human-readable summary is available. Abstract This specification defines a JavaScript API to enable web developers to incorporate speech recognition and synthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and to use speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows web pages to control activation and timing and to handle results and alternatives. Status of This Document This specification was published by the Speech API Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA) other conditions apply. Learn more about W3C Community and Business Groups.
  27. Please refer to the errata for this document, which may

    include some normative corrections. Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech API Community Group under the W3C Community Final Specification Agreement (FSA). A human-readable summary is available. Abstract This specification defines a JavaScript API to enable web developers to incorporate speech recognition and synthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and to use speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows web pages to control activation and timing and to handle results and alternatives. Status of This Document This specification was published by the Speech API Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA) other conditions apply. Learn more about W3C Community and Business Groups. All feedback is welcome. Table of Contents 1 Conformance requirements 2 Introduction 3 Use Cases 4 Security and privacy considerations 5 API Description 5.1 The SpeechRecognition Interface 5.1.1 SpeechRecognition Attributes 5.1.2 SpeechRecognition Methods 5.1.3 SpeechRecognition Events 5.1.4 SpeechRecognitionError 5.1.5 SpeechRecognitionAlternative 5.1.6 SpeechRecognitionResult
  28. Please refer to the errata for this document, which may

    include some normative corrections. Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech API Community Group under the W3C Community Final Specification Agreement (FSA). A human-readable summary is available. Abstract This specification defines a JavaScript API to enable web developers to incorporate speech recognition and synthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and to use speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows web pages to control activation and timing and to handle results and alternatives. Status of This Document This specification was published by the Speech API Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA) other conditions apply. Learn more about W3C Community and Business Groups. All feedback is welcome. Table of Contents 1 Conformance requirements 2 Introduction 3 Use Cases 4 Security and privacy considerations 5 API Description 5.1 The SpeechRecognition Interface 5.1.1 SpeechRecognition Attributes 5.1.2 SpeechRecognition Methods 5.1.3 SpeechRecognition Events 5.1.4 SpeechRecognitionError 5.1.5 SpeechRecognitionAlternative 5.1.6 SpeechRecognitionResult Please refer to the errata for this document, which may include some normative corrections. Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech API Community Group under the W3C Community Final Specification Agreement (FSA). A human-readable summary is available. Abstract This specification defines a JavaScript API to enable web developers to incorporate speech recognition and synthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and to use speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows web pages to control activation and timing and to handle results and alternatives. Status of This Document This specification was published by the Speech API Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA) other conditions apply. Learn more about W3C Community and Business Groups. All feedback is welcome. Table of Contents 1 Conformance requirements 2 Introduction 3 Use Cases 4 Security and privacy considerations 5 API Description 5.1 The SpeechRecognition Interface 5.1.1 SpeechRecognition Attributes 5.1.2 SpeechRecognition Methods 5.1.3 SpeechRecognition Events 5.1.4 SpeechRecognitionError 5.1.5 SpeechRecognitionAlternative 5.1.6 SpeechRecognitionResult
  29. Please refer to the errata for this document, which may

    include some normative corrections. Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech API Community Group under the W3C Community Final Specification Agreement (FSA). A human-readable summary is available. Abstract This specification defines a JavaScript API to enable web developers to incorporate speech recognition and synthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and to use speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows web pages to control activation and timing and to handle results and alternatives. Status of This Document This specification was published by the Speech API Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA) other conditions apply. Learn more about W3C Community and Business Groups. All feedback is welcome. Table of Contents 1 Conformance requirements 2 Introduction 3 Use Cases 4 Security and privacy considerations 5 API Description 5.1 The SpeechRecognition Interface 5.1.1 SpeechRecognition Attributes 5.1.2 SpeechRecognition Methods 5.1.3 SpeechRecognition Events 5.1.4 SpeechRecognitionError 5.1.5 SpeechRecognitionAlternative 5.1.6 SpeechRecognitionResult Please refer to the errata for this document, which may include some normative corrections. Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech API Community Group under the W3C Community Final Specification Agreement (FSA). A human-readable summary is available. Abstract This specification defines a JavaScript API to enable web developers to incorporate speech recognition and synthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and to use speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows web pages to control activation and timing and to handle results and alternatives. Status of This Document This specification was published by the Speech API Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA) other conditions apply. Learn more about W3C Community and Business Groups. All feedback is welcome. Table of Contents 1 Conformance requirements 2 Introduction 3 Use Cases 4 Security and privacy considerations 5 API Description 5.1 The SpeechRecognition Interface 5.1.1 SpeechRecognition Attributes 5.1.2 SpeechRecognition Methods 5.1.3 SpeechRecognition Events 5.1.4 SpeechRecognitionError 5.1.5 SpeechRecognitionAlternative 5.1.6 SpeechRecognitionResult
  30. Please refer to the errata for this document, which may

    include some normative corrections. Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech API Community Group under the W3C Community Final Specification Agreement (FSA). A human-readable summary is available. Abstract This specification defines a JavaScript API to enable web developers to incorporate speech recognition and synthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and to use speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows web pages to control activation and timing and to handle results and alternatives. Status of This Document This specification was published by the Speech API Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA) other conditions apply. Learn more about W3C Community and Business Groups. All feedback is welcome. Table of Contents 1 Conformance requirements 2 Introduction 3 Use Cases 4 Security and privacy considerations 5 API Description 5.1 The SpeechRecognition Interface 5.1.1 SpeechRecognition Attributes 5.1.2 SpeechRecognition Methods 5.1.3 SpeechRecognition Events 5.1.4 SpeechRecognitionError 5.1.5 SpeechRecognitionAlternative 5.1.6 SpeechRecognitionResult Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech API Community Group under the W3C Community Final Specification Agreement (FSA). A human-readable summary is available. Abstract This specification defines a JavaScript API to enable web developers to incorporate speech recognition and synthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and to use speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows web pages to control activation and timing and to handle results and alternatives. Status of This Document This specification was published by the Speech API Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA) other conditions apply. Learn more about W3C Community and Business Groups. All feedback is welcome. Table of Contents 1 Conformance requirements 2 Introduction 3 Use Cases 4 Security and privacy considerations 5 API Description 5.1 The SpeechRecognition Interface 5.1.1 SpeechRecognition Attributes 5.1.2 SpeechRecognition Methods 5.1.3 SpeechRecognition Events
  31. Please refer to the errata for this document, which may

    include some normative corrections. Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech API Community Group under the W3C Community Final Specification Agreement (FSA). A human-readable summary is available. Abstract This specification defines a JavaScript API to enable web developers to incorporate speech recognition and synthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and to use speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows web pages to control activation and timing and to handle results and alternatives. Status of This Document This specification was published by the Speech API Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA) other conditions apply. Learn more about W3C Community and Business Groups. All feedback is welcome. Table of Contents 1 Conformance requirements 2 Introduction 3 Use Cases 4 Security and privacy considerations 5 API Description 5.1 The SpeechRecognition Interface 5.1.1 SpeechRecognition Attributes 5.1.2 SpeechRecognition Methods 5.1.3 SpeechRecognition Events 5.1.4 SpeechRecognitionError 5.1.5 SpeechRecognitionAlternative 5.1.6 SpeechRecognitionResult Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech API Community Group under the W3C Community Final Specification Agreement (FSA). A human-readable summary is available. Abstract This specification defines a JavaScript API to enable web developers to incorporate speech recognition and synthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and to use speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows web pages to control activation and timing and to handle results and alternatives. Status of This Document This specification was published by the Speech API Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA) other conditions apply. Learn more about W3C Community and Business Groups. All feedback is welcome. Table of Contents 1 Conformance requirements 2 Introduction 3 Use Cases 4 Security and privacy considerations 5 API Description 5.1 The SpeechRecognition Interface 5.1.1 SpeechRecognition Attributes 5.1.2 SpeechRecognition Methods 5.1.3 SpeechRecognition Events
  32. Amazing, but too new to know what, if anything, this

    technology will mean for the web.
  33. Higher precision with mouse means smaller targets possible Hover state

    Less precise than mouse and requires larger touch targets Typing easier for many No hover state Typing often more difficult
  34. Higher precision with mouse means smaller targets possible Hover state

    Less precise than mouse and requires larger touch targets Typing easier for many No hover state Typing often more difficult Right clicking and “power” tools Single and multi-touch gestures
  35. Whatever you may think, it currently isn't possible to reliably

    detect whether or not the current device has a touchscreen, from within the browser. —Stu Cox, You Can’t Reliably Detect a Touch Screen http://www.stucox.com/blog/you-cant-detect-a-touchscreen/
  36. Chrome has entertained idea of enabling touch by default. https://code.google.com/p/chromium/issues/detail?id=159527

    https://docs.google.com/a/cloudfour.com/presentation/d/1-n1qyzewpagREbzW2zm0wOalq33UhbtbSkWf9mEdly8/edit#slide=id.gc2d80e5b_171
  37. After poking at this problem for a few weeks, my

    conclusion is: every desktop UI should be designed for touch now. When any desktop machine could have a touch interface, we have to proceed as if they all do. —Josh Clark http://globalmoxie.com/blog/desktop-touch-design.shtml
  38. http://ie.microsoft.com/testdrive/ieblog/2011/Sep/20_TouchInputforIE10andMetrostyleApps_1.png http://www.w3.org/TR/pointerevents/ http://blog.webplatform.org/2013/02/pointing-toward-the-future/ New Pointer Events spec normalizes touch and

    mouse Pointer Events builds on the DOM event model to offer a new way to handle input on the web, enabling developers to build touch-first experiences that work with mouse, pen, and other pointing devices as well…They are also designed from the ground up to allow modern browsers to accelerate the touch-surface performance, leading to a smoother user experience.
  39. What about those who won’t let go of their “power”

    interfaces? http://www.flickr.com/photos/ecos/4092571213/
  40. Th Dream Experience - … Uploaded 2 years ago More

    Of The Dream Exp… Uploaded 2 years ago The Dream Experience -… Uploaded 2 years ago The Dream Experience … Uploaded 2 years ago The Love King Breaks It… Uploaded 2 years ago War Paint for Trees From Lincoln Motor Company Join Log In Create Watch Upload Search s [ ] – VIDEOS Vimeo Couch Mode
  41. Couch Mode + See all Centric TV’s videos / Recently

    viewed / Related videos Th Dream Experience - … Uploaded 2 years ago More Of The Dream Exp… Uploaded 2 years ago The Dream Experience -… Uploaded 2 years ago The Dream Experience … Uploaded 2 years ago The Love King Breaks It… Uploaded 2 years ago PROMOTED War Paint for Trees From Lincoln Motor Company Join Log In Create Watch Upload Search s [ ] – VIDEOS Vimeo Couch Mode
  42. Couch Mode + See all Centric TV’s videos / Recently

    viewed / Related videos Th Dream Experience - … Uploaded 2 years ago More Of The Dream Exp… Uploaded 2 years ago The Dream Experience -… Uploaded 2 years ago The Dream Experience … Uploaded 2 years ago The Love King Breaks It… Uploaded 2 years ago PROMOTED War Paint for Trees From Lincoln Motor Company Join Log In Create Watch Upload Search s [ ] – VIDEOS Couch Mode + See all Centric TV’s videos / Recently viewed / Related videos Th Dream Experience - … Uploaded 2 years ago More Of The Dream Exp… Uploaded 2 years ago The Dream Experience -… Uploaded 2 years ago The Dream Experience … Uploaded 2 years ago The Love King Breaks It… Uploaded 2 years ago PROMOTED War Paint for Trees From Lincoln Motor Company Join Log In Create Watch Upload Search s [ ] – VIDEOS Vimeo Couch Mode
  43. The key benefit of this approach: You’re designing for user

    need not for a specific form factor or input.
  44. Learn how to let go of the illusions that comfort

    us. http://www.flickr.com/photos/garibaldi/303085857/
  45. This is the web as it should be. As it

    wants to be. The web in its natural state. http://www.flickr.com/photos/25062265@N06/6069101123
  46. If you don’t adapt, then you are ripe for disruption.

    http://www.flickr.com/photos/gsfc/7521155076/
  47. Thank You! Special thanks to Luke Wroblewski, Eric Bidelman and

    Flickr users for generously sharing their photos under creative commons license. Slides: http://bit.ly/grigs-intersystems14