Highlights from Shiny in Production (2022)
Last week, we were very excited to host our first Shiny in Production conference! Attendees gathered in The Catalyst in Newcastle for two days of workshops and talks focusing on all things related to Shiny, building dashboards, and cool things you can do in R.
On day one, we ran three workshops:
Jack Walton ran a workshop introducing RStudio Connect - a hosting platform which makes publishing your content painless and easy. In this workshop Jack demonstrated a few different workflows to host, share, and scale content on RStudio Connect.
Theo Roe talked attendees through Automated Reporting with Quarto - a new open source publishing system - where he demonstrated how to make a range of outputs including simple documents, presentations, and dashboards.
Nicola Rennie taught the Introduction to Tableau workshop where attendees learnt the basics of Tableau, then published their very own dashboard that they had developed during the workshop.
Jumping Rivers run training courses on all three of these topics, so if you’re keen to learn even more or if there was a workshop you missed out on, check out our available training courses.
Session 1
Colin Fay (ThinkR)
DESTROY ALL WIDGETS!
Colin Fay kicked off the conference by sharing his frustrations with some web apps. This included long load times, visual clutter and accessibility issues. He recommended keeping things simple, only using interactivity when necessary and observing new users exploring your app to understand the UX better. Amusingly, the speakers for the rest of the day became very self-conscious of all of their whizzy HTML widgets and kept apologising to Colin.
Caterina Constantinescu (GlobalLogic)
Journey through a landscape of options: Choosing among web app frameworks for your project
With so many web app frameworks out there, it can be confusing to know where to start. Caterina gave us a high level overview of Shiny vs Dash vs Steamlit vs Gradio with an example on a real energy data application. She also recommended a blog by Data Revenue as a good place to start.
Session 2
Chris Beeley (NHS)
Next level Shiny- R, Python, and JavaScript
“Yes, you can do that in Shiny. But don’t.” Chris kicked off the second session by showing us how you can use other languages such as JavaScript or Python to level-up your Shiny apps. Chris demonstrated how you can combine models you’ve built in Python (or JavaScript code you’ve written to offload the interactive elements to a user’s computer) with Shiny using {reticulate}, {shinyjs}, and {golem}.
The slides for the talk can be found online, and the source code for the slides is available on GitHub.
Andrew Patterson (Jumping Rivers)
Dockerising a Shiny App
In the second talk of the session, Andrew talked about dockerising Shiny apps. He explained what Docker is (a platform for developing and deploying applications), and discussed why you might want to dockerise a Shiny app (and why you might not want to…). Andrew shared the Which Cat Are You? app (built by Mandy Norrbo) as an example of a Dockerised Shiny app.
Session 3
Nic Crane (Voltron Data) & Mark Sellors (RStudio/Data Orchard)
Firing an Arrow into the internet of things: combining the power of Arrow, Raspberry Pi & Shiny
We were seeing double in this tag-team-talk by Nic and Mark, who showed us how Arrow can be used to analyse larger-than-memory datasets. Nic and Mark motivated this approach by discussing a real-world IoT problem in which they used Raspberry Pis to record and analyse data on air quality. On top of this, Nic and Mark went one step further to explain why Arrow on S3, and Arrow and Parquet are so powerful when used in combination.
Theo Roe (Jumping Rivers)
Expect the Unexpected - {Shiny} & {htmlwidgets}
Theo closed up session three by recounting a recent project he worked on, in which a client wished to use interactive Sankey and sunburst diagrams within Shiny. Although these widgets exist within the D3 framework for JavaScript, they had yet to be implemented as htmlwidgets in R. Whilst detailing how to create these widgets, Theo discussed some of the unforeseen technical issues which arose during this project.
Session 4
Gareth Burns (Exploristics)
Seamlessly integrating Shiny applications into KerusCloud; a cloud-based, clinical trial simulation platform
Gareth showed us KerusCloud, a cloud-based computing platform developed by Exploristics used to simulate patient populations for clinical trial analysis. Three separate use cases were demonstrated: prototyping, stand-alone applications, as well as embedded applications. You can try it out yourself by visiting the KerusCloud Playground.
Mike Smith (Pfizer)
Offload data manipulation from your Shiny apps and dashboards using {pins}
In his talk, Mike highlighted the benefits of separating out your data importing and pre-processing from your Shiny app using {pins}. Data wrangling steps can instead be run with an automated job, and your app only needs to read in the pinned data, which can significantly reduce the overall complexity and loading time of your app.
What happens next?
We want to say thank you to the National Innovation Centre for Data, NU Solve, and the Royal Statistical Society who kindly sponsored the event. Thanks also to our speakers who all gave incredibly insightful presentations, and of course to all our attendees who helped make Shiny in Production such a fantastic event!
We had such a great time running the Shiny in Production conference, that we’re planning on doing it all again next year! Look out for more details coming soon!