A series of shiny modules to help shiny sense the world around it.
It’s called shinysense
because shinyinputs
seemed kinda lame.
Currently the package supports the following ‘senses’.
drawr
& shinydrawr
: Draws a line chart that obscures the end of the results, the user then draws what they think the rest of the chart is and then the rest of the chart is revealed.
shinyswipr
: Embeds a card that can be swiped in different directions, the swipe direction is returned to shiny.shinyviewr
: Record images from a webcam or any other camera connected to browser viewing app.shinylistenr
: Records audio on a button press and returns the fast-fourier transformed signal to the server.shinymovr
: Capture and return accelerometer data from your phone or tablet.
Every sense included in the package has a demo app. To run the demo app you can run the included function run_demo()
and pass it the name of the function you want to see.
E.g.
This will run a basic demo application that includes the code behind the app. Giving you a jumping off point for including the function in your app!
Available demos include
'shinydrawr'
'shinyviewr'
'shinyswipr'
'shinymovr'
'shinylistenr'
'draw_your_dist'
: A demo app using shinydrawr
to fit a beta distribution to a drawn line.shinysense
is not currently on CRAN. To install it use the devtools
github function.
Once the app is installed just included it in your shiny app the way you usually would:
The names of the functions follow a few general rules.
The shiny-based functions are all prefixed with shiny
. E.g. shinyswipr
, shinydrawr
…
Of those shiny-based functions there are two functions per sense, the server function (just plain name), and the UI function, which has _UI
appended to the end.
Note that if you used shinysense in earlier versions, this naming scheme was inconsistant, I sincerely appologize for any frustration this may cause!
shiny
prefix.
drawr
which allows you to embed a you-draw-it chart in a static report, and run_demo
which starts up the demo apps for the various senses.Recently browsers have been making large steps to protect user’s data. This is great, however, it means that it can sometimes be tricky to get these applications working. Almost everything will require a secure connection to work. Secure connection generally means two things: one the website address includes https://
at the front, meaning that all data passed between the browser and server is encrypted, or the app is being run locally and acessed with localhost
.
The easiest way to experiment with these functions is to run a local rstudio instance on your laptop or desktop and then run the shiny app in the browser. When hosting an app for public consumption make sure you have an ssl encrypted server (I.e. https
).
A workaround for using Rstudio Server on a remote server that is not secured with https
is to do port forwarding with the ssh
command. E.g. ssh -L 127.0.0.1:8787: 127.0.0.1:8787 me@my_servers_address
. This will allow you to use localhost
for your apps.
The probability of there being bugs in these functions is unfortunately high. If you’ve found one I would be delighted if you could file a new issue here. I’ll try my best to at least respond.