The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
We propose a very experimental feature to debug shiny apps, it’s still brittle but we decided to release anyway as it might be useful as is.
You’ll need the code of a shiny app saved in a proper project, and the module structure of the shiny app should follow the recommendations of Hadley Wickham’s book “Mastering Shiny”.
Under these assumptions following
boomer::boom_shinyApp()
is a drop in replacement for
shiny::shinyApp()
, running your app with enhanced debugging
features.
For instance taking an example from “Mastering Shiny”, we can create a file (it needs to be saved in the project!) and fill it with :
histogramUI <- function(id) {
tagList(
selectInput(NS(id, "var"), "Variable", choices = names(mtcars)),
numericInput(NS(id, "bins"), "bins", value = 10, min = 1),
plotOutput(NS(id, "hist"))
)
}
histogramServer <- function(id) {
moduleServer(id, function(input, output, session) {
data <- reactive(mtcars[[input$var]])
output$hist <- renderPlot({
hist(data(), breaks = input$bins, main = input$var)
}, res = 96)
})
}
ui <- fluidPage(
histogramUI("hist1")
)
server <- function(input, output, session) {
histogramServer("hist1")
}
Then after making sure everything is loaded (you might call
devtools::load_all()
in a package project), we can call
boom_shinyApp(ui, server)
and we get the following app
:
We see the same app as we would with shiny::shinyApp()
except it’s nested into an “app” tab and we have an additional “boomer
log options tab”, lets take a look:
In this additional tab we can tick which reactives we want to make verbose.
In our example we defined two reactives in
histogramServer()
: data
and
output$hist
, if we tick
histogramServer/output$hist <- renderPlot(...)
and
select anything that triggers an actualization of the reactive
(i.e. that changes the plot) we will observe verbose output in the
console.
For instance if we set the number of bins to 15 we will see:
We hope that this can save developers from the chore of running and stopping apps repeatedly with different variations of debugging code cluttered in various places.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.