Shiny Developer Series
Shiny Developer Series

Shiny Developer Series

Eric Nantz

Overview
Episodes

Details

The goals of the Shiny Developer Series are to showcase the innovative applications and packages in the ever-growing Shiny ecosystem, as well as the brilliant developers behind them! This is the audio-only feed in case you want to listen to the content on the go. Visit shinydevseries.com for the video version of all episodes

Recent Episodes

Episode 25: Colin Fay is back!
MAY 27, 2022
Episode 25: Colin Fay is back!
One of my biggest joys of the Shiny Developer Series is watching the journeys of many innovations in the Shiny ecosystem from the brilliant community of developers and practitioners. It is my great pleasure in episode 25 to welcome back data scientist &amp; software engineer Colin Fay! Picking up from his last appearance almost three years ago, Colin takes us through the journey of authoring the recently-published Engineering Production Shiny and his favorite principles covered in the book. We also discuss the uptake of golem in the R community, his new approaches to starting development of a Shiny app integrating customized HTML templates, and even a little real-time consulting on using his brand-new brochure package for a fun learning project!<br />Resources mentioned in the episode<br /><ul><li><a href="https://engineering-shiny.org/" target="_blank">Engineering Production-Grade Shiny Apps</a></li><li><a href="https://www.w3schools.com/w3css/w3css_templates.asp" target="_blank">W3.CSS Templates</a></li><li><a href="https://thinkr-open.github.io/golem/" target="_blank">{golem}</a>: Opinionated framework for building production-grade Shiny applications</li><li><a href="https://github.com/ColinFay/brochure" target="_blank">{brochure}</a> : Natively multipage Shiny apps</li><li><a href="https://github.com/ColinFay/golemexamples" target="_blank">golemexamples</a>: Gathering in one place some {golem} examples</li></ul>Episode Timestamps<br /><a href="https://youtube.com/watch?v=agwgiLpiBFo&amp;t=0s" target="_blank">00:00:00</a> Episode Introduction <br /><br /> <a href="https://youtube.com/watch?v=agwgiLpiBFo&amp;t=75s" target="_blank">00:01:15</a> Engineering Production-Grade Shiny Apps <br /><br /> <a href="https://youtube.com/watch?v=agwgiLpiBFo&amp;t=660s" target="_blank">00:11:00</a> The current state and future of golem <br /><br /> <a href="https://youtube.com/watch?v=agwgiLpiBFo&amp;t=680s" target="_blank">00:11:20</a> 'Once you go golem, you never go back!' <br /><br /> <a href="https://youtube.com/watch?v=agwgiLpiBFo&amp;t=1569s" target="_blank">00:26:09</a> HTML Template Demo <br /><br /> <a href="https://youtube.com/watch?v=agwgiLpiBFo&amp;t=2255s" target="_blank">00:37:35</a> brochure package discussion <br /><br /> <a href="https://youtube.com/watch?v=agwgiLpiBFo&amp;t=3850s" target="_blank">01:04:10</a> Advice for Shiny developers seeking to get their apps in shape for production&nbsp;
play-circle
73 MIN
Episode 32: Consulting with Shiny Panel Discussion
MAY 27, 2022
Episode 32: Consulting with Shiny Panel Discussion
In this special live recording of the Shiny Developer Series held at the first-ever Appsilon Shiny Conferenbce, host Eric Nantz welcomed back an all-star panel of Dean Attali, Tanya Cashorali, Pedro Silva, and Mike Thomas to share their unique perspectives on the life of a Shiny application developer in the world of consulting. The panel discussed topics such as their favorite techniques used across production apps, advice for becoming a Shiny consultant, and ways Shiny can integrate seamlessly with other tech stacks.<br />Resources mentioned in the episode<br /><ul><li>Shiny Modules: <a href="https://shiny.rstudio.com/articles/modules.html" target="_blank">shiny.rstudio.com/articles/modules.html</a></li><li>Overview of the {sass} package: <a href="https://rstudio.github.io/sass/articles/sass.html" target="_blank">rstudio.github.io/sass/articles/sass.html</a></li><li>{waiter} Loading screens for Shiny: <a href="https://github.com/JohnCoene/waiter" target="_blank">github.com/JohnCoene/waiter</a></li><li>Tooltips with {shinyBS}: <a href="https://ebailey78.github.io/shinyBS/docs/Tooltips_and_Popovers.html" target="_blank">ebailey78.github.io/shinyBS/docs/Tooltips_and_Popovers.html</a></li><li>Interactive web-based data visualization with R, {plotly}, and {shiny}: <a href="https://plotly-r.com" target="_blank">plotly-r.com</a></li><li>{shinyjs} Easily improve the user experience of your Shiny apps in seconds: <a href="https://deanattali.com/shinyjs/" target="_blank">deanattali.com/shinyjs/</a></li><li>{reactable} Interactive data tables for R: <a href="https://glin.github.io/reactable" target="_blank">glin.github.io/reactable</a></li><li><a href="https://www.oreilly.com/library/view/clean-code-a/9780136083238/" target="_blank">Clean Code</a>: A Handbook of Agile Software Craftsmanship</li></ul>Episode Timestamps<br /><a href="https://youtube.com/watch?v=v0hk5xteYjQ&amp;t=0s" target="_blank">00:00:00</a> Panelist introductions <br /><br /> <a href="https://youtube.com/watch?v=v0hk5xteYjQ&amp;t=200s" target="_blank">00:03:20</a> What are key skills to build production-quality Shiny apps <br /><br /> <a href="https://youtube.com/watch?v=v0hk5xteYjQ&amp;t=605s" target="_blank">00:10:05</a> Creating an app that doesn't feel like a standard Shiny app <br /><br /> <a href="https://youtube.com/watch?v=v0hk5xteYjQ&amp;t=1035s" target="_blank">00:17:15</a> Getting started with consulting/freelancing Shiny development <br /><br /> <a href="https://youtube.com/watch?v=v0hk5xteYjQ&amp;t=1620s" target="_blank">00:27:00</a> Advice for teams to increase Shiny dev skills <br /><br /> <a href="https://youtube.com/watch?v=v0hk5xteYjQ&amp;t=2170s" target="_blank">00:36:10</a> Tools/packages used every day <br /><br /> <a href="https://youtube.com/watch?v=v0hk5xteYjQ&amp;t=2715s" target="_blank">00:45:15</a> App development workflows <br /><br /> <a href="https://youtube.com/watch?v=v0hk5xteYjQ&amp;t=2970s" target="_blank">00:49:30</a> Underrated techniques <br /><br /> <a href="https://youtube.com/watch?v=v0hk5xteYjQ&amp;t=3500s" target="_blank">00:58:20</a> Episode wrapup&nbsp;<br />shinydevseries::session_info()<br />๐Ÿ“ฝ Find previous interviews at <a href="https://shinydevseries.com" target="_blank">https://shinydevseries.com</a><br />๐Ÿ“‹ Feedback is more than welcome! Please send your comments or suggestions on our contact form at <a href="https://shinydevseries.com/contact" target="_blank">shinydevseries.com/contact</a><br />If you enjoyed this video or got value from it, then consider dropping something in the tip jar. Any money raised will be used to improve the channel and invest in additional equipment and resources to make the content even better!<br />๐Ÿ’ฐ <a href="https://bit.ly/sdstip" target="_blank">https://bit.ly/sdstip</a><br />๐Ÿ“จ Help shape the future direction of the Shiny Developer Series live streams by completing this very short <a href="https://forms.gle/wuveHJWZLjuzBQaC7" target="_blank">survey</a><br />Media production for the Shiny Developer Series is made possible by these outstanding projects and platforms:<br /><ul><li>OBS Studio: <a href="https://obsproject.com/" target="_blank">https://obsproject.com/</a></li><li>OBS Fully Loaded install script by Martin Wimpress: <a href="https://github.com/wimpysworld/obs-fully-loaded" target="_blank">https://github.com/wimpysworld/obs-fully-loaded</a></li><li>VDO Ninja: <a href="https://vdo.ninja" target="_blank">https://vdo.ninja</a></li><li>StreamElements: <a href="https://streamelements.com" target="_blank">https://streamelements.com</a></li><li>ShotCut: <a href="https://shotcut.org/" target="_blank">https://shotcut.org/</a></li><li>Pop@_OS by System76: <a href="https://pop.system76.com/" target="_blank">https://pop.system76.com/</a></li><li>Ubuntu: <a href="https://ubuntu.com/" target="_blank">https://ubuntu.com/</a></li></ul>
play-circle
59 MIN
Episode 24: Illustrating the MyPaintings Masterpiece
MAY 27, 2022
Episode 24: Illustrating the MyPaintings Masterpiece
In episode 24 of the Shiny Developer Series, we kick off a series of episodes that spotlight amazing Shiny applications submitted in the 2021 RStudio Shiny Contest! David Barkemeyer joins Eric to uncover the technical achievements and design philosophy of his myPaintings application, complete with many innovative capabilities that greatly enhance the user experience and backend infrastructure. Throughout the episode, you will hear David's perspectives on effective techniques to manage application state, integration of custom javascript, and much more!<br />Resources mentioned in the episode<br /><ul><li>David on GitHub: <a href="https://github.com/DavidBarke" target="_blank">https://github.com/DavidBarke</a></li><li><a href="https://community.rstudio.com/t/mypaintings-painting-trading-platform-shiny-contest-submission/104278" target="_blank">myPaintings - Painting Trading Platform</a></li><li>Shiny app: <a href="https://mypaintings.davidbarke.com" target="_blank">https://mypaintings.davidbarke.com</a></li><li>GitHub Repo: <a href="https://github.com/DavidBarke/mypaintings" target="_blank">https://github.com/DavidBarke/mypaintings</a></li><li><a href="https://deanattali.com/shinyjs" target="_blank">{shinyjs}</a></li><li><a href="https://rinterface.github.io/bs4Dash" target="_blank">{bs4Dash}</a></li></ul>Episode Timestamps<br /><a href="https://youtube.com/watch?v=QzmrhPmKByA&amp;t=0s" target="_blank">00:00:00</a> Episode Introduction <br /><br /> <a href="https://youtube.com/watch?v=QzmrhPmKByA&amp;t=204s" target="_blank">00:03:24</a> How David got started with R &amp; Shiny <br /><br /> <a href="https://youtube.com/watch?v=QzmrhPmKByA&amp;t=340s" target="_blank">00:05:40</a> Introduction to myPaintings <br /><br /> <a href="https://youtube.com/watch?v=QzmrhPmKByA&amp;t=1455s" target="_blank">00:24:15</a> Infinite scroll feature <br /><br /> <a href="https://youtube.com/watch?v=QzmrhPmKByA&amp;t=1822s" target="_blank">00:30:22</a> Design UI &amp; UX of myPaintings <br /><br /> <a href="https://youtube.com/watch?v=QzmrhPmKByA&amp;t=2055s" target="_blank">00:34:15</a> User management &amp; helper functions <br /><br /> <a href="https://youtube.com/watch?v=QzmrhPmKByA&amp;t=2811s" target="_blank">00:46:51</a> Overall app &amp; file organization <br /><br /> <a href="https://youtube.com/watch?v=QzmrhPmKByA&amp;t=2968s" target="_blank">00:49:28</a> Using .values to store &amp; update user state and environment <br /><br /> <a href="https://youtube.com/watch?v=QzmrhPmKByA&amp;t=3220s" target="_blank">00:53:40</a> R6 classes as another option <br /><br /> <a href="https://youtube.com/watch?v=QzmrhPmKByA&amp;t=3620s" target="_blank">01:00:20</a> Recap and conclusion&nbsp;
play-circle
62 MIN
Episode 30: The Connecticut COVID-19 Test Spotter App (Part 1)
MAY 27, 2022
Episode 30: The Connecticut COVID-19 Test Spotter App (Part 1)
Episode 30 of the Shiny Developer Series reveals just how the power of open source software can be used to provide meaningful improvement to our daily lives. In the first of a two-part series, chief data scientist Mike Thomas reveals the motivation behind his brilliant COVID-19 test locator Shiny application, empowering a local community in Connecticut to efficiently report and track availability of test kits in a huge time of need. After a tour of the application interface, Mike shares his favorite techniques to bring an efficient user experience and the backend integrations with APIs to bring production-grade features to life.<br />Resources mentioned in the episode<br /><ul><li>COVID-19 At-Home Test Spotter (App) - <a href="https://ketchbrookanalytics.shinyapps.io/covid_test_spotter/" target="_blank">ketchbrookanalytics.shinyapps.io/covid_test_spotter</a></li><li>COVID-19 At-Home Test Spotter (Code) - <a href="https://github.com/ketchbrookanalytics/covid_test_spotter" target="_blank">github.com/ketchbrookanalytics/covid_test_spotter</a></li><li>App blog post - <a href="https://www.ketchbrookanalytics.com/post/ketchbrook-analytics-launches-website-to-help-connecticut-residents-find-covid-19-test-kits" target="_blank">www.ketchbrookanalytics.com/post/ketchbrook-analytics-launches-website-to-help-connecticut-residents-find-covid-19-test-kits</a></li><li>Olivia Adams' interview with CNN - <a href="https://www.cnn.com/videos/health/2021/02/08/software-developer-builds-simple-massachusetts-covid-19-vaccine-website-olivia-adams-intv-newday-vpx.cnn" target="_blank">www.cnn.com/videos/health/2021/02/08/software-developer-builds-simple-massachusetts-covid-19-vaccine-website-olivia-adams-intv-newday-vpx.cnn</a></li><li>R Packages by Hadley Wickham and Jenny Bryan - <a href="https://r-pkgs.org/" target="_blank">r-pkgs.org</a></li><li>{googleWay} Shiny vignette - <a href="https://symbolixau.github.io/googleway/articles/googleway-vignette.html#shiny" target="_blank">symbolixau.github.io/googleway/articles/googleway-vignette.html#shiny</a></li></ul>Episode Timestamps<br /><a href="https://youtube.com/watch?v=21MnLDuRbS8&amp;t=0s" target="_blank">00:00:00</a> Episode Introduction <br /><br /> <a href="https://youtube.com/watch?v=21MnLDuRbS8&amp;t=91s" target="_blank">00:01:31</a> Mike's introductiona and journey with R &amp; Shiny <br /><br /> <a href="https://youtube.com/watch?v=21MnLDuRbS8&amp;t=440s" target="_blank">00:07:20</a> Data science consulting and Ketchbrook Analytics <br /><br /> <a href="https://youtube.com/watch?v=21MnLDuRbS8&amp;t=700s" target="_blank">00:11:40</a> Olivia Adams' inspiring story <br /><br /> <a href="https://youtube.com/watch?v=21MnLDuRbS8&amp;t=1060s" target="_blank">00:17:40</a> Demo of Mike's COVID-19 At-Home Test Spotter App <br /><br /> <a href="https://youtube.com/watch?v=21MnLDuRbS8&amp;t=1915s" target="_blank">00:31:55</a> App code introduction <br /><br /> <a href="https://youtube.com/watch?v=21MnLDuRbS8&amp;t=1930s" target="_blank">00:32:10</a> googleway package integrating the Google Maps API <br /><br /> <a href="https://youtube.com/watch?v=21MnLDuRbS8&amp;t=2185s" target="_blank">00:36:25</a> Pulling addresses from map searches <br /><br /> <a href="https://youtube.com/watch?v=21MnLDuRbS8&amp;t=2470s" target="_blank">00:41:10</a> Using MongoDB for records collection <br /><br /> <a href="https://youtube.com/watch?v=21MnLDuRbS8&amp;t=2595s" target="_blank">00:43:15</a> bslib to simulate the multi-page app experience <br /><br /> <a href="https://youtube.com/watch?v=21MnLDuRbS8&amp;t=2780s" target="_blank">00:46:20</a> Episode wrapup&nbsp;<br />shinydevseries::session_info()<br />๐Ÿ“ฝ Find previous interviews at <a href="https://shinydevseries.com" target="_blank">https://shinydevseries.com</a><br />๐Ÿ“‹ Feedback is more than welcome! Please send your comments or suggestions on our contact form at <a href="https://shinydevseries.com/contact" target="_blank">shinydevseries.com/contact</a><br />If you enjoyed this video or got value from it, then consider dropping something in the tip jar. Any money raised will be used to improve the channel and invest in additional equipment and resources to make the content even better!<br />๐Ÿ’ฐ <a href="https://bit.ly/sdstip" target="_blank">https://bit.ly/sdstip</a><br />๐Ÿ“จ Help shape the future direction of the Shiny Developer Series live streams by completing this very short <a href="https://forms.gle/wuveHJWZLjuzBQaC7" target="_blank">survey</a><br />Media production for the Shiny Developer Series is made possible by these outstanding projects and platforms:<br /><ul><li>OBS Studio: <a href="https://obsproject.com/" target="_blank">https://obsproject.com/</a></li><li>OBS Fully Loaded install script by Martin Wimpress: <a href="https://github.com/wimpysworld/obs-fully-loaded" target="_blank">https://github.com/wimpysworld/obs-fully-loaded</a></li><li>VDO Ninja: <a href="https://vdo.ninja" target="_blank">https://vdo.ninja</a></li><li>StreamElements: <a href="https://streamelements.com" target="_blank">https://streamelements.com</a></li><li>ShotCut: <a href="https://shotcut.org/" target="_blank">https://shotcut.org/</a></li><li>Pop@_OS by System76: <a href="https://pop.system76.com/" target="_blank">https://pop.system76.com/</a></li><li>Ubuntu: <a href="https://ubuntu.com/" target="_blank">https://ubuntu.com/</a></li></ul>
play-circle
47 MIN
Episode 26: Peeling back the curtain of Movie Vue R (Part 1)
MAY 27, 2022
Episode 26: Peeling back the curtain of Movie Vue R (Part 1)
What makes a great Shiny app? Anything that helps your users explore and find answers from data. And it helps when your apps is beautiful and fast. It is now easier than ever for Shiny developers to create these beautiful, dynamic, quick-reacting, multipage shiny apps. In this episode of the Shiny Developer Serie -- the first of two parts -- Eric Nantz hosts Herman Sontrop and Kenton Russell as they introduce the tools behind their Movie Vue R Shiny application. They submitted this application to the 2021 Shiny Contest and have shared the code and documentation with the Shiny developer community. Part 1 is a high-level tour of what is inside the Movie Vue R Shiny application and how the Vue javascript framework is used to offer R and Shiny components really nice user interface elements.<br />Resources mentioned in the episode<br /><ul><li>Movie Vue R Shiny App: <a href="https://friss.shinyapps.io/shiny-vue-r/" target="_blank">friss.shinyapps.io/shiny-vue-r</a></li><li><a href="https://community.rstudio.com/t/movie-vue-r-shiny-contest-submission/104905" target="_blank">Contest Submission Post</a> on RStudio Community</li><li>App GitHub repository: <a href="https://github.com/FrissAnalytics/shiny-vue-r" target="_blank">github.com/FrissAnalytics/shiny-vue-r</a></li><li>Discussion slides available at <a href="https://shinydevseries-assets.us-east-1.linodeobjects.com/ShinyMovieVueR.pptx" target="_blank">this link</a></li><li>Vue.js - Progressive JavaScript framework: <a href="https://vuejs.org" target="_blank">vuejs.org</a></li><li>Vuetify - Material design framework for Vue: <a href="https://vuetifyjs.com/en" target="_blank">vuetifyjs.com</a></li><li>HTML templates article: <a href="https://shiny.rstudio.com/articles/templates.html" target="_blank">shiny.rstudio.com/articles/templates.html</a></li><li>Material design icons: <a href="https://materialdesignicons.com/" target="_blank">materialdesignicons.com</a></li><li>http-vue-loader - load .vue files from your HTML/JS: <a href="https://github.com/FranckFreiburger/http-vue-loader" target="_blank">github.com/FranckFreiburger/http-vue-loader</a></li><li>Vuex getting started guide: <a href="https://vuex.vuejs.org/guide/" target="_blank">vuex.vuejs.org/guide</a></li><li>Vue Router - The official router for Vue.js: <a href="https://router.vuejs.org/" target="_blank">router.vuejs.org</a></li><li>UI component for Globe Data Visualization using ThreeJS/WebGL: <a href="https://globe.gl/" target="_blank">globe.gl</a></li><li>Lodash - A modern JavaScript utility library delivering modularity, performance &amp; extras: <a href="https://lodash.com/" target="_blank">lodash.com</a></li><li>d3.js - Data-Driven Documents: <a href="https://d3js.org/" target="_blank">d3js,org</a></li><li>Mitt - Tiny 200b functional event emitter / pubsub: <a href="https://github.com/developit/mitt" target="_blank">github.com/developit/mitt</a></li><li>Overlay Scrollbars - A javascript scrollbar plugin which hides native scrollbars, provides custom styleable overlay scrollbars and keeps the native functionality and feeling: <a href="https://kingsora.github.io/OverlayScrollbars" target="_blank">kingsora.github.io/OverlayScrollbars</a></li><li>Kent's listviewer HTML widget for viewing lists: <a href="https://cran.r-project.org/package=listviewer" target="_blank">cran.r-project.org/package=listviewer</a></li><li>plumber - Turn your R code into a web API: <a href="https://www.rplumber.io/" target="_blank">www.rplumber.io</a></li></ul>Episode Timestamps<br /><a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=0s" target="_blank">00:00:00</a> Episode Introduction <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=60s" target="_blank">00:01:00</a> Introduction to Herman Sontrop <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=370s" target="_blank">00:06:10</a> Introduction to Kenton Russell <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=600s" target="_blank">00:10:00</a> High-level walkthrough of Movie Vue R <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=1165s" target="_blank">00:19:25</a> Diving into the code that drives Movie Vue R <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=1355s" target="_blank">00:22:35</a> Overview and motivation behind Vue <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=2310s" target="_blank">00:38:30</a> Vue instance example <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=2400s" target="_blank">00:40:00</a> Vue reactivty examples <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=2770s" target="_blank">00:46:10</a> Vue.js components are like Shiny modules <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=2990s" target="_blank">00:49:50</a> Single file components <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=3256s" target="_blank">00:54:16</a> Breaking down a Vue component into useful parts; props, data, methods, computed, and watch <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=3440s" target="_blank">00:57:20</a> Vuetify, tap into many pre-built components, styles, and more <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=4200s" target="_blank">01:10:00</a> Covid Globe Example in Shiny app <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=4360s" target="_blank">01:12:40</a> Rendering a ggplot <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=4515s" target="_blank">01:15:15</a> Summarizing parts of the Movie Vue R app <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=4750s" target="_blank">01:19:10</a> A look at template.html. A detailed walk through the organization of the app's HTML and files <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=5190s" target="_blank">01:26:30</a> Where R and Shiny are added to a Vue app. And how your app can send messages back to Shiny and R <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=5480s" target="_blank">01:31:20</a> Loading images and ggplots <br /><br /> <a href="https://youtube.com/watch?v=SkFLHbHrPD4&amp;t=5880s" target="_blank">01:38:00</a> Episode wrapup&nbsp;
play-circle
99 MIN