<p><div><div><div><div data-show-faces="false" data-height="21" data-width="100" data-layout="button_count" data-send="true" data-href="https://www.r-bloggers.com/shiny-collections-google-docs-like-live-collaboration-in-shiny/"></div></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="http://appsilondatascience.com/blog/rstats/2017/08/09/shiny-collections.html"> Appsilon Data Science Blog</a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<p>A few weeks ago, our CTO Marek Rogala gave an engaging talk at the User Conference in Brussels. Despite being one of the last talks, he drew a crowd that filled the room and had significant viewership online.</p>
<p>Marek’s talk was entitled <a rel="nofollow" href="https://channel9.msdn.com/Events/useR-international-R-User-conferences/useR-International-R-User-2017-Conference/shinycollections-Google-Docs-like-live-collaboration-in-Shiny#comments" target="_blank">shiny.collections: Google Docs-like live collaboration in Shiny.</a> In short, he went over a package we built that allows for persistence and collaboration without losing reactivity in Shiny. Users can enter information and have continuity, knowing that if they exit and return to the app, their inputs will still be there.</p>
<div>
<iframe allowfullscreen="" src="https://channel9.msdn.com/Events/useR-international-R-User-conferences/useR-International-R-User-2017-Conference/shinycollections-Google-Docs-like-live-collaboration-in-Shiny/player"></iframe>
</div>
<p>Let’s go over his talk.</p>
<p>Recently, Shiny users have demanded more from their applications. The advent of cloud applications, especially ones like Google Docs, have accustomed users to collaboration. They expect their Shiny apps to be more than just an interactive tool for data visualisation, but rather, a production ready application that works like any other tool. Their data has to be saved automatically. Interactive collaboration is a must in some use cases. And the application must be delivered as fast as possible.</p>
<p>You need to use a reactive database such as rethinkDB, Firebase, or mongoDB to achieve this. mongoDB isn’t really a reactive database, but there are ways where it can be used as one. We are going to use rethinkDB in our case. Also, we are going to use <a rel="nofollow" href="https://cran.r-project.org/web/packages/rethinker/index.html" target="_blank"><em>rethinker</em></a>, which is a rethinkDB driver for R. But using <em>rethinker</em> is not the most ideal solution, as callback do not work very well with Shiny and it is quite painful to configure to our needs.</p>
<p>To get around this, we created our own package built upon <em>rethinker</em> called <a rel="nofollow" href="https://appsilon.github.io/shiny.collections/" target="_blank"><em>shiny.collections</em></a>. It lets you easily connect to your shiny app and takes care of all of the trickiness involved. During his talk, Marek showed a live demo that involved creating a chat application. <a rel="nofollow" href="http://appsilondatascience.com/blog/rstats/2017/07/02/shiny-chat.html" target="_blank">Check out how to do this yourself.</a> I reccomend watching Marek first, as he has some valuable commentary you won’t find in the blog post.</p>
<p>This example is just a simple use case of what you can achieve with shiny.collections. We’ve made it a priority to make it convenient and easily integrable with other powerful tools, including DT, leaflet or rhandsontable.</p>
<p>Our goals for the future of this package include getting it on cran and diversifying the functionality of the API. Take a look at the our package and contribute. Get in touch with us for all of you other data science needs as well.</p>
	<p>
<div>
<div>To <strong>leave a comment</strong> for the author, please follow the link and comment on their blog: <strong><a href="http://appsilondatascience.com/blog/rstats/2017/08/09/shiny-collections.html"> Appsilon Data Science Blog</a></strong>.</div>
<hr>
<a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers.com</a> offers <strong><a rel="nofollow" href="https://feedburner.google.com/fb/a/mailverify?uri=RBloggers">daily e-mail updates</a></strong> about <a rel="nofollow" href="https://www.r-project.org/" title="The R Project for Statistical Computing">R</a> news and <a rel="nofollow" href="https://www.r-bloggers.com/search/tutorial" title="R tutorials">tutorials</a> on topics such as: <a rel="nofollow" href="https://www.r-bloggers.com/search/data%20science" title="Data science">Data science</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Big%20Data" title="Big Data">Big Data, <a rel="nofollow" href="https://www.r-users.com/" title="R jobs">R jobs</a>, visualization (<a rel="nofollow" href="https://www.r-bloggers.com/search/ggplot2" title="ggplot and ggplot2 tutorials">ggplot2</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/boxplot" title="Boxplots using lattice and ggplot2 tutorials">Boxplots</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/map" title="Maps and gis">maps</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/animation" title="Animation in R">animation</a>), programming (<a rel="nofollow" href="https://www.r-bloggers.com/search/RStudio" title="RStudio IDE for R">RStudio</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/sweave" title="Sweave and literate programming">Sweave</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/LaTeX" title="LaTeX in R">LaTeX</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/SQL" title="SQL and databases">SQL</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/eclipse" title="Eclipse IDE for R">Eclipse</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/git" title="git and github, Version Control System">git</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/hadoop" title="Large data in R using Hadoop">hadoop</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Web+Scraping" title="Web Scraping of google, facebook, yahoo, twitter and more using R">Web Scraping</a>) statistics (<a rel="nofollow" href="https://www.r-bloggers.com/search/regression" title="Regressions and ANOVA analysis tutorials">regression</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/PCA" title="principal component analysis tutorial">PCA</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/time+series" title="Time series">time series</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/trading" title="finance trading">trading</a>) and more...
<img width="1" alt="" src="http://feeds.feedburner.com/~r/RBloggers/~4/expcLBD9QwI" height="1"></a></div>