R language is becoming popular among scientists to build simple we bapplication along simple integration with
R web applications are being created at a fast rate.
RShiny package is not only easy to integrate but also provides a lightweight user interface that is pleasing to the eyes.
R application developed?
What is the process to deploy and distribute
R web applications?
While web development can be done in many different environments, RStudio is widely used to develop
R applications. Below is a snapshot of what RStudio looks like.
R application that only needs a local deployment,
R portable and web browser portable such as
Chrome applications can be used. It does not require as much performance on end user’s side and overall distribution will result in smaller files.
Refer to this blog post by Lee Peng about Deploying Desktop Apps with R using portable apps
Refer to this post to package your
Shiny application as Windows application
If you want to put your
Shiny application on web, you can host it using Shiny Server. You would need to install, configure and manage the server yourself which could be complicated for some users.
If you want an ultimate experience of
RShiny, there is also a paid service RShiny Server Pro, where you can host your application on
There are a few useful functionalities that comes with the service such as
- User Access Control
- Monitor application performance
- Monitor resource utilization
However service is not cheap so if you have extra cash lying around, this would be a quick and easy way to host your application!
Refer to this to find out more about
shinyapps.io is a multi-tenant platform as a service (PaaS) for hosting
Shiny web applications. However it can also be expensive since the free edition can be limited depending on your needs.
Refer to this where you can discover how to get started with
If you cannot decide between
Shiny Server Pro, refer to this FAQ
See below feature comparion chart between
Shiny Server Pro and
shinyapps.io taken from this page
Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run:
- System tools
- System libraries
- Anything you can install on a server
This guarantees that it will always run the same, regardless of the environment it is running in.
While this can be done with a virtual machine,
Docker does not use a full OS, it shares the same host kernel meaning that it needs to run on Linux, but it is completely isolated environment. Since
Docker containers are lighter than virtual machines, it makes testing much easier because you can always scrap that instance after!
Docker can come in handy because you can create a
Shiny server using few commands which simplifies deployment of a server.
Refer to this blog post to get your
Shiny app ‘dockerized’.
OpenCPU HTTP API for R
OpenCPU is an open source solution for embedded R computing. The software can be freely used, modified and redistributed for both for open source and proprietary projects in academia, industry or elsewhere. All parts of OpenCPU are released under the Apache2 license. The free OpenCPU framework provides a reliable and interoperable HTTP API for R data analysis. You can either call the public servers or download and install OpenCPU’s code on your own servers.
Refer to this blog post by Jen Underwood on how you can integrate R
Rook is a lightweight web server interface for R developed by Jeffrey Horner that does not need any configuration file as Rook is a R package which works out of the box with R HTTP server. The idea behind this is to separate application development from server implementation. Thus, when a web server supports a web server interface, an application written to its specifications is guaranteed to run on that server. So then you would need to do some learning on HTTP to develop Rook applications.
Refer to this blog post by Ben Ogorek on a tutorial on building simple web application using Rook
Refer to this CRAN for package description of Rook
If your end user has
RStudio. then you can share your
R files (ui.R and server.R) so that end user can run it through
If you have your own server, whether it be
Microsoft Azure, you can share it there.
Docker + Kitematic
After you have ‘dockerized’ your
Shiny application, you can share it on
Kitematic is a GUI where users can upload and download
Docker images to run it in their
This makes distributing very simple and easy as
Docker Hub can work like
Below is a snapshot of Kitematic.
Refer to this blog post to learn how you can share your
Shiny application with
You can share your code in a repository where other users can contribute by suggestions, corrections and additions. When another user clones your repository, the directory structure is kept so that all data is preserved as where they belong.
If you are an awesome R programmer, creating a
R package is an useful way to distribute and share within
R packages are stored in
Comprehensive R Archive Network (CRAN) repository where there is extra level of testing to enforce certain structure so users can ensure quality packages.
Refer to this blog post on how you can get started on creating a R package by David Smith