Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DESTROY ALL WIDGETS
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Colin Fay
October 07, 2022
Technology
510
0
Share
DESTROY ALL WIDGETS
Talk given during Shiny In Production, 2022-10-07, Newcastle UK
Colin Fay
October 07, 2022
More Decks by Colin Fay
See All by Colin Fay
After {shiny}: The Future of Mobile Apps with R
colinfay
0
120
Beyond {shiny}: The Future of Mobile Apps with R
colinfay
1
700
[Keynote] Production is like ultra running: brutal, ungrateful, but worth every step
colinfay
0
280
Building Multi-Page {shiny} apps with {brochure}
colinfay
0
260
Let's talk about accessibility
colinfay
0
190
[Workshop] Good Practices for {shiny} development with {golem}
colinfay
0
1.3k
Engineering {shiny} with {golem} - WhyR
colinfay
0
1.1k
An overview of testing in R
colinfay
0
1.2k
Everything not Tested Will Eventually Fail
colinfay
0
370
Other Decks in Technology
See All in Technology
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development
yoshidashingo
1
350
さきさん文庫の書籍ができるまで
sakiengineer
0
360
探して_入れて_作って_使う_Agent_Skills___LT.pdf
peintangos
2
160
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.9k
Mastering Ruby Box
tagomoris
3
150
新規ゲーム開発におけるAI駆動開発のリアル
202409e2
0
2.4k
LLMと共に進化するプロセスを目指して
ymatsuwitter
7
1.9k
OCI Oracle AI Database Services新機能アップデート(2026/03-2026/05)
oracle4engineer
PRO
0
210
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
210
DevOps Agentで始めるAWS運用 〜フロンティアエージェントが変える運用の現場〜
nyankotaro
1
180
生成 AI × MCP で切り拓く次世代 SRE!自律型運用への挑戦と開発者体験の進化
_awache
0
150
電子辞書Brainをネットに繋げてみた(自力編)
raspython3
0
440
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
210
YesSQL, Process and Tooling at Scale
rocio
174
15k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
390
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
560
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
240
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
820
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
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/