Skip to content

An annotated bibliography of resources for building Shiny apps

Notifications You must be signed in to change notification settings

jamespooley/shiny-resources

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 

Repository files navigation

✨ Shiny Resources

Shiny is a great tool for the working data scientist that needs to quickly build an MVP data product, but also wants to build a long-lasting "productionized" application.

The following is a (perpetually WIP) compendium of books, help documents, blog posts, etc. that I've found helpful when building Shiny apps.

As always, R Studio has a very helpful Shiny cheat sheet, and you should follow the shiny tag on Stack Overflow.

Table of Contents

Remember the 4 maxims of reactive programming in Shiny prepared by Garret Grolemund:

  1. R expressions update themselves, if you ask.
  2. Nothing needs to happen instantly.
  3. The app must do as little as possible.
  4. Think carrier pigeons, not electricity.

Joe Cheng's two presentations on reactivity from Shiny DevCon 2016 are excellent places to start to learn about the programming model used by Shiny.

I found the following article to be especially clear at comparing reactive expressions and observers:

DataTables

Editing

Profiling

Performance

Shiny Modules

Asynchronous Programming

What is "production"? Software environments that are used and relied on by real users, with real consequences if things go wrong.

--- Joe Cheng

Performance

Shiny Proxy

ShinyProxy is your favourite way to deploy Shiny apps in an enterprise context. It has built-in functionality for LDAP authentication and authorization, makes securing Shiny traffic (over TLS) a breeze and has no limits on concurrent usage of a Shiny app.

The team at Appsilon has a five-part series of posts on "Super Solutions for Shiny Architecture" covering:

  1. Using Session Data
  2. JavaScript Is Your Friend
  3. Softcoding Constants in the App
  4. Using R6 Classes
  5. Automated Tests

In terms of getting R to play nice with Airflow, the following provide some guidance:

Security

Securing Shiny Apps provides "[a] summary of free/open source ways of securing Shiny."

Two posts on the Auth0 blog cover addtion authentication to Shiny:

In terms of password-protection for Shiny apps:

  • The shinymanager package provides "simple and secure authentication for single Shiny applications," with the encrypted credentials stored in a SQLite database
  • Password Protect Shiny Apps covers, as one would expect, how to add password protection to your apps.

UI/UX

Testing

If you need a quickstart guide to Docker, R Docker Tutorial is a (non-Shiny-specific) tutorial on Docker for R users that may be helpful.

DataCamp's EC2 Tutorial for Beginners is a good quickstart if you need some basic training with that service.

Some familiarty with web development languages will come in handy, especially when utilizing Advanced UI features and shinyjs.

JavaScript for R

Colin Fey of {golem} fame's JavaScript 4 Shiny: Field Notes is a good place to start.

Mozilla's MDN web docs has excellent documentation on these technologies written "by developers, for developers."

Introduction to Data Technologies also has a useful introduction to HTML and CSS.

Other resources worth a read:

Shiny and R Markdown

Application Layout Ideas and Inspiration

  • Application Layout Guide from the official docs
  • R Studio's Gallery of Shiny applications is a great source of ideas and inspiration when designing an app.
  • Grid Style Sheets "are a radical approach to doing app-style layouts in a browser. It is a JavaScript library that replaces the browser’s built-in layout engine with one based on a constraint solving algorithm. The result is that some layouts that are incredibly tricky in CSS are completely natural to implement in GSS. This talk will demonstrate an experimental R library that makes it simple for any Shiny developer to take advantage of CSS. 12:56."
  • RinteRface, a "collection of outstanding APIs for R Shiny"

General R Programming

Being fluent in R as a programming language (as opposed to a tool and interactive environment for data analysis) goes a long way when building Shiny apps.

The Functional Programming chapters in Hadley Wickham's Advanced R (2nd Edition) are good for learning an approach to R programming that will help you write app code that follows the DRY principle.

Dog's Breakfast

These are good but I haven't decided where to put these yet. Thus, the terrible section name...

About

An annotated bibliography of resources for building Shiny apps

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published