Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
DESTROY ALL WIDGETS
Colin Fay
October 07, 2022
Technology
0
200
DESTROY ALL WIDGETS
Talk given during Shiny In Production, 2022-10-07, Newcastle UK
Colin Fay
October 07, 2022
Tweet
Share
More Decks by Colin Fay
See All by Colin Fay
Building Multi-Page {shiny} apps with {brochure}
colinfay
0
130
Let's talk about accessibility
colinfay
0
76
[Workshop] Good Practices for {shiny} development with {golem}
colinfay
0
550
Engineering {shiny} with {golem} - WhyR
colinfay
0
640
An overview of testing in R
colinfay
0
770
Everything not Tested Will Eventually Fail
colinfay
0
250
[eRum 2020] Testing Shiny: Why, what, and how
colinfay
0
990
[BristolR] Engineering Production-Grade Shiny Apps with {golem}
colinfay
0
320
[Keynote] Prod is not a four-letter word
colinfay
0
890
Other Decks in Technology
See All in Technology
20230123_FinJAWS
takuyay0ne
0
120
03_ユーザビリティテスト
kouzoukaikaku
0
200
SRE Lounge 2023/SRE Lounge 2023
lmi
0
170
WebLogic Server for OCI 概要
oracle4engineer
PRO
3
870
OpenShiftのリリースノートを整理してみた
loftkun
2
300
CUEとKubernetesカスタムオペレータを用いた新しいネットワークコントローラをつくってみた
hrk091
1
270
01_ユーザーリサーチ実施の進め方
kouzoukaikaku
0
220
DNS権威サーバのクラウドサービス向けに行われた攻撃および対策 / DNS Pseudo-Random Subdomain Attack and mitigations
kazeburo
5
1.2k
もし本番ネットワークをまるごと仮想環境に”コピー”できたらうれしいですか? / janog51
corestate55
0
350
re:Invent2022 前後の Amazon EventBridge のアップデートを踏まえつつ、情シスの仕事をより楽しくしたい話。 / EventBridge for Information Systems Department
_kensh
2
670
マイクロサービス宣言から8年 振り返りとこれから / Eight Years After the Microservices Declaration A Look Back and A Look Ahead
eisuke
2
150
私見「UNIXの考え方」/20230124-kameda-unix-phylosophy
opelab
0
160
Featured
See All Featured
The Web Native Designer (August 2011)
paulrobertlloyd
76
2.2k
Ruby is Unlike a Banana
tanoku
93
9.5k
Building Adaptive Systems
keathley
27
1.3k
Six Lessons from altMBA
skipperchong
15
2.3k
Side Projects
sachag
451
37k
What the flash - Photography Introduction
edds
64
10k
Automating Front-end Workflow
addyosmani
1351
200k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
13
1.1k
Thoughts on Productivity
jonyablonski
49
2.7k
Documentation Writing (for coders)
carmenintech
51
2.9k
jQuery: Nuts, Bolts and Bling
dougneiner
57
6.6k
What's new in Ruby 2.0
geeforr
336
30k
Transcript
DESTROY ALL WIDGETS! SHINY IN PRODUCTION / 2022-10-07 COLIN FAY
👩🔬 LET'S START WITH AN EXPERIMENT
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
0:00
THE OLDER WE GET, THE MORE FRUSTRATED WE ARE WITH
THE INTERNET... (BECAUSE IT TAKES US SO LONG TO SCROLL TO OUR BIRTH YEAR)
None
None
DISCLAIMER: I OBVIOUSLY DON'T THINK WE SHOULD DESTROY ALL WIDGETS
TODAY'S MENU WHAT IS A WIDGET? WEB APPS ARE (OFTEN)
FRUSTRATING WHY THIS IS HAPPENING WHERE DO WE GO NEXT?
PREFACE: WHAT DOES "PRODUCTION" MEAN?
A SOFTWARE IS IN PRODUCTION WHEN... IT'S USED IT'S RELIED
UPON IT HAS REAL LIFE IMPACT
1. WHAT IS A WIDGET?
WHAT IS A WIDGET, EXACTLY SOFTWARE COMPONENTS THAT A COMPUTER
USER INTERACTS WITH THROUGH DIRECT MANIPULATION TO READ OR EDIT INFORMATION
WHAT IS A WIDGET, EXACTLY SOFTWARE COMPONENTS THAT A COMPUTER
USER INTERACTS WITH THROUGH DIRECT MANIPULATION TO READ OR EDIT INFORMATION
MORE WIDGETS ⬇️ MORE INTERACTION ⬇️ MORE MANIPULATION
MORE IS NOT ALWAYS BETTER (EXCEPT WITH MEMES)
2. WEB APPS ARE (OFTEN) FRUSTRATING
None
WEB APPS ARE (OFTEN) FRUSTRATING ⏳ LONG LOAD TIME 😵
VISUAL CLUTTER ⛔️ ACCESSIBILITY ISSUE
⏳ LONG LOAD TIME ⏱ TIME CONSUMING 😡 ENDURANCE CONSUMING
💸 DATA CONSUMING
⏳ LONG LOAD TIME
⏳ LONG LOAD TIME
😵 VISUAL CLUTTER
😵 VISUAL CLUTTER
😵 VISUAL CLUTTER
⛔️ ACCESSIBILITY ISSUE "THE WEB IS FUNDAMENTALLY DESIGNED TO WORK
FOR ALL PEOPLE, WHATEVER THEIR HARDWARE, SOFTWARE, LANGUAGE, LOCATION, OR ABILITY."
⛔️ ACCESSIBILITY ISSUE 🤖SCREEN READERS 🌈 COLORBLINDNESS ☝️ MOBILITY ISSUES
⛔️ ACCESSIBILITY ISSUE
⛔️ ACCESSIBILITY ISSUE
⛔️ ACCESSIBILITY ISSUE
3. WHY IS THIS HAPPENING?
None
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 ...
{SHINY} DEVS BE LIKE
LET ME SHOW YOU AN EXAMPLE 🔗 HTTPS://CONNECT.THINKR.FR/DAW/
None
WHY ALL THE WIDGETS 📝 REQUIRED / DESIRED 👶 (VERY)
EASY TO INTEGRATE 😎 COOL
📝 REQUIRED / DESIRED ✅ NEEDED FOR INTERACTIVITY 😍 OFTEN
DESIRED BY THE USERS 🧟♀️ THE CLIENT SAID SO
👶 EASY TO INTEGRATE DT::dataTable leaflet::leaflet plotly::ggplotly dygraphs::dygraph ...
😎 COOL
DEV COMPLEXITY VS USER COMPLEXITY EASY FOR THE USER ↔️
COMPLEX FOR THE DEV EASY FOR THE DEV ↔️ COMPLEX FOR THE USER
DEV COMPLEXITY VS USER COMPLEXITY
4. WHERE DO WE GO NEXT?
THE INTERNET IS NOT FRUSTRATING BECAUSE YOU'RE GETTING OLDER BUT
BECAUSE IT'S DESIGNED WITHOUT "USER EXPERIENCE FIRST" IN MIND.
SOMEONE ONCE TOLD ME: "IF THERE IS SOMETHING (PEOPLE) ARE
GOOD AT, IT'S 'TOO MUCH OF A GOOD THING'." @CMASTICATION
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
... UNTIL THEY ARE NOT (VERY) SLOW LOAD TIME HARDER
MANIPULATION HARDER INTERACTION
None
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
📖 ENGINEERING-SHINY.ORG/
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/