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

After {shiny}: The Future of Mobile Apps with R

After {shiny}: The Future of Mobile Apps with R

Talk at Shiny in Production 2025

Avatar for Colin Fay

Colin Fay

October 09, 2025
Tweet

More Decks by Colin Fay

Other Decks in Technology

Transcript

  1. AFTER {SHINY}: THE FUTURE OF MOBILE APPS WITH R Colin

    Fay - ThinkR - Shiny in Production 2025 2025-10-09 After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 1 / 50
  2. What if I told you R can now live inside

    your phone — no internet, no server, just R in your hand? After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 2 / 50
  3. But before that, a bit of history… After {shiny}: The

    Future of Mobile Apps with R | https://rtask.thinkr.fr 3 / 50
  4. Once upon a time, there was a terminal… After {shiny}:

    The Future of Mobile Apps with R | https://rtask.thinkr.fr 4 / 50
  5. R was a command line tool R : Copyright 2000,

    The R Development Core Team Version 1.0.0 (February 29, 2000) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type "?license" or "?licence" for distribution details. R is a collaborative project with many contributors. Type "?contributors" for a list. After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 5 / 50
  6. Back in the days, R was “nerd oriented” 👴 First,

    with the terminal For nerdy grumpy statisticians 🧑 Then came GUIs and IDEs For nerdy (but less grumpy) statisticians After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 6 / 50
  7. Poll - When did you start using R? After {shiny}:

    The Future of Mobile Apps with R | https://rtask.thinkr.fr 7 / 50
  8. 👴 Terminal Era (aka “I’ve got strong opinions about Makefiles,

    I have already used _ for assignment and my back hurts”) 🧑 RGUI Era (aka “I used to skateboard and I can still hear the Windows XP startup sound”) 🧒 IDE Era (aka “I think {ggplot2} is a core language feature and follow Posit on TikTok”) After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 8 / 50
  9. But in 2012, a tech was born… After {shiny}: The

    Future of Mobile Apps with R | https://rtask.thinkr.fr 9 / 50
  10. {shiny} arrived Web apps with R only Brought statisticians &

    users together But mobile? Not so much After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 10 / 50
  11. Since then, the world has changed After {shiny}: The Future

    of Mobile Apps with R | https://rtask.thinkr.fr 11 / 50
  12. The mobile world took over After {shiny}: The Future of

    Mobile Apps with R | https://rtask.thinkr.fr 12 / 50
  13. Do I really need a graph to prove it? After

    {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 13 / 50
  14. Ok After {shiny}: The Future of Mobile Apps with R

    | https://rtask.thinkr.fr 14 / 50
  15. And with it, new needs emerged 📱 Consume content straight

    on the phone 📵 Needs to be available everywhere 🤵 With a good User Experience After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 15 / 50
  16. {shiny} approaches for mobile showed their limits After {shiny}: The

    Future of Mobile Apps with R | https://rtask.thinkr.fr 16 / 50
  17. Responsive, PWA, {shinyMobile}… 🛜 For most, still need internet 🏪

    Can’t be deployed via app stores 🫨 No access to native phone APIs After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 17 / 50
  18. A recurring need for a native mobile solution After {shiny}:

    The Future of Mobile Apps with R | https://rtask.thinkr.fr 18 / 50
  19. After {shiny}: The Future of Mobile Apps with R |

    https://rtask.thinkr.fr 19 / 50
  20. A client needed a native app with offline support App

    store ready After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 20 / 50
  21. We were about to say that’s impossible, but… After {shiny}:

    The Future of Mobile Apps with R | https://rtask.thinkr.fr 21 / 50
  22. What if … After {shiny}: The Future of Mobile Apps

    with R | https://rtask.thinkr.fr 22 / 50
  23. webR could do it? After {shiny}: The Future of Mobile

    Apps with R | https://rtask.thinkr.fr 23 / 50
  24. webR? WebR is a version of the statistical language R

    compiled for the browser and Node.js using WebAssembly, via Emscripten. After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 24 / 50
  25. wat ? After {shiny}: The Future of Mobile Apps with

    R | https://rtask.thinkr.fr 25 / 50
  26. From Code to Execution After {shiny}: The Future of Mobile

    Apps with R | https://rtask.thinkr.fr 26 / 50
  27. From Code to Execution After {shiny}: The Future of Mobile

    Apps with R | https://rtask.thinkr.fr 27 / 50
  28. From Code to Execution After {shiny}: The Future of Mobile

    Apps with R | https://rtask.thinkr.fr 28 / 50
  29. We had this crazy idea… After {shiny}: The Future of

    Mobile Apps with R | https://rtask.thinkr.fr 29 / 50
  30. Let’s bring R inside a mobile app! After {shiny}: The

    Future of Mobile Apps with R | https://rtask.thinkr.fr 30 / 50
  31. 🍲 Rlinguo 🍲 After {shiny}: The Future of Mobile Apps

    with R | https://rtask.thinkr.fr 31 / 50
  32. Rlinguo: our Proof of Concept Native app with R backend

    via webR ✅ Offline use ✅ Native perf ✅ Mobile-friendly UX ✅ Using mobile API ✅ Distributed on Stores After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 32 / 50
  33. Where is R? After {shiny}: The Future of Mobile Apps

    with R | https://rtask.thinkr.fr 33 / 50
  34. Where is R? get_content() After {shiny}: The Future of Mobile

    Apps with R | https://rtask.thinkr.fr 34 / 50
  35. Where is R? score_table() After {shiny}: The Future of Mobile

    Apps with R | https://rtask.thinkr.fr 35 / 50
  36. Where is R? After {shiny}: The Future of Mobile Apps

    with R | https://rtask.thinkr.fr 36 / 50
  37. How it works 1. The app is open 2. It

    loads a JavaScript runtime 3. The JavaScript runtime loads webR 4. webR loads the R functions as RObject proxies 5. JavaScript calls R throught these proxies After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 37 / 50
  38. How it works On load, init webR & load custom

    functions: // init webR 1 webR.current = new WebR({}); 2 await webR.current.init(); 3 4 // Internal funs that mounts the R Scripts and load the funs 5 await sendRScriptToWebRInstance("/scripts", webR.current); 6 7 // Getting the R funs as RObject proxies 8 const get_content = await webR.current.evalR("get_content"); 9 const score_table = await webR.current.evalR("score_table"); 10 After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 38 / 50
  39. How it works Then, on event, we use the R

    function // When updating the home 1 let res = await get_content() as WebRResponse; 2 3 // Computing the score table 4 let score_table = await score_table(score.values) as WebRResponse; 5 6 // ... 7 After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 39 / 50
  40. Ok but why? (and for whom?) After {shiny}: The Future

    of Mobile Apps with R | https://rtask.thinkr.fr 41 / 50
  41. Scientists in remote areas with no reliable internet After {shiny}:

    The Future of Mobile Apps with R | https://rtask.thinkr.fr 42 / 50
  42. Students & educators who want to learn R on the

    go After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 43 / 50
  43. QA teams on production lines who can’t walk with a

    computer in their hand After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 44 / 50
  44. Field medics & healthcare pros with no stable internet After

    {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 45 / 50
  45. Is it the end of {shiny}? After {shiny}: The Future

    of Mobile Apps with R | https://rtask.thinkr.fr 46 / 50
  46. After {shiny}: The Future of Mobile Apps with R |

    https://rtask.thinkr.fr 47 / 50
  47. The Future is Now Rlinguo is “just a PoC” But

    R 🫶 Mobile 🎯 We plan on open sourcing the template 👉 Devs can build their own native R apps 📲 Download the app and try it! After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 48 / 50
  48. Once upon a time, R lived in the terminal… Now

    it lives in your pocket. After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 49 / 50
  49. Questions & Discussion Also feel free to talk to me

    later or reach me at: [email protected] rtask.thinkr.fr After {shiny}: The Future of Mobile Apps with R | https://rtask.thinkr.fr 50 / 50