-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Example of a drake-powered Shiny app #4
Comments
We could use |
I thought I could use drake caching and ability to monitor ETag's to speed up app loading. Not sure if shinyapps.io already caches the content. The minimal example I thought can be found here. I've published one version using the drake approach, and another reading the data directly. Can't tell which one loads faster, though. |
That's so interesting. If you keep going with this, please let me know how it turns out. If you do find some benefit from using I see you use |
On reflection, I do not actually think |
In fact, I think so, as well, but I tend to see uses for drake all the time, as I'm a big fan of it 😅 . The problem is, at this time, shyniapps.io doesn't have a persistent storage option, so caching with drake in an elegant solution is not an option (RStudio says it will have persistent storage soon). I have two options though:
Anyways, I'll keep trying and I hope someone can come with a real production app that could be used as an example. |
Yeah, you point out a tricky point of friction. The situation is slightly better at my company where we use Shiny Server Pro, where we can host apps that have access to our cluster's file system. But this is not as common as shinyapps.io. |
When you say "drake-powered Shiny app" what exactly is meant by this? Having RShiny display data from drake targets? I have started to wonder about this myself. Let me explain my journey. I made an RShiny app which pulls in data from various sources. Some of the data should be some sort of merging of raw data which is filtered/modified before being fed into plots/tables while some of the data is more for display on the front end (eg, colours to fill certain plots in given what is being plotted, parameters for selectInput elements and so on). I initially had a So I renamed it The script became quite large and clunky though, and it lacked transparency, so I decided it should really look more like a drake plan. I then made a separate repository for handling all the data related things and producing data artifacts ( One con however is around the data targets which are more specific to my app. For example if my drake plan makes a (data-dependent) tibble of timeseries data with colours to fill plots in with, and I want to change the colour of some plot, I have to rerun my drake plan from another repository and move the RDS exports across. So it seems there is still too much coupling going on. As such, I'm now thinking of separating out the kinds of data being generated so that the concern of my data repository is not directly tied to the concerns of my app. That way the app source code should be sufficient to give one a good idea of the app functionality. Anyway, I hope that story is useful to some, and I welcome feedback. Oh and thanks @wlandau for drake 😄 |
Thanks for the interesting use case. There are probably all sorts of ways
|
cc @rich-iannone
The text was updated successfully, but these errors were encountered: