An answer to both of these issues is the use of R code. It should be
possible to drive shiny apps through the server, without the user's code
knowing the difference. And you've already thought of recording user
actions as R code. This would be an application of the command pattern, as
with undo/redo stacks, except each object boils down to a
function/expression (Tengfei and I have a CRAN package called commandr
related to this). Someone should try to make a prototype to explore these
issues then we can start thinking about common infrastructure.


On Fri, Jul 26, 2013 at 12:23 PM, Dan Tenenbaum <dtene...@fhcrc.org> wrote:

> Hi everyone,
>
> There was a lot of talk about shiny at BioC2013 and it seems like a
> lot of people are using it for lots of different cool stuff.
>
> Now we are at the point where some contributors want to add shiny apps
> to Bioconductor as packages.
>
> We had some discussion internally and decided that there are a few
> issues we wanted to discuss with BioC developers as well as some of
> the shiny developers. Please feel free to share your thoughts.
>
> 1) Testing shiny apps
>
> Typically, bioconductor packages have man page examples, vignettes,
> and (sometimes) unit tests, so when we build the packages every day on
> our build system, the code in all of these is evaluated and we have
> some idea of whether the package is working as it's supposed to.
>
> I'm not clear on how to do similar testing of a shiny application.
> Since launching a shiny app takes away the R console (until the app is
> closed), shiny apps should probably not be launched in example or test
> code (unless interactive() is TRUE).
>
> Do the shiny folks (or anyone else) have thoughts on testing shiny apps?
>
> 2) Reproducible research
>
> Reproducible research is really important in our community, but shiny
> apps are sort of a black box as far as reproducibility is concerned.
>
> If shiny apps are "read-only" (that is, if they are just used to view
> an object) then this is not really a problem. But shiny has the
> ability now to change objects back in your R session, so we need to be
> able to track what is done inside the shiny app.
>
> shiny apps can return some sort of object that tells you what was done
> in the shiny session (insofar as it modifies any objects in the
> users's session) and this object can provide a way to reproduce those
> steps without the shiny app. So maybe the object would consist of
> lines of code. This means that if there is a shiny app, the package
> author must also provide ways to do the same transformations on
> objects without shiny.
>
> There are probably other approaches as well. But the end goal would be
> a scriptable, reproducible shiny session.
>
> Another thought was that a shiny app could emit some sort of state
> object, and then be restarted with that object.
>
> Not sure if the place for such infrastructure is inside shiny itself,
> or perhaps in a BioC infrastructure package.
>
> What are your thoughts?
> Dan
>
> _______________________________________________
> Bioc-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>

        [[alternative HTML version deleted]]

_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to