shiny
htmltools
req()
seq()
on.exit()
observe()
isolate
observeEvent
eventReactive
reactiveTimer()
invalidateLater(ms)
git
Debugging Shiny apps is a little harder than debugging regular R code.
find_vars <- function(data, filter) { stopifnot(is.data.frame(data)) stopifnot(is.function(filter)) names(data)[vapply(data, filter, logical(1))] }