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

DESTROY ALL WIDGETS

Colin Fay
October 07, 2022

DESTROY ALL WIDGETS

Talk given during Shiny In Production, 2022-10-07, Newcastle UK

Colin Fay

October 07, 2022
Tweet

More Decks by Colin Fay

Other Decks in Technology

Transcript

  1. DESTROY ALL WIDGETS!
    SHINY IN PRODUCTION / 2022-10-07
    COLIN FAY

    View Slide

  2. 👩‍🔬 LET'S START WITH AN
    EXPERIMENT

    View Slide

  3. DOES THIS SOUNDS FAMILIAR?
    🏃‍♀️ I REGISTERED FOR A RACE
    ⏳ ON THE WAITING LIST
    🤔 I CHECK THE WAITING LIST EVERY DAY
    📱 HERE IS WHAT IT LOOKS LIKE

    View Slide

  4. 0:00

    View Slide

  5. THE OLDER WE GET,

    THE MORE FRUSTRATED WE ARE
    WITH THE INTERNET...
    (BECAUSE IT TAKES US SO LONG TO SCROLL TO
    OUR BIRTH YEAR)

    View Slide

  6. View Slide

  7. View Slide

  8. DISCLAIMER: I OBVIOUSLY DON'T THINK WE
    SHOULD DESTROY ALL WIDGETS

    View Slide

  9. TODAY'S MENU
    WHAT IS A WIDGET?
    WEB APPS ARE (OFTEN) FRUSTRATING
    WHY THIS IS HAPPENING
    WHERE DO WE GO NEXT?

    View Slide

  10. PREFACE: WHAT DOES
    "PRODUCTION" MEAN?

    View Slide

  11. A SOFTWARE IS IN PRODUCTION WHEN...
    IT'S USED
    IT'S RELIED UPON
    IT HAS REAL LIFE IMPACT

    View Slide

  12. 1. WHAT IS A WIDGET?

    View Slide

  13. WHAT IS A WIDGET, EXACTLY
    SOFTWARE COMPONENTS THAT A COMPUTER USER
    INTERACTS WITH THROUGH DIRECT MANIPULATION TO
    READ OR EDIT INFORMATION

    View Slide

  14. WHAT IS A WIDGET, EXACTLY
    SOFTWARE COMPONENTS THAT A COMPUTER USER
    INTERACTS WITH THROUGH DIRECT MANIPULATION TO
    READ OR EDIT INFORMATION

    View Slide

  15. MORE WIDGETS
    ⬇️
    MORE INTERACTION
    ⬇️
    MORE MANIPULATION

    View Slide

  16. MORE IS NOT ALWAYS BETTER
    (EXCEPT WITH MEMES)

    View Slide

  17. 2. WEB APPS ARE (OFTEN)
    FRUSTRATING

    View Slide

  18. View Slide

  19. WEB APPS ARE (OFTEN) FRUSTRATING
    ⏳ LONG LOAD TIME
    😵 VISUAL CLUTTER
    ⛔️ ACCESSIBILITY ISSUE

    View Slide

  20. ⏳ LONG LOAD TIME
    ⏱ TIME CONSUMING
    😡 ENDURANCE CONSUMING
    💸 DATA CONSUMING

    View Slide

  21. ⏳ LONG LOAD TIME

    View Slide

  22. ⏳ LONG LOAD TIME

    View Slide

  23. 😵 VISUAL CLUTTER

    View Slide

  24. 😵 VISUAL CLUTTER

    View Slide

  25. 😵 VISUAL CLUTTER

    View Slide

  26. ⛔️ ACCESSIBILITY ISSUE
    "THE WEB IS FUNDAMENTALLY DESIGNED TO WORK FOR
    ALL PEOPLE, WHATEVER THEIR HARDWARE, SOFTWARE,
    LANGUAGE, LOCATION, OR ABILITY."

    View Slide

  27. ⛔️ ACCESSIBILITY ISSUE
    🤖SCREEN READERS
    🌈 COLORBLINDNESS
    ☝️ MOBILITY ISSUES

    View Slide

  28. ⛔️ ACCESSIBILITY ISSUE

    View Slide

  29. ⛔️ ACCESSIBILITY ISSUE

    View Slide

  30. ⛔️ ACCESSIBILITY ISSUE

    View Slide

  31. 3. WHY IS THIS HAPPENING?

    View Slide

  32. View Slide

  33. THERE ONCE WAS A {SHINY} APP.
    AND THEN, THE DEV BROWSES THE INTERNET.
    AND FINDS A WIDGET.
    And another widget.
    And another widget.
    And another widget.
    And another widget.
    And ...

    View Slide

  34. {SHINY} DEVS BE LIKE

    View Slide

  35. LET ME SHOW YOU AN EXAMPLE
    🔗 HTTPS://CONNECT.THINKR.FR/DAW/

    View Slide

  36. View Slide

  37. WHY ALL THE WIDGETS
    📝 REQUIRED / DESIRED
    👶 (VERY) EASY TO INTEGRATE
    😎 COOL

    View Slide

  38. 📝 REQUIRED / DESIRED
    ✅ NEEDED FOR INTERACTIVITY
    😍 OFTEN DESIRED BY THE USERS
    🧟‍♀️ THE CLIENT SAID SO

    View Slide

  39. 👶 EASY TO INTEGRATE
    DT::dataTable

    leaflet::leaflet

    plotly::ggplotly

    dygraphs::dygraph

    ...

    View Slide

  40. 😎 COOL

    View Slide

  41. DEV COMPLEXITY VS USER COMPLEXITY
    EASY FOR THE USER
    ↔️ COMPLEX FOR THE DEV
    EASY FOR THE DEV
    ↔️ COMPLEX FOR THE USER

    View Slide

  42. DEV COMPLEXITY VS USER COMPLEXITY

    View Slide

  43. 4. WHERE DO WE GO NEXT?

    View Slide

  44. THE INTERNET IS NOT FRUSTRATING
    BECAUSE YOU'RE GETTING OLDER
    BUT BECAUSE IT'S DESIGNED WITHOUT "USER
    EXPERIENCE FIRST" IN MIND.

    View Slide

  45. SOMEONE ONCE TOLD ME:
    "IF THERE IS SOMETHING (PEOPLE) ARE

    GOOD AT, IT'S 'TOO MUCH OF A GOOD THING'."
    @CMASTICATION

    View Slide

  46. WIDGETS ARE AWESOME...
    THEY ARE AT THE ROOT OF ALL WEB APPLICATION
    GREAT FOR INTERACTIVE DATA EXPLORATION
    COOL AND EASY TO INTEGREATE AS A DEVELOPER

    View Slide

  47. ... UNTIL THEY ARE NOT
    (VERY) SLOW LOAD TIME
    HARDER MANIPULATION
    HARDER INTERACTION

    View Slide

  48. View Slide

  49. 1. YOU'RE NOT YOUR MAIN USERS.

    PUT YOURSELF IN THEIR SHOES.
    2. SIMPLE IS BEAUTIFUL & ACCESSIBILY IS KING
    3. "IT'S EASIER" IS NEVER A GOOD REASON
    4. IF YOUR UX IS BAD, YOUR APP IS BAD

    View Slide

  50. 📖 ENGINEERING-SHINY.ORG/

    View Slide

  51. THX! QUESTIONS?
    FIND ME ONLINE
    [email protected]
    https://twitter.com/_colinfay
    https://twitter.com/thinkr_fr
    https://github.com/ColinFay
    https://thinkr.fr/
    https://rtask.thinkr.fr/
    https://colinfay.me/

    View Slide