2016 Shiny Developer Conference Videos

The 2016 Shiny Developers Conference was such a success we have decided to do it again! We are targeting late January or early February 2017. We have also decided to expand the invitations to more people by hosting at a larger location with additional topics. Stay tuned or subscribe below for more information on the 2017 RStudio Developers Conference.

RStudio Talks from the Shiny Developer Conference

Presenter

Description

Time

Video

Day 1

Joe Cheng

Effective reactive programming Part 1 – Reactive programming is at the heart of the Shiny framework, and thinking reactively is one of the most difficult yet most rewarding aspects of learning Shiny. This tutorial will go beyond the basics, explaining the philosophy behind Shiny’s reactive programming framework and exploring patterns and techniques for using it well. Download Materials

60:02

Joe Cheng

Effective reactive programming Part 2 – This is the second half of the effective reactive programming presentation. Download Materials

55:38

Winston Chang

Coordinated multiple views (linked brushing) – Coordinated multiple views has long been a popular technique in interactive statistical graphics, and is a central feature of many new interactive plotting toolkits. While it’s been possible to implement coordinated multiple views in Shiny, we hope some new work we’ve been doing will lay the foundation for greater adoption of this technique in the Shiny world. In this talk we’ll demonstrate what we’ve been working on, and talk about what needs to happen next.

26:32

Hadley Wickham

Building interactive tools for exploratory data analysis – While Shiny apps are generally built to communicate the results of an analysis, Shiny is just as well suited to building interactive tools to help you conduct your analysis. We call interactive Shiny tools “gadgets”, and they differ from Shiny apps in that they are packaged as functions to be called instead of apps to be visited, and they can return values to the caller. In this talk, we’ll show you some examples of Shiny gadgets and show you how to build your own. Download Materials

17:45

Jeff Allen

Deploying apps – ShinyApps.io has made deploying Shiny apps to the cloud a push-button affair. If you’re deploying to your own Shiny Server or Shiny Server Pro instance, your task is a bit harder. This talk will demo some of the new software we’re working on to take on-premises deployment of Shiny apps to the next level of ease-of-use and robustness.

25:07

Day 2

Garrett Grolemund

Modularizing Shiny app code – As Shiny applications grow larger and more complicated, app authors frequently ask us for techniques, patterns, and recommendations for managing the growing complexity of Shiny application code. A Shiny module is a piece of a Shiny app. It can’t be directly run, as a Shiny app can. Instead, it is included as part of a larger app (or as part of a larger Shiny module–they are composable). Download Materials

60:02

Garrett Grolemund

Shiny UI – Shiny apps are designed to look reasonably pleasant out of the box, with no extra effort required. But you’re by no means limited to the “stock” appearance, especially if you know a bit about HTML and CSS. Shiny has always included elegant abstractions for integrating custom markup into your UI-generating R code, and for packaging HTML generating code as functions. This talk describes those features, and also introduces HTML Templates, a new option for writing Shiny UI that lets you mostly write raw HTML but still access R input and output widget functions whenever you need them. Download Materials

23:28

Jonathan McPherson

Debugging techniques – One of the biggest challenges when building Shiny apps is figuring out what’s wrong when your app misbehaves. Fortunately, R as a language and platform is exceptionally well suited to helping us deal with this challenge, and we’ve built on those strengths with RStudio. This talk will explore some of the debugging features of R and RStudio, as well as some under-documented debugging features of Shiny itself. Download Materials

30:00

Nathan Stephens

Building dashboards – An increasingly popular use of Shiny is in building dashboards, especially since the release of our shinydashboard package. In this talk, we’ll talk about Shiny features and techniques that come in particularly handy when building dashboards. Download Materials

13:59

Winston Chang

Profiling and performance – Another significant challenge for Shiny app authors is finding and fixing performance bottlenecks. This is where good profiling tools are absolutely crucial. In this talk, we’ll talk about techniques to make your apps as responsive as possible, as well as demonstrate some new profiling tools we’ve been working on to help you quickly figure out where R is spending its time. Download Materials

32:13

Yihui Xie

Interfacing DataTables – DataTables is a JavaScript library to render HTML tables that can be paginated, filtered, and sorted. The R package DT is an interface to DataTables based on htmlwidgets, and users don’t need to know JavaScript to render HTML tables in R Markdown or Shiny. In this talk, I will show the main features of DT, demonstrate the basic structure of a HTML widget package using DT as the example, and explain how JavaScript and R/shiny communicates with each other (e.g. how pagination/filtering/sorting works under the hood).

26:40

Yihui Xie

Complex application layouts with Grid Style Sheets – 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.

Effective reactive programming

Reactive programming is at the heart of the Shiny framework, and thinking reactively is one of the most difficult yet most rewarding aspects of learning Shiny. This tutorial will go beyond the basics, explaining the philosophy behind Shiny’s reactive programming framework and exploring patterns and techniques for using it well.

Modularizing Shiny app code

As Shiny applications grow larger and more complicated, app authors frequently ask us for techniques, patterns, and recommendations for managing the growing complexity of Shiny application code. A Shiny module is a piece of a Shiny app. It can’t be directly run, as a Shiny app can. Instead, it is included as part of a larger app (or as part of a larger Shiny module–they are composable).

Debugging Techniques

One of the biggest challenges when building Shiny apps is figuring out what’s wrong when your app misbehaves. Fortunately, R as a language and platform is exceptionally well suited to helping us deal with this challenge, and we’ve built on those strengths with RStudio. This talk will explore some of the debugging features of R and RStudio, as well as some under-documented debugging features of Shiny itself.

Building dashboards

An increasingly popular use of Shiny is in building dashboards, especially since the release of our shinydashboard package. In this talk, we’ll talk about Shiny features and techniques that come in particularly handy when building dashboards.

Coordinated multiple views (linked brushing)

Coordinated multiple views has long been a popular technique in interactive statistical graphics, and is a central feature of many new interactive plotting toolkits. While it’s been possible to implement coordinated multiple views in Shiny, we hope some new work we’ve been doing will lay the foundation for greater adoption of this technique in the Shiny world. In this talk we’ll demonstrate what we’ve been working on, and talk about what needs to happen next.

Profiling and performance

Another significant challenge for Shiny app authors is finding and fixing performance bottlenecks. This is where good profiling tools are absolutely crucial. In this talk, we’ll talk about techniques to make your apps as responsive as possible, as well as demonstrate some new profiling tools we’ve been working on to help you quickly figure out where R is spending its time.

Building interactive tools for exploratory data analysis

While Shiny apps are generally built to communicate the results of an analysis, Shiny is just as well suited to building interactive tools to help you conduct your analysis. We call interactive Shiny tools “gadgets”, and they differ from Shiny apps in that they are packaged as functions to be called instead of apps to be visited, and they can return values to the caller. In this talk, we’ll show you some examples of Shiny gadgets and show you how to build your own.

Interfacing DataTables

DataTables is a JavaScript library to render HTML tables that can be paginated, filtered, and sorted. The R package DT is an interface to DataTables based on htmlwidgets, and users don’t need to know JavaScript to render HTML tables in R Markdown or Shiny. In this talk, I will show the main features of DT, demonstrate the basic structure of a HTML widget package using DT as the example, and explain how JavaScript and R/shiny communicates with each other (e.g. how pagination/filtering/sorting works under the hood).

Deploying apps

ShinyApps.io has made deploying Shiny apps to the cloud a push-button affair. If you’re deploying to your own Shiny Server or Shiny Server Pro instance, your task is a bit harder. This talk will demo some of the new software we’re working on to take on-premises deployment of Shiny apps to the next level of ease-of-use and robustness.

Complex application layouts with Grid Style Sheets

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.

Group coding/Office hours

It’s hard to retain programming concepts if you don’t have the opportunity to put it into action yourself. We will reserve two blocks of time to let you work in groups to put some of the new ideas you’ve learned into practice. As time allows, we’ll hold one-on-one debugging sessions (office hours) of your own Shiny code with some of the creators and maintainers of Shiny, Shiny Server, and RStudio.

Lightning Talks

Get inspiration from what other users are doing with Shiny. Find out what challenges others are facing, and how they overcame them. Lightning Talks are going to be strictly limited to 5 minutes each and will cover two components.

A demonstration of something built with Shiny, or

A discussion of challenges faced while building a Shiny app and how it was solved.