Website: http://www.rstudio.com/shinydevcon
Videos: https://www.rstudio.com/resources/webinars/shiny-developer-conference
Twitter: #shinydevcon
Author of the Shiny reactive programming framework explains the philosophy behind reactivity and explores patterns and techniques for using it well.
- Prefer using reactive expressions to model calculations, over using observers to set (reactive) variables.
- Use reactive expressions for calculations (no side effects). Use observers for actions (side effects).
reactive() |
observe() |
---|---|
Callable | Not callable |
Returns a value | No return value |
Lazy | Eager |
Cached | N/A |
Slides • Tutorial (see with-solutions
branch for answers) • R-Podcast
- add/select single points using
click
,dblcick
, andhover
- linked brushing
Things that are hard to express with code but you want to do reproducibly -- Hadley Wickham
Build interactive graphical tools for exploratory data analysis that run locally, taking your data as input and returning a result.
Manage complex Shiny apps by modularizing their code.
Debugging
- breakpoints using RStudio
- conditional breakpoints with
browser()
Tracing
- showcase mode:
runApp(..., display.mode = "showcase")
- reactive log:
options(shiny.reactlog = TRUE)
, start visualization in app by hittingCtrl+F3
- print to console:
cat
- shinyapps.io:
rsconnect::showLogs(streaming = TRUE)
- Shiny Server:
tail -f /var/log/shiny-server/myapp-20160131-104403-8492.log
- client/server:
options(shiny.trace = TRUE)
Error handling
- stack traces
- pause on errors:
options(shiny.error = browser)
- JavaScript dev mode on OS X:
defaults write org.rstudio.RStudio WebKitDeveloperExtras -bool true
Author the structure and style of your app's UI in HTML, but still conveniently insert input and output widgets using R functions.
An increasingly popular use of Shiny is in building dashboards, especially since the release of the shinydashboard package.
Use profvis to find and fix performance bottlenecks to make your apps as responsive as possible.
The R package DT is an interface to the DataTables JavaScript library which renders HTML tables that can be paginated, filtered, and sorted.
Perform common JavaScript operations in Shiny apps using plain R code
- hide an element
- disable an input
- reset an input back to its original value
- delay code execution by a few seconds
- run your own custom JavaScript functions from R
- color picker
CRAN • GitHub • R-Podcast • Live demo
GitHub • Documentation • R-Podcast • Live demo
Bindings to popular JavaScript libraries | Herman Sontrop (Friss)
GitHub - tutorials will appear soon
- Shiny Developer Conference 2016 Recap by VP Nagraj
- Shiny Developers Conference Review by Aimee Gott
- Shiny Developer Conference by John Mount
- DataScienceLA interviews with by Joe Cheng, Yihui Xie, Hadley Wickham and JJ Alaire