We’re big fans of Shiny here at Think. It allows us to develop data dashboards, display data visualisations and utilise data models to provide actionable insights. It works on any device and is a great tool whether you are presenting in a meeting, demonstrating at an exhibition or sharing results with a colleague.
In return for bringing the powerful data processing and visualisations capabilities of R to the intuitive and responsive design of the web, we are commonly obliged to host them on the cloud. This comes with its own potential risks such as technical barriers to setting up, recurring costs, data and information exposure on the web, not to mention the small but ever-present risk of the internet going kaput. Luckily, there are ways to avoid these unfortunate scenarios, but first…
What is Shiny?
Shiny is a framework in the R programming language used to create web applications. In contrast to a typical web page used to display static content, Shiny allows us to utilise the full data analysis capabilities of R to create dynamic and data-driven web applications with few extra requirements. Shiny gives you the potential to produce very functional and visually appealing apps, here are some examples of what can be achieved and images of some apps that I have created in the course of my work for our clients:
Figure 1 – A dashboard illustrating data for a study on European airspace capacity
Figure 2 – An app for visualising the results of a fast time simulation
Figure 3 – A suite of data processing and analytical tools to support systems validation
Shiny apps are usually deployed on the web via an open-source program called Shiny Server, accessible anywhere using your browser. Unless you have your own web server, developers typically use a third-party cloud service provider (Google Cloud Platform, Amazon Web Services or Microsoft Azure to name a few) to host your app on their servers for a fee. RStudio, the developers of Shiny, also offer their own hosting service shinyapps.io.
Shiny apps are a great way to share easily accessible dashboards and visualisations on the web. But what if you are working with sensitive or confidential data which you would much rather keep off the internet? At Think, we regularly undertake data analysis using confidential data which cannot be shared with a third party, but we still love to share our dynamic data visualisations with those who wish to see it. That is where Shiny desktop apps come in.
Shiny Apps on the Desktop
Although other popular languages such as Python offers easy ways to package data models and visualisations as desktop applications, the approach is less clear cut in R. My research into the desktop deployment of Shiny apps has been focused on minimising technical barriers for the end-users of the apps – that is, a Shiny desktop app must be self-contained and easy to install/use. It has been a reoccurring subject of interest in the R community over the years with solutions such as DesktopDeployR, Photon, RInno, as well as my very own twist on the subject.
The key advantage of a desktop deployment from a business’ point of view is that the data involved remains securely on your own systems and will not be stored or transferred through any third-party servers (e.g. cloud service providers). Additionally, a desktop deployment maintains a lower technical barrier for end-users, so you don’t have to be a savvy programmer to install and use the Shiny app.
In summary, the default approach with Shiny of using web deployments is a great start but it won’t work for everyone. So here are some simple considerations if you need to decide whether you want to deploy your Shiny apps on the desktop or on the web.
Want to hear more?
Here at Think we have considerable experience building dynamic web applications tailored to the individual needs of our clients, fully compliant with their data usage policies. We can work with you in delivering bespoke analysis of your ATM operation, systems and performance with a firm focus on data-driven insights. If you are interested to learn more about the analytics services which we can provide, please get in touch at email@example.com
Author: Derry Leng, ATM Consultant