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
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
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
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
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
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
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
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
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
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