Shiny Developer Series

Eric Nantz
Shiny Developer Series

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

  1. 27/05/2022

    Episode 23: Tales of Shiny in production with Pedro Silva

    One of the common themes seen throughout the Shiny Developer Series is that effective Shiny development is much more than just getting an application to work! Other important considerations include applying Shiny to high-profile projects, ensuring a production-grade code base, and even building robust tooling to assist with development. I have the pleasure of discussing these with Appsilon software engineer and Shiny frontend developer Pedro da Silva! You will hear Pedro's practical advice on the many developer-friendly packages and tools he uses for production Shiny development, a detailed walkthrough of his (Shiny contest) award-winning Shiny Decisions application, and his recommendations for taking your Shiny development skills to the next level. Resources mentioned in the episode Pedro's website with links to posts and webinnars: https://www.pedrocsilva.comAppsilon: https://appsilon.comShiny Decisions repo: https://github.com/pedrocoutinhosilva/shiny.decisionsDeployed Shiny Decisions app: https://sparktuga.shinyapps.io/ShinyDecisionsR6 chapter from Advanced R: adv-r.hadley.nz/r6.html{glue} for interpreted string literals: https://glue.tidyverse.org/{tidymodules}: https://opensource.nibr.com/tidymodules/index.html{sass} for R and Shiny: https://rstudio.github.io/sass/index.html{bslib}: https://rstudio.github.io/bslib/John Coene's "Javascript for R" book: https://book.javascript-for-r.com/David Granjon's "Outstanding Shiny UI" book: https://unleash-shiny.rinterface.com/{renv}: https://rstudio.github.io/renv/articles/renv.html{testthat}: https://testthat.r-lib.org/{shinyloadtest}: https://rstudio.github.io/shinyloadtest/Tidyverse style guide: https://style.tidyverse.org/An lintr, which performs automated checks to confirm that you https://appsilon.com/conform to the style guide, https://github.com/jimhester/lintrMastering Shiny: https://mastering-shiny.org/Pedro's recommended Chrome extensions for development: Resolution Test: Test web pages in different screen resolutionsColorPick Eyedropper: A zoomed eyedropper & color chooser toolScreenshotting: Web page screen captureCSS Peeper: Extract CSS and build beautiful styleguidesEpisode Timestamps 00:00:05 Episode Introduction 00:02:49 Appsilon, Shiny consulting 00:07:49 The wonderful 'black magic' of Shiny 00:09:55 Custom Shiny apps in the enterprise. Number one theme: migrating from excel 00:17:45 Demo of Shiny app game Shiny Decisions 00:22:55 A code walkthrough of Shiny Decisions 00:32:55 On styling Shiny Decisions 00:50:45 The value of learning a little javascript to improve your Shiny apps 00:51:55 Book recommendations for integrating Javascript into your Shiny app and improving UI 00:52:55 Pedro on jQuery for Shiny 00:56:05 Advice for building Shiny apps in production 01:10:05 Advice for people seeking a career in data science with R and Shiny

    1h17min
  2. 27/05/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. Resources mentioned in the episode Movie Vue R Shiny App: friss.shinyapps.io/shiny-vue-rContest Submission Post on RStudio CommunityApp GitHub repository: github.com/FrissAnalytics/shiny-vue-rDiscussion slides available at this linkVue.js - Progressive JavaScript framework: vuejs.orgVuetify - Material design framework for Vue: vuetifyjs.comHTML templates article: shiny.rstudio.com/articles/templates.htmlMaterial design icons: materialdesignicons.comhttp-vue-loader - load .vue files from your HTML/JS: github.com/FranckFreiburger/http-vue-loaderVuex getting started guide: vuex.vuejs.org/guideVue Router - The official router for Vue.js: router.vuejs.orgUI component for Globe Data Visualization using ThreeJS/WebGL: globe.glLodash - A modern JavaScript utility library delivering modularity, performance & extras: lodash.comd3.js - Data-Driven Documents: d3js,orgMitt - Tiny 200b functional event emitter / pubsub: github.com/developit/mittOverlay Scrollbars - A javascript scrollbar plugin which hides native scrollbars, provides custom styleable overlay scrollbars and keeps the native functionality and feeling: kingsora.github.io/OverlayScrollbarsKent's listviewer HTML widget for viewing lists: cran.r-project.org/package=listviewerplumber - Turn your R code into a web API: www.rplumber.ioEpisode Timestamps 00:00:00 Episode Introduction 00:01:00 Introduction to Herman Sontrop 00:06:10 Introduction to Kenton Russell 00:10:00 High-level walkthrough of Movie Vue R 00:19:25 Diving into the code that drives Movie Vue R 00:22:35 Overview and motivation behind Vue 00:38:30 Vue instance example 00:40:00 Vue reactivty examples 00:46:10 Vue.js components are like Shiny modules 00:49:50 Single file components 00:54:16 Breaking down a Vue component into useful parts; props, data, methods, computed, and watch 00:57:20 Vuetify, tap into many pre-built components, styles, and more 01:10:00 Covid Globe Example in Shiny app 01:12:40 Rendering a ggplot 01:15:15 Summarizing parts of the Movie Vue R app 01:19:10 A look at template.html. A detailed walk through the organization of the app's HTML and files 01:26:30 Where R and Shiny are added to a Vue app. And how your app can send messages back to Shiny and R 01:31:20 Loading images and ggplots 01:38:00 Episode wrapup

    1h39min
  3. 27/05/2022

    Episode 27: Peeling back the curtain of Movie Vue R (Part 2)

    After a terrific showing of the eye-opening Movie Vue R in episode 26, Kent Russell and Herman Sontrop reveal the fundamental cast of R packages and workflows bringing the app to life. Kent leads us through live demonstrations of his R packages binding to Vue.js, illustrating the seamless way you can link existing HTML widgets to the Vue framework, as well as the mechanics of incorporating Shiny into existing Vue templates to unlock immense potential. Later in the episode we learn revolutionary techniques for adapting the popular crosstalk package to Vue apps, as well as a unique way of tracking application state. Each of these demonstrations reveal many nuggets of development wisdom straight from a true pioneer in bridging the amazing worlds of JavaScript and R together! Resources mentioned in the episode Kent's packages and examples used in the live coding demonstrations: vue.js for R - github.com/vue-r/vueRvue-cli-r - github.com/timelyportfolio/vue-cli-rvite vue3 and Shiny - github.com/timelyportfolio/vite-vue-rvaltio vanilla with utils as standalone using browserify - github.com/timelyportfolio/valtio_standaloneKent's listviewer HTML widget for viewing lists: cran.r-project.org/package=listviewerLinking vue to crosstalk - github.com/vue-r/vueR/issues/12Episode Timestamps 00:00:00 Episode Introduction 00:01:00 The vueR package and introductory examples 00:06:55 Live coding example with vuetify 00:13:55 vueR example, adding a calendar date selector and other mint-ui elements to your Shiny app 00:21:00 htmlwidget leaflet map example 00:24:10 Example of a sunburst plot 00:33:15 Example of a checkbox selector for hierarchical element trees 00:36:00 JavaScript build steps with Vue CLI 00:59:30 vite vue 3 build example 01:09:30 A call to the community to help with vueR development goals 01:10:30 Integrating crosstalk 01:14:30 Using vuex as a store of state. Time travel through the state of your Shiny app 01:20:24 Example of valtio 01:27:08 Episode wrapup

    1h29min
  4. 27/05/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. Resources mentioned in the episode COVID-19 At-Home Test Spotter (App) - ketchbrookanalytics.shinyapps.io/covid_test_spotterCOVID-19 At-Home Test Spotter (Code) - github.com/ketchbrookanalytics/covid_test_spotterApp blog post - www.ketchbrookanalytics.com/post/ketchbrook-analytics-launches-website-to-help-connecticut-residents-find-covid-19-test-kitsOlivia Adams' interview with CNN - www.cnn.com/videos/health/2021/02/08/software-developer-builds-simple-massachusetts-covid-19-vaccine-website-olivia-adams-intv-newday-vpx.cnnR Packages by Hadley Wickham and Jenny Bryan - r-pkgs.org{googleWay} Shiny vignette - symbolixau.github.io/googleway/articles/googleway-vignette.html#shinyEpisode Timestamps 00:00:00 Episode Introduction 00:01:31 Mike's introductiona and journey with R & Shiny 00:07:20 Data science consulting and Ketchbrook Analytics 00:11:40 Olivia Adams' inspiring story 00:17:40 Demo of Mike's COVID-19 At-Home Test Spotter App 00:31:55 App code introduction 00:32:10 googleway package integrating the Google Maps API 00:36:25 Pulling addresses from map searches 00:41:10 Using MongoDB for records collection 00:43:15 bslib to simulate the multi-page app experience 00:46:20 Episode wrapup  shinydevseries::session_info() 📽 Find previous interviews at https://shinydevseries.com 📋 Feedback is more than welcome! Please send your comments or suggestions on our contact form at shinydevseries.com/contact 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! 💰 https://bit.ly/sdstip 📨 Help shape the future direction of the Shiny Developer Series live streams by completing this very short survey Media production for the Shiny Developer Series is made possible by these outstanding projects and platforms: OBS Studio: https://obsproject.com/OBS Fully Loaded install script by Martin Wimpress: https://github.com/wimpysworld/obs-fully-loadedVDO Ninja: https://vdo.ninjaStreamElements: https://streamelements.comShotCut: https://shotcut.org/Pop@_OS by System76: https://pop.system76.com/Ubuntu: https://ubuntu.com/

    47min
  5. 27/05/2022

    Episode 31: The Connecticut COVID-19 Test Spotter App (Part 2)

    The Shiny Developer Series continues our spotlight on the COVID-19 Test Spotter application created by renowned data scientist and entrepreneur Mike Thomas! In this episode we learn how Mike implemented robust database techniques and logic to manage user-supplied data, navigating the use of multiple mapping APIs, and achieving a practical development-to-production strategy for releasing the application to the public. Plus we have a great discussion on what production means in the space of Shiny development, and much more.  Resources mentioned in the episode COVID-19 At-Home Test Spotter (App) - ketchbrookanalytics.shinyapps.io/covid_test_spotterCOVID-19 At-Home Test Spotter (Code) - github.com/ketchbrookanalytics/covid_test_spotterApp blog post - www.ketchbrookanalytics.com/post/ketchbrook-analytics-launches-website-to-help-connecticut-residents-find-covid-19-test-kits{googleWay} Shiny vignette - symbolixau.github.io/googleway/articles/googleway-vignette.html#shiny{mongolite} user manual - jeroen.github.io/mongolite{reactable} Interactive data tables for R - glin.github.io/reactableEpisode Timestamps 00:00:00 Episode Introduction 00:00:46 CRUD workflow and flowchart, with MongoDB database updates 00:09:41 Diving into the Google Maps and Places API 00:15:55 Geographic fencing, and dealing with unexpected user behavior. 00:22:35 Deploying with a dev and production branch. 00:28:15 Future plans for the app 00:30:50 Advice for building Shiny apps in production 00:31:20 Production apps is all about reproducibility: OS, dependencies, and the code. 00:33:15 Pay attention to warning messages in your console. 00:34:22 Modularization and Golem 00:38:08 You can have too much reactivity, such as overextending uiOutput() / renderUI() 00:40:10 Episode wrapup  shinydevseries::session_info() 📽 Find previous interviews at https://shinydevseries.com 📋 Feedback is more than welcome! Please send your comments or suggestions on our contact form at shinydevseries.com/contact 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! 💰 https://bit.ly/sdstip 📨 Help shape the future direction of the Shiny Developer Series live streams by completing this very short survey Media production for the Shiny Developer Series is made possible by these outstanding projects and platforms: OBS Studio: https://obsproject.com/OBS Fully Loaded install script by Martin Wimpress: https://github.com/wimpysworld/obs-fully-loadedVDO Ninja: https://vdo.ninjaStreamElements: https://streamelements.comShotCut: https://shotcut.org/Pop@_OS by System76: https://pop.system76.com/Ubuntu: https://ubuntu.com/

    43min
4,9
de 5
34 avaliações

Sobre

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

Para ouvir episódios explícitos, inicie sessão.

Fique por dentro deste podcast

Inicie sessão ou crie uma conta para seguir podcasts, salvar episódios e receber as atualizações mais recentes.

Selecionar um país ou região

África, Oriente Médio e Índia

Ásia‑Pacífico

Europa

América Latina e Caribe

Estados Unidos e Canadá