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 full-size slide

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

    View full-size 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 full-size slide

  4. 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 full-size slide

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

    View full-size slide

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

    View full-size slide

  7. PREFACE: WHAT DOES
    "PRODUCTION" MEAN?

    View full-size slide

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

    View full-size slide

  9. 1. WHAT IS A WIDGET?

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  12. MORE WIDGETS
    ⬇️
    MORE INTERACTION
    ⬇️
    MORE MANIPULATION

    View full-size slide

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

    View full-size slide

  14. 2. WEB APPS ARE (OFTEN)
    FRUSTRATING

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  17. ⏳ LONG LOAD TIME

    View full-size slide

  18. ⏳ LONG LOAD TIME

    View full-size slide

  19. 😵 VISUAL CLUTTER

    View full-size slide

  20. 😵 VISUAL CLUTTER

    View full-size slide

  21. 😵 VISUAL CLUTTER

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  24. ⛔️ ACCESSIBILITY ISSUE

    View full-size slide

  25. ⛔️ ACCESSIBILITY ISSUE

    View full-size slide

  26. ⛔️ ACCESSIBILITY ISSUE

    View full-size slide

  27. 3. WHY IS THIS HAPPENING?

    View full-size slide

  28. 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 full-size slide

  29. {SHINY} DEVS BE LIKE

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  33. 👶 EASY TO INTEGRATE
    DT::dataTable

    leaflet::leaflet

    plotly::ggplotly

    dygraphs::dygraph

    ...

    View full-size slide

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

    View full-size slide

  35. DEV COMPLEXITY VS USER COMPLEXITY

    View full-size slide

  36. 4. WHERE DO WE GO NEXT?

    View full-size slide

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

    View full-size slide

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

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

    View full-size slide

  39. 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 full-size slide

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

    View full-size slide

  41. 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 full-size slide

  42. 📖 ENGINEERING-SHINY.ORG/

    View full-size slide

  43. 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 full-size slide