a shiny app can also be allowed additionally to be run by the user locally if it is part of the package with something like following helper function
app <- function (display.mode = "normal") { shiny::runApp(system.file("appdir", package = "challengeR"), launch.browser = TRUE, display.mode = display.mode) }
where shiny app files server.R and ui.R are stored in /inst/appdir
so users would be able to install the package and then just run challengeR::app()
what do you think?