Interactive Data Applications with Shiny

A Workshop

Author

Mark Andrews

This two-day workshop introduces the Shiny framework for building interactive web applications in R. The course focuses on the reactive programming model at Shiny’s core, developing a mental model that enables participants to construct statistical interfaces and data exploration tools independently. Rather than surveying the entire Shiny ecosystem, the course builds understanding incrementally through progressively complex working examples, from a single-input histogram to multi-panel applications with coordinated interactive graphics. The topics below are modular: a given delivery will cover a selection depending on length, audience, and emphasis.

Foundations

Introduction to Shiny

This guide introduces the three-part structure of a Shiny application and the reactive programming model that connects user inputs to computational outputs. Participants build their first interactive applications through live coding, starting from the simplest possible example and adding complexity step by step.

Inputs, Outputs, and Layouts

This guide expands the toolkit of interface components, covering the principal input widget types and output elements available in Shiny. It demonstrates how to organise multiple inputs and outputs using sidebar layouts and panel structures, and how ID-based references link the UI to server logic.

Building Statistical Applications

This guide demonstrates how to wrap realistic statistical analyses in a Shiny interface. It covers structuring server code with reactive expressions, managing the reactive dependency graph to avoid redundant computation, and integrating ggplot2 visualisations into reactive rendering.

Advanced Topics

Advanced Reactivity and Dependencies

This guide addresses the reactive patterns needed when inputs depend on one another or when multiple outputs share an expensive computation. It covers observer patterns, dynamic UI updates, the reactive execution model in depth, and practical debugging strategies for reactive applications.

Multi-Panel Applications and Interactive Graphics

This guide shows how to organise larger applications using tabbed interfaces and grid-based layouts, and how to implement interactive graphics features including brush selection, point selection, and coordinated views where interaction in one plot updates another.

Polishing, Deployment, and Moving Forward

This guide covers the steps needed to make an application ready for others to use: adding clear instructions, organising layouts for usability, and deploying to shinyapps.io for sharing via a web link. It also reviews debugging strategies and maps out the topics most worth pursuing after the course.