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
Colin Fay
October 07, 2022
Technology
0
460
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
Beyond {shiny}: The Future of Mobile Apps with R
colinfay
1
530
[Keynote] Production is like ultra running: brutal, ungrateful, but worth every step
colinfay
0
240
Building Multi-Page {shiny} apps with {brochure}
colinfay
0
220
Let's talk about accessibility
colinfay
0
160
[Workshop] Good Practices for {shiny} development with {golem}
colinfay
0
1.2k
Engineering {shiny} with {golem} - WhyR
colinfay
0
1k
An overview of testing in R
colinfay
0
1.1k
Everything not Tested Will Eventually Fail
colinfay
0
330
[eRum 2020] Testing Shiny: Why, what, and how
colinfay
0
1.3k
Other Decks in Technology
See All in Technology
AI駆動開発 with MixLeap Study【大阪支部 #3】
lycorptech_jp
PRO
0
270
複数のGemini CLIが同時開発する狂気 - Jujutsuが実現するAIエージェント協調の新世界
gunta
13
3.7k
ファインディにおける Dataform ブランチ戦略
hiracky16
0
210
大規模イベントを支える ABEMA の アーキテクチャ 変遷 2025
nagapad
5
490
自分がLinc’wellで提供しているプロダクトを理解するためにやったこと
murabayashi
1
170
少人数でも回る! DevinとPlaybookで支える運用改善
ishikawa_pro
4
1.7k
データエンジニアがクラシルでやりたいことの現在地
gappy50
3
640
完璧を目指さない小さく始める信頼性向上
kakehashi
PRO
0
110
公開初日に個人環境で試した Gemini CLI 体験記など / Gemini CLI実験レポート
you
PRO
3
600
【CEDEC2025】LLMを活用したゲーム開発支援と、生成AIの利活用を進める組織的な取り組み
cygames
PRO
1
1.6k
ObsidianをLLM時代のナレッジベースに! クリッピング→Markdown→CLI連携の実践
srvhat09
7
9.7k
alecthomas/kong はいいぞ
fujiwara3
6
1.1k
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
It's Worth the Effort
3n
185
28k
Adopting Sorbet at Scale
ufuk
77
9.5k
Agile that works and the tools we love
rasmusluckow
329
21k
Making Projects Easy
brettharned
117
6.3k
A better future with KSS
kneath
238
17k
Raft: Consensus for Rubyists
vanstee
140
7k
Become a Pro
speakerdeck
PRO
29
5.4k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
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/