Advanced Concepts in Shiny

Advanced Concepts in Shiny

Course Level: Advanced (6 hours)

Take your interactive {shiny} skills to the next level by creating more robust, responsive and maintainable applications. In this course, we’ll visit more advanced topics that can be used to improve the experience for both those producing the apps and those using them. Subjects will cover: additional ways to react to and validate user inputs; restructuring your app with modules; and an introduction to testing your {shiny} apps.

Download course details

Book: Advanced Concepts in Shiny

Start Date:
Venue Details:

No Events Currently Scheduled

Sorry, there are no upcoming events for this course, but please get in touch if you would like to be kept informed when events are scheduled in the future.

Course Details


  • Validating user inputs.
  • Using event observers for UI updates.
  • Event binders and caching.
  • Maintainable applications with Shiny modules.
  • Getting started with Shiny testing.

Learning outcomes

Session 1:

By the end of session 1, participants will…

  • create robust applications by defining validation rules for user inputs.
  • understand when to use observe() and reactive().
  • use action buttons to control when reactive expressions run.
  • see the benefits and drawbacks from results caching.

Session 2:

By the end of session 2, participants will…

  • wrap up commonly used code into reusable modules.
  • structure a complex application into a maintainable fashion.
  • implement a testing framework to ensure the long-term stability of your applications using {shinytest}.
  • be exposed to the principle of file upload handlers and dynamic UI generation through renderUI().

This course does not include:

  • Creating a Shiny user-interface by writing native HTML code.
  • Styling a Shiny dashboard by writing CSS/Sass code.
  • Performing client-side updates with {shinyjs} or by writing native Javascript.
  • Deploying an application as part of a Docker container.
  • How to install, configure or deploy apps to Shiny Server Open Source or Posit Connect.
  • Creating your own HTML widgets using {htmlwidgets}.
  • Interactive data visualisations using {plotly} or D3.

Prior knowledge

Participants must have a basic knowledge of R and shiny, which can be obtained by attending our Introduction to R and Introduction to Shiny courses.

Materials Preview

Attendee Feedback

  • “The instructor was certainly standout, exceptionally knowledgable and eloquent in their delivery.”
  • “The tutor was able to answer and personalise the content relating to our questions/needs”