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
Fri, May 27, 2022
The Shiny Developer Series spotlight on the 2021 Shiny Contest continues with episode 28! Eric is joined by statistics lecturer Dr. Kate Saunders to share her unique coronaSweeper Shiny application which merges a well-known mini-game in the Windows world with modelling the spread of COVID19. On the surface it might seem straight-forward, but Kate walks us through her extensive design ideas of the algorithms and user experience of the application frontend. This was a very inspiring conversation that demonstrates the ways Shiny can be transformative to teaching real principles in mathematics, statistics, and beyond! Resources mentioned in the episode coronaSweeper App - katerobsau.shinyapps.io/Corona_Sweeper coronaSweeper Code - github.com/katerobsau/coronaSweeper Kate's contest submission post: community.rstudio.com/t/coronasweeper-shiny-contest-submission/104767 Follow Kate on Twitter - @katerobsau Episode Timestamps 00:00:00 Episode Introduction 00:04:45 Inspiration behind coronaSweeper 00:08:15 Demo of coronaSweeper 00:14:35 Code walkthrough 00:43:10 Shiny for teaching? 00:50:20 Episode wrapup
Fri, May 27, 2022
Whether in a sports pickup game or a different friendly competition, we often strive for balancing the distributions of skills so everyone can have fun. What does this have to do with Shiny? In episode 29, our coverage of the 2021 Shiny contest continues as I am joined by Douglas Mesquita and Luis Gustavo Silve e Silve who created the novel FairSplit Shiny application! Motivated by regular football pickup games, Douglas and Luis developed a novel algorithm to balance the distribution of individuals incorporating multiple traits that eventually wound up into a snazzy Shiny app that easily has something for everyone. This is yet another example of the many use cases Shiny brings at your fingertips. Resources mentioned in the episode FairSplit App - voronoys.shinyapps.io/fairsplit FairSplit Code - github.com/voronoys/fairsplit Contest submission post - community.rstudio.com/t/fairsplit-shiny-contest-submission/104752 Episode Timestamps 00:00:00 Episode & Douglas' introduction 00:02:50 Luis' introduction 00:07:30 Fairsplit Shiny app 00:17:10 Application walkthrough 00:27:20 Sidenote: Statistical bias introduced into the system 00:47:47 Code discussion 01:12:25 Episode wrapup
Fri, May 27, 2022
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! Resources mentioned in the episode David on GitHub: https://github.com/DavidBarke myPaintings - Painting Trading Platform Shiny app: https://mypaintings.davidbarke.com GitHub Repo: https://github.com/DavidBarke/mypaintings {shinyjs} {bs4Dash} Episode Timestamps 00:00:00 Episode Introduction 00:03:24 How David got started with R & Shiny 00:05:40 Introduction to myPaintings 00:24:15 Infinite scroll feature 00:30:22 Design UI & UX of myPaintings 00:34:15 User management & helper functions 00:46:51 Overall app & file organization 00:49:28 Using .values to store & update user state and environment 00:53:40 R6 classes as another option 01:00:20 Recap and conclusion
Fri, May 27, 2022
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 & 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! Resources mentioned in the episode Engineering Production-Grade Shiny Apps W3.CSS Templates {golem} : Opinionated framework for building production-grade Shiny applications {brochure} : Natively multipage Shiny apps golemexamples : Gathering in one place some {golem} examples Episode Timestamps 00:00:00 Episode Introduction 00:01:15 Engineering Production-Grade Shiny Apps 00:11:00 The current state and future of golem 00:11:20 'Once you go golem, you never go back!' 00:26:09 HTML Template Demo 00:37:35 brochure package discussion 01:04:10 Advice for Shiny developers seeking to get their apps in shape for production
Fri, May 27, 2022
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_spotter COVID-19 At-Home Test Spotter (Code) - github.com/ketchbrookanalytics/covid_test_spotter App blog post - www.ketchbrookanalytics.com/post/ketchbrook-analytics-launches-website-to-help-connecticut-residents-find-covid-19-test-kits Olivia 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.cnn R Packages by Hadley Wickham and Jenny Bryan - r-pkgs.org {googleWay} Shiny vignette - symbolixau.github.io/googleway/articles/googleway-vignette.html#shiny Episode 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 goog
Fri, May 27, 2022
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-r Contest Submission Post on RStudio Community App GitHub repository: github.com/FrissAnalytics/shiny-vue-r Discussion slides available at this link Vue.js - Progressive JavaScript framework: vuejs.org Vuetify - Material design framework for Vue: vuetifyjs.com HTML templates article: shiny.rstudio.com/articles/templates.html Material design icons: materialdesignicons.com http-vue-loader - load .vue files from your HTML/JS: github.com/FranckFreiburger/http-vue-loader Vuex getting started guide: vuex.vuejs.org/guide Vue Router - The official router for Vue.js: router.vuejs.org UI component for Globe Data Visualization using ThreeJS/WebGL: globe.gl Lodash - A modern JavaScript utility library delivering modularity, performance & extras: lodash.com d3.js - Data-Driven Documents: d3js,org Mitt - Tiny 200b functional event emitter / pubsub: github.com/developit/mitt Overlay Scrollbars - A javascript scrollbar plugin which hides native scrollbars, provides
Fri, May 27, 2022
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/vueR vue-cli-r - github.com/timelyportfolio/vue-cli-r vite vue3 and Shiny - github.com/timelyportfolio/vite-vue-r valtio vanilla with utils as standalone using browserify - github.com/timelyportfolio/valtio_standalone Kent's listviewer HTML widget for viewing lists: cran.r-project.org/package=listviewer Linking vue to crosstalk - github.com/vue-r/vueR/issues/12 Episode 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 <a href="https://youtube.com/wa
Fri, May 27, 2022
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. Resources mentioned in the episode Shiny Modules: shiny.rstudio.com/articles/modules.html Overview of the {sass} package: rstudio.github.io/sass/articles/sass.html {waiter} Loading screens for Shiny: github.com/JohnCoene/waiter Tooltips with {shinyBS}: ebailey78.github.io/shinyBS/docs/Tooltips_and_Popovers.html Interactive web-based data visualization with R, {plotly}, and {shiny}: plotly-r.com {shinyjs} Easily improve the user experience of your Shiny apps in seconds: deanattali.com/shinyjs/ {reactable} Interactive data tables for R: glin.github.io/reactable Clean Code : A Handbook of Agile Software Craftsmanship Episode Timestamps 00:00:00 Panelist introductions 00:03:20 What are key skills to build production-quality Shiny apps 00:10:05 Creating an app that doesn't feel like a standard Shiny app 00:17:15 Getting started with consulting/freelancing Shiny development 00:27:00 Advice for teams to increase Shiny dev skills 00:36:10 Tools/packages used every day 00:45:15 App development workflows 00:49:30 Underrated techniques <a href="https://youtube.com/wat
Fri, May 27, 2022
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.com Appsilon: https://appsilon.com Shiny Decisions repo: https://github.com/pedrocoutinhosilva/shiny.decisions Deployed Shiny Decisions app: https://sparktuga.shinyapps.io/ShinyDecisions R6 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/con
Fri, May 27, 2022
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_spotter COVID-19 At-Home Test Spotter (Code) - github.com/ketchbrookanalytics/covid_test_spotter App 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/reactable Episode 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. <a href="https://youtube.com/watch?v=GdxVtl3FwmI&t=1995
Fri, May 27, 2022
Earlier this year at RStudio Global, a lot of excitement among the Shiny enthusiasts centered on the brand new bslib and thematic packages for radically changing the style of typical Shiny app user interfaces. I am thrilled to get the inside story on this amazing development with the brilliant author, RStudio software engineer Carson Sievert! In this episode you will hear Carson's recommendations on getting started with bslib for both Shiny applications and even R-Markdown documents, why SASS (no, not that one) rules empower a Shiny developer to make sweeping changes in CSS, as well as the major milestone release of shinymeta, a package that directly addresses a huge need for traceable and reproducible analyses from Shiny apps in many industries such as life sciences. I hope you enjoy this episode and don't forget to subscribe to our channel so you can be first to know when future episodes are available! Resources mentioned in the episode Interactive web-based data visualization with R, plotly, and shiny bslib: Tools for theming shiny and rmarkdown from R via Bootstrap (3 or 4) Sass rstudio.github.io/bslib thematic: Simplified theming of ggplot2, lattice, and base R graphics rstudio.github.io/thematic shinymeta: Record and expose Shiny app logic using metaprogramming rstudio.github.io/shinymeta flexdashboard: Easy interactive dashboards for R pkgs.rstudio.com/flexdashboard Episode Timestamps 00:00:00 Episode Introduction 00:02:00 Joining the Shiny team at RStudio and Carson's book on plotly 00:06:39 Introducing bslib and how it makes custom theming of your Shiny app as easy as possible 00:08:47 Introducing thematic for simplified theming of ggplot2, lattice, and base R graphics 00:14:28 Getting started with bslib 00:23:45 Real-time theming wizard, a tool to play interactively with the theming customization of your shiny app or R Markdown document 00:29:25 Development version of flexdashboard supports bslib now <a href="https://youtube.com/watch?v=xTafvYX3zmE&
Fri, June 11, 2021
In episode 21 of the Shiny Developer Series, I have the pleasure of welcoming back the newest member of the Shiny team, Nick Strayer! We discuss the road Nick traveled to join RStudio full time, as well as the motivation behind the terrific Shiny App Stories, complete with a hands-on demonstration of new features in Shiny 1.6 such as bindCache and dynamic theming in the fun explore your weather application. All of that plus Nick\'s perspectives on the growing Shiny ecosystem and creating powerful data visualizations make this a must-see episode! Resources mentioned in the episode Shiny App Stories example - The "Why" documentation, plus demonstrations of new and advanced features in the context of real-world applications. bindCache() - To speed up your app's reloading of previously accessed data. Dynamic theming with bslib - bslib helps you theme your app really easily. session object getCurrentOutputInfo Data visualization innovators Nick follows: Nadieh Bremer ( @NadiehBremer ), Shirley Wu ( @sxywu ), Amelia Wattenberger ( @Wattenberger ). Episode Timestamps 00:00:00 Episode Introduction 00:06:15 Nick's journey since episode 5 00:08:10 Shiny app stories - an experimental form of documentation. Most documentation focuses on the How to do something, Shiny App Stories focuses on the Why 00:13:15 App Stories in action 00:16:25 bindCache() discussion on speeding up your Shiny app 00:22:57 Dynamic theming with {bslib} 00:27:00 The usefulness of the session object in an Shiny app 00:32:30 Including web-technologies (like custom js, css, incorp
Fri, June 11, 2021
Episode 20 of the Shiny Developer series is here! As someone who has authored many production grade Shiny applications, I have come to realize that sophisticated backend functionality is not the only area one needs to address, it is also the end-user experience and how the application is presented. I am thrilled to welcome back David Granjon to the Shiny Developer Series to discuss the journey and key topics addressed in his brand-new textbook Outstanding User Interfaces with Shiny! Plus David leads us through a comprehensive demonstration of amazing new capabilities of the awesome bs4Dash package, part of the RinteRface project. I hope you enjoy this episode! Resources mentioned in the episode Outstanding User Interfaces with Shiny (online) {bs4Dash} : Bootstrap 4 shinydashboard using AdminLTE3 Episode Timestamps 0:00 Episode Introduction 3:47 What's new in RinteRface 4:43 Demo of {bs4Dash} 24:09 David's new book: Outstanding User Interfaces with Shiny 38:15 Creating custom dashboard templates 43:53 Moving away from renderUI using custom handlers, and why you should manage content with handlers 46:50 Shiny UI advice, tips for balancing UX with backend performance of the app 54:40 Episode wrapup
Wed, March 10, 2021
A brand new season of the Shiny Developer Series kicks off with RStudio\'s chief scientist Hadley Wickham! Hadley joins Eric in episode 19 to discuss his exciting new book, Mastering Shiny. As author of many Tidyverse packages and long time contributor to the data science community, he has poured his wealth of experience into this book dedicated to helping you become a better Shiny developer. We talk about the origins of Shiny and advice for those just starting out. For those already familiar with Shiny we discuss debugging, how to level up your skills, and best practices for seeking help and contributing to the community. Resources mentioned in the episode Mastering Shiny (online) Advanced R: Second Edition R for Data Science Episode Timestamps 0:00 Episode introduction 2:05 Hadley's involvement with Shiny's early development 5:22 Writing Mastering Shiny 8:30 Shiny touches on data analysis alongside software engineering and programming 12:41 Best ways to get started with Shiny 14:53 Value of tidy evaluation with Shiny 19:41 Importance & challenge of reactivity 24:30 Getting help with Shiny 28:43 Becoming a better Shiny developer and collaborator 33:51 Shiny community engagement 38:12 Where to find Mastering Shiny 40:01 How to level-up your skills as a Shiny developer 41:53 Recap and closing remarks
Sat, March 06, 2021
In episode 18 of the Shiny Developer Series, we chat about how Shiny has brought significant value to projects of all scales with the founder of TCB Analytics Tanya Cashorali! You will see hands-on demonstrations of applications Tanya built to achieve rapid prototypes and production-level dashboards ready for customers across a wide range of industries. We also hear Tanya's advice on development techniques and which skills she recommends developers level up with. I hope you enjoy this excellent episode! Resources mentioned in the episode TCB Analytics: tcbanalytics.com About TCB Analytics: tcbanalytics.com/about Episode Timestamps 0:00 Episode introduction 7:50 As a consultant, how do you see Data Scientist create value for their team? 9:20 Data scientist provide a lot more value when you bring them on early. 11:50 On rapid prototyping 14:50 Demo 1: Sports Innovation Lab - Anomaly Detection 21:45 Demo 2: Rapid Blood Testings - Monitoring Streaming Alerts 28:40 Advice for people that need to integrate Shiny with different systems. 31:30 Arrow is fast and makes connecting with other systems easy. 36:00 Demo 3: Study Tracking for Life Sciences firm - Show deviations by study. 40:47 On the practical side, how do you work as a consultant with teams who hire you? 42:20 Suggestions for finding or leveling up the skills of shiny developers on a team? 45:05 What is your ideal way to build a shiny app? 51:15 Advice for people looking to become freelance shiny developers. 52:40 Advice for folks getting more involved with Shiny development, jobs, or learning more. <a href="https://www.
Sat, March 06, 2021
In episode 17 of the Shiny Developer Series, we welcome one of the earliest contributors to the Shiny ecosystem and the founder of AttaliTech, Dean Attali! In this illuminating conversation, you will hear all about how Dean arrived to the world of Shiny, updates to his excellent open-source packages like {shinyalert} and the brand-new {shinyscreenshot}, the origins of Attali Tech, and his new journey to becoming a full-time open-source R and Shiny developer! Resources mentioned in the episode Help sponsor Dean's move to full-time open-source development via GitHub Sponsors: github.com/sponsors/daattali Dean's website: deanattali.com Attali Tech: attalitech.com/ Dean's YouTube channel: youtube.com/channel/UCR3No6pYhA1S7FZ0PbLKlgQ `{shinyscreenshot} - Capture screenshots of entire paggs or parts of pages in Shiny apps: daattali.com/shiny/shinyscreenshot-demo {shinyalert} - Easily create pretty popup messages (modals) in Shiny: daattali.com/shiny/shinyalert-demo {shinyjs} - Easily improve the user experience of your Shiny apps in seconds: deanattali.com/shinyjs {timevis} - An R package for creating timeline visualizations: daattali.com/shiny/timevis-demo {htmlwidghts}: www.htmlwidgets.org {reactR} - React for R: react-r.github.io/reactR Clean Code - A Handbook of Agile Software Craftsmanship: www.oreilly.com/library/view/clean-code-a/9780136083238 Episode Timestamps 0:00 Episode introduction (with a special guest) 1:42 Dean's Introduction 3:52 Getting started with R and Shiny 7:57 shinyjs and custom JavaScript in Shiny apps. Tooling to create developer tools for Shiny apps. htmlwidgets, reactR 11:17 shinyscreenshot, released 2020-11-05, allows you to capture screenshot
Sat, March 06, 2021
In episode 16 of the Shiny Developer Series, we welcome software developer Jiena McLellan! Jiena shares how she has created many useful packages and Shiny applications to help not only with her day job, but for fun personal projects benefiting her friends and family too! We dive deep into her innovative DT-Editor Shiny module, as well as how she developed packages based on htmlwidgets such as the flashCard package for teaching yourself new concepts. Resources mentioned in the episode Jiena's website: www.jienamclellan.com DT Editor module demonstration app: appforiarteam.shinyapps.io/DT_editor_shiny_module DT Editor GitHub repository: github.com/jienagu/DT-Editor {noteMD} Print text from a Shiny UI with support for markdown to pdf or word reports: github.com/jienagu/noteMD Demo app integrating DT Editor and noteMD: github.com/jienagu/Shiny_Full_Flow {faq} Create a Frequenty Asked Questins page for Shiny apps: github.com/jienagu/faq {flashCard} R package to create flash cards: github.com/jienagu/flashCard Demo app for flashcards teaching Python syntax: appforiarteam.shinyapps.io/flashCard_demo Jiena's codepen for practice flash card syntax: codepen.io/Jienagu/pen/qBdNbVy {forestry} R package with utility functions to help with reshaping hierarchy of data trees: github.com/jienagu/forestry Episode Timestamps 0:00 Episode introduction 0:43 Introducing Jiena 4:18 DT-editor - A shiny module that allows your Shiny app users to edit and update DT tables in your shiny app https://github.com/jienagu/DT-Editor 13:23 DT-editor shiny module https://github.com/jienagu/DT_editor_shiny_module 18:33 noteMD
Sat, March 06, 2021
In episode 13 of the Shiny Developer Series, we continue our conversation with RStudio software engineer Barrett Schloerke to highlight how you can integrate Shiny apps with custom APIs written in R via the plumber package! You’ll see awesome demonstrations of the key features that are part of the brand new plumber 1.0 release, including brand new serializers and parsers for custom objects, a new tidy API compliant with magrittr pipelines, utilizing asynchronous execution, and more. Resources mentioned in the episode plumber allows you to create a web API by merely decorating your existing R source code with roxygen2 style comments. Site: https://www.rplumber.io/ Demos: NEW - Hex logo and website! NEW - pipe-able programatic interface Demo: plumb(dir = "plumber/pipe") %>% pr_run() NEW - POST body parsing Process incoming POST body data Ex: HTML forms, multipart forms, csv, tsv, json, yaml, feather and rds. Like serializers, register new POST body parsers Site: https://www.rplumber.io/reference/parsers.html More Serializers! Serialize outgoing route data Ex: plain text, json, yaml, csv, tsv, rds, feather NEW - Register image serializers: svg, tiff, bmp, pdf. (Pre existing: png, jpeg) Site: https://www.rplumber.io/reference/serializers.html NEW - Download return values as attachments! Site: https://www.rplumber.io/reference/as_attachment.html Demo: plumb_api("plumber", "16-attachment") %>% pr_run() NEW - Async / promises Demo: plumb("plumber/plumber-future.R") %>% pr_run() NEW - API UIs (rapidoc) Register new User Interfaces to look at your API Demo: plumb(dir = "plumber/rapidoc") %>% pr_run() Thank you to Bruno Tremblay (@meztez) for his heavy contributions to plumber! Recent conference talks about plumber: Democratizing R with plumber APIs (James Blair): rstudio.com/resources/rstudioconf-2019/democratizing-r-with-plumber-apis Practical plumber patterns (James Blair): rstudio.com/resources/rstudioconf-2020/practical-plumber-patterns/ Bike Prediction example application with plumber API and Shiny: solutions.rstudio.com/tour/bike_predict/ Episod
Sat, March 06, 2021
We conclude our multi-part series with RStudio software engineer Barret Schloerke with an in-depth look at the learnr package and how Shiny plays a huge role in powering the many features and extensibility available! Barret walks us through two showcases of learnr in action with the RStudio primer tutorials as well as the eye-catching naniar missing values tutorial by Allison Horst. Plus we get a preview of the great features coming up in the next release, and advice for Shiny developers looking to bring their skills to the next level. Resources mentioned in the episode learnr The learnr package makes it easy to turn any R Markdown document into an interactive tutorial. Tutorials consist of content along with interactive components for checking and reinforcing understanding. Site: https://rstudio.github.io/learnr/ Demos: RStudio Primers: https://rstudio.cloud/learn/primers Allison Horst Post: https://education.rstudio.com/blog/2020/05/learnr-for-remote/ Demo: https://allisonhorst.shinyapps.io/missingexplorer/ Source: https://github.com/allisonhorst/explore-na Sortable Site: https://rstudio.github.io/sortable/ Demo: https://rstudio.github.io/sortable/tutorials/tutorial_question_rank.html Episode Timestamps 0:00- Episode Introduction 0:48 - Introduction to learnr 2:10 - Examples of learnr tutorials, rstudio.com/learn/primers 5:26 - A very nice learnr tutorial example from Alison Horst 7:10 - Getting started with learnr 9:10 - {sortable} for questions that require ranking/sorting questions. 12:40 - Working on multi-language support. Including SQL, Python, and more. 14:16 - Advice for Shiny users <a href="https://www.youtube.com/watch?v=zqV4nUiO7-4&t=18m34s" tar
Sat, March 06, 2021
We have another fun installment of the Shiny Developer Series in episode 15! Our guest is statistical programmer and data scientist Maya Gans, and she tells us about her unique journey to R, her experience as a summer intern at RStudio, and the ways she has wielded some magical integrations of Shiny and javascript to create powerful applications in life sciences. Plus you will not want to miss the inside story behind the shinykeyboard widget! Resources mentioned in the episode TidyBlocks (A block-based tool for teaching basic data science): [ https://tidyblocks.tech/](tidyblocks.tech) shinyBody A custom Shiny input widget built with HTML and CSS that lets you select a body part and will return that body part's name.You can also color limbs based on data by specifying high and low color values: [ https://github.com/MayaGans/shinyBody](github.com/MayaGans/shinyBody) JavaScript for Data Science: [ https://js4ds.org/](js4ds.org) TidyCDISC application demonstration at the R/Medicine 2020 Virtual Conference: [ https://www.youtube.com/watch?v=QeHSjw-vU3U](youtube.com/watch?v=QeHSjw-vU3U) Interactive web-based data visualization with R, plotly, and Shiny: [ https://plotly-r.com/](plotly-r.com) timevis R package for creating timeline visualizations: [ https://daattali.com/shiny/timevis-demo/](daattali.com/shiny/timevis-demo) ggkeyboard: [ https://github.com/sharlagelfand/ggkeyboard](github.com/sharlagelfand/ggkeyboard) shinykeyboard R package to create an on-screen keyboard as a custom R Shiny input binding: [ https://github.com/willdebras/shinykeyboard](github.com/willdebras/shinykeyboard) dreamRs Shiny gallery: [ http://shinyapps.dreamrs.fr/](shinyapps.dreamrs.fr) Episode Timestamps 0:00 Episode introduction 4:30 TidyBlocks tidyblocks.tech. A block-based tool for teaching basic data science. 7:00 Garrick Aden-Bu
Sat, March 06, 2021
In episode 12 of the Shiny Developer Series, we begin a multi-part series with RStudio software engineer on the Shiny team Barret Schloerke! In part 1 we learn more about Barret’s journey to the Shiny team and take a deep dive into the very powerful reactlog framework to help users shed some light on what can be a confusing world of reactivity in their applications. Barret leads us through interactive demonstrations of reactlog applied to simple and complex applications to pinpoint various issues on reactive logic and the flow of information from inputs to outputs. Resources mentioned in the episode {rbokeh} - R interface for Bokeh: hafen.github.io/rbokeh {trelliscopejs} - Create interactive trelliscope displays: hafen.github.io/trelliscopejs {autocogs}: github.com/schloerke/autocogs {reactlog} - Provides a visual insight into that black box of Shiny reactivity: rstudio.github.io/reactlog Demos: (Launch reactlog: cmd + F3 or ctrl + f3) shiny::runApp("reactlog/reactlog-pythagorus.R") shiny::runApp("reactlog/reactlog-pythagorus-broken.R") shiny::runApp("reactlog/reactlog-cranwhales.R") shiny::runApp("reactlog/reactlog-anti-pattern.R") Episode Timestamps 0:00 - Intro 0:42 - Barret’s background, how he got started with R, Shiny, and RStudio. 3:41 - Bokey, Trelliscope, Ryan Hafen 4:36 - Autocogs 5:56 - Starting with RStudio 7:31 - Introduction to reactlog 9:31 - Demonstration of reactlog 10:51 - How reactlog can help diagnose issues 11:11 - Diagnosing a Shiny app's output example 13:30 - Demo of using reactlog with a larger application 14:31 - Zooming in example 15:00 - Using the search bar <
Sat, March 06, 2021
In episode 11 of the Shiny Developer Series, we are joined by R package author and Shiny enthusiast Yoni Sidi. We discuss Yoni\'s stories of how Shiny brought immediate and positive impact to his daily work across industries such as life sciences, the origins of his popular ggedit package, a new package to drill deeper into testing reactivity in Shiny apps, and much more! Resources mentioned in the episode {ggedit} - Interactively edit ggplot layer aesthetics and theme definitons: yonicd.github.io/ggedit Lightning talk on {ggedit} at rstudio::conf 2017 (timestamp 13:35-19:35): rstudio.com/resources/rstudioconf-2017/lightning-talks-users {ggedit} video series on YouTube: www.youtube.com/playlist?list=PLruc2EmpfX8Vceb2rE4uwbWV3CrkTlwLj {reactor} - Unit testing for Shiny reactivity (likely will be renamed): github.com/yonicd/reactor {reactor} demonstration YouTube video: youtu.be/RW5hYtXxmCA {qibble} - Tidy framework to manage jobs on the Open Grid Scheduler: github.com/yonicd/qibble {shinyHeatmaply} - Shiny application and Shiny gadget for the {heatmaply} package: yonicd.github.io/shinyHeatmaply Israel Election Polls Analysis Depot Shiny application: yonicd.github.io/Elections Track NONMEM (Nonlinear Mixed Effects Modelling) progress while model evaluates with Shiny: github.com/yonicd/NMTracker {streamline} - Utilities to work with NONMEM Control Stream files: github.com/yonicd/streamline {lintr} - Static code analysis for R: github.com/jimhester/lintr The slackverse family of packages to interact with Slack: {slackteams} - Manage and interact with multiple Slack teams in R: yonicd.github.io/slackteams {slackcalls} - Generic package to call slack API from R: github.com/yonicd/slackcalls {slackthreads} - Wrangle Slack conversations, replies, and threads in R: github.com/yonicd/slackthreads {slackblocks} - Slack Blocks in R: <a
Tue, July 07, 2020
In this packed episode of the Shiny Developer Series, we are joined by the very talented John (JP) Coene to explore tools and skills that can ease your journey in creating production-grade Shiny applications! We examine the backstory of John's highly-regarded Coronavirus mobile-first Shiny application, how you can use his excellent {waiter} and {server} packages to improve user experience, and much more! Resources mentioned in the episode Covid19 tracker - A popular Coronavirus tracker application built upon {shinyMobile} : johncoene.shinyapps.io/contest-coronavirus John's blog post about the application: blog.john-coene.com/posts/2020-02-08-ncov-2019/ RStudio Community post: community.rstudio.com/t/coronavirus-2020-shiny-contest-submission/53061 {waiter} - Loading screens for Shiny: shiny.john-coene.com/waiter/ {sever} - Good-looking problems by customizing your Shiny disconnected screen and error messages: sever.john-coene.com/ {echarts4r} - Interactive visualizations for R: echarts4r.john-coene.com/ How to build htmlwidgets (e-Rum 2020 virtual workshop): htmlwidgets.john-coene.com/ Blog post on building htmlwidgets for Shiny apps: blog.john-coene.com/posts/2018-01-01-widget Engineering Production-Grade Shiny Apps by Colin Faye: engineering-shiny.org/ Episode Timestamps 0:00 - Intro 2:37 - Covid19 tracker - A popular Coronavirus Tracker app, built on shiny mobile: https://johncoene.shinyapps.io/contest-coronavirus 5:37 - Golem - Within the Covid19 Tracker discussion, on the usefulness of golem for building shiny apps with best practices. 8:57 - On working with shinyMobile https://rinterface.github.io/shinyMobile, Maintainer; David Granjon <a href="https://www.youtube.com/watch?v=BYtoQQHmmOM&t=12m
Tue, March 10, 2020
The Shiny Developer Series is back! In our first session of 2020, we are joined by professional educator and data scientist Mine Cetinkaya-Rundel to get the inside story of the newly updated Shiny Dev Center (including a major revision of the Shiny Gallery) and the insights RStudio gained from the Shiny Contest. Also Mine shares her advice on developing educational material for Shiny users and where she sees future opportunities in this evolving space. Resources Shiny Gallery: shiny.rstudio.com/gallery Shiny Tutorials: shiny.rstudio.com/tutorial Reprex guide for Shiny questions on RStudio Community: community.rstudio.com/10001 2020 Shiny Contest information: blog.rstudio.com/2020/02/12/shiny-contest-2020-is-here Mastering Shiny by Hadley Wickham: mastering-shiny.org Episode Timestamps 00:56 Mine Introduction. 03:01 Shiny Gallery - walkthrough and recent revamp. 04:15 Shiny Demos - live examples and deep-dive into shiny's features. 05:20 Shiny User Showcase - A large set of example shiny apps, by the Shiny community. Including code on github, and interactive code on rstudio.cloud. 06:10 Shiny Contest 2019 lead to the revamp of the showcase. 09:00 Example running an app on the Shiny Showcase interactively with rstudio.cloud. 12:40 Shiny Gallery walkthrough - Mine's learnings from reviewing the Shiny apps on the gallery. There's a lot to learn from, but Mine highlighted just a few: 13:40 1. BYOD Apps - Bring your own data shiny app best practices. 14:42 2. App Walkthroughs and jintrojs package. iSEE Shiny App. 17:15 3. Apps that don't look like Shiny apps. 17:30 Example 1. 69 Love Songs by the Magnetic Fields. 18:25 Example 2. Uber explorer app - another example that doesn't look like a standard shiny app. 19:04 Example 3. CRAN Explorer. 19:55 Example 4. Hex memory game. An example of a game Shiny app. 22:15 Teaching and Educational Materials for Shiny - Shiny development has its own set of challenges and Mine spends a lot of time thinking about teaching Shiny. 23:45 Learn Shiny tutorial - a nice short intro to Shiny. Includes written articles, videos, and code examples. shiny.rstudio.com/tutorial. 24:30 Asking good questions about the issues you're having with your Shiny app. What are good workflows for seeking help? Barret's Shiny debugging and reprex guide http://community.rstudio.com/t/10001 26:17 Materials for intermediate Shiny users. Articles on shiny.rstudio.com, workshop and conference videos, and a
Sun, December 08, 2019
In this last webinar of the Shiny Developer Series for 2019, we are joined by Nathan Teetor of ZevRoss Spatial Analysis for an illuminating conversation about his yonder package! Nathan shares how yonder is not a full-on replacement of Shiny, but rather a collection of new functionality built on the Shiny engine. Plus some great demonstrations of key user interface features and plans for future development. Visit the follow-up thread on RStudio Community! to continue the discussion! Resources mentioned in the episode Video version of recording available at shinydevseries.com/ep6 Follow-up thread for the episode on RStudio Community ZevRoss Spatial Analysis - Know your Data: www.zevross.com {yonder} - A reactive framework built on Shiny: nteetor.github.io/yonder yonder-examples gallery: github.com/nteetor/yonder-examples
Thu, November 28, 2019
In this webinar originally broadcast live in partnership with RStudio Community, Victor Perrier and Fanny Meyer join Eric and Curtis to share the origins of their dreamRs consulting, their journey to becoming Shiny experts, and the many innovations that their open-source packages such as {shinyWidgets} can bring to any Shiny application user interface. Victor highlights a tour of the many features of this and other great packages. Visit the follow-up thread on RStudio Community! to continue the discussion! Resources mentioned in the episode Video version of recording available at shinydevseries.com/ep7 Follow-up thread for the episode on RStudio Community dreamRs - Conseil, Expertise et Formation en data science Spécialisé en R: www.dreamrs.fr/ {shinyWidgets} - Extend widgets available in Shiny: dreamrs.github.io/shinyWidgets {esquisse} - RStudio add-in to make plots with ggplot2: dreamrs.github.io/esquisse {shinylogs} - Logs for Shiny apps: dreamrs.github.io/shinylogs How to build a JavaScript based widget (tutorial by Hermann Sontrop and Erwin Schuijtvlot): shiny.rstudio.com/articles/js-build-widget.html
Sat, November 02, 2019
In this webinar originally broadcast live in partnership with RStudio Community, Yang Tang joins Eric and Curtis to discuss his journey with learning R and shares his motivation for creating the powerful {shinyjqui} package that unlocks the power of JQuery for Shiny. Enjoy a comprehensive demonstration of the package features and visit the follow-up thread on RStudio Community! to continue the discussion! Resources mentioned in the episode Video version of recording available at shinydevseries.com/ep6 Follow-up thread for the episode on RStudio Community Yang's R-markdown demonstration of shinyjqui: github.com/Yang-Tang/shinydevseries/blob/master/demo.Rmd {shinyjqui} - Help Shiny sense the world around it: yang-tang.github.io/shinyjqui R Packages second edition: r-pkgs.org Advanced R second edition: adv-r.hadley.nz {pkgdown} - Build websites for R packages: pkgdown.r-lib.org
Tue, September 17, 2019
In this webinar originally broadcast live in partnership with RStudio Community, Nick Strayer joins Eric and Curtis to share the awesome possibilities when combining the power of javascript with Shiny! Nick shares the origins of his amazing {shinysense} package for linking many mobile device interactions with Shiny, and we go hands-on with practical demonstrations of leveraging {r2d3} to quickly prototype D3 javascript visualizations directly in R. If you would like to continue the discussion please visit the dedicated thread at the RStudio Community! . Resources mentioned in the episode Video version of recording available at shinydevseries.com/ep5 Follow-up thread for the episode on RStudio Community Nick's interactive javascript notebooks: observablehq.com/@nstrayer {shinysense} - Help Shiny sense the world around it: nickstrayer.me/shinysense {r2d3} - R interface to D3 visualizations: rstudio.github.io/r2d3 Interactive Data Visualization for the Web (2nd edition): shop.oreilly.com/product/0636920026938.do
Wed, August 14, 2019
In this webinar originally broadcast live in partnership with RStudio Community, David Granjon joins Eric and Curtis to discuss the RinteRface suite of Shiny user interface packages! We learned the origins of the project and see how {shinydashboardPlus} , {bs4Dash} , and others bring excellent capabilities for building state-of-the-art Shiny user interfaces. If you would like to continue the discussion please visit the dedicated thread at the RStudio Community! Resources mentioned in the episode Video version of recording available at shinydevseries.com/ep4 Follow-up thread for the episode on RStudio Community David's slides from the webinar: [ https://github.com/DivadNojnarg/shinyDevSeriesEp4](github.com/DivadNojnarg/shinyDevSeriesEp4) RinteRface: rinterface.com/ David's virtual patient simulator Shiny contest submission: community.rstudio.com/t/shiny-contest-submission-a-virtual-lab-for-teaching-physiology/25348
Wed, June 26, 2019
In this webinar originally broadcast live in partnership with RStudio Community, Mark Edmondson from IIH Nordic joins us to discuss how he incorporated Shiny components such as modules with {googleAnalyticsR} and his other excellent packages. We dive in to some of the technical challenges he had to overcome to provide a clean interface to many Google APIs, the value of open-source contributions to both his work and personal projects, and much more. If you would like to continue the discussion please visit the dedicated thread at the RStudio Community! Resources Follow-up thread for the episode on RStudio Community Mark's GitHub and Twitter accounts Mark's coding blog: code.markedmondson.me {googleAnalyticsR} - R library for working with Google Analytics data: code.markedmondson.me/googleAnalyticsR/ Example of modules in {googleAnalyticsR}: code.markedmondson.me/googleAnalyticsR/articles/models.html#shiny-modules {googleAuthR}: code.markedmondson.me/googleAuthR Authentication Shiny module in {googleAuthR}: github.com/MarkEdmondson1234/googleAuthR/blob/master/R/shiny-auth.R Mark's video tutorial on creating a talking Google Analytics Shiny app: www.youtube.com/watch?v=4Ht_vEXJ4wo
Wed, June 19, 2019
Resources Release notes for shiny version 1.3.2: blog.rstudio.com/2019/04/26/shiny-1-3-2/ reactR package for using the React javascript framework directly with R: react-r.github.io/reactR/index.html It depends: A dialog about dependencies by Jim Hester (rstudio::conf 2019) Follow-up thread for the episode on RStudio Community Visit shinydevseries.com for all previous episodes Sign up for the 2019 live webinars in partnership with RStudio Community at pages.rstudio.net/shiny_dev_series.html
Trailer · Wed, June 19, 2019
Resources Slides used in first part of episode Eric's recent conference presentations covering Shiny: Developing Powerful Shiny Applications in an Enterprise Environment (R-Pharma 2018) Effective use of Shiny Modules (rstudio::conf 2019) Assorted Shiny apps out in the open: Ames Housing Data Explorer and GitHub repo Unconference issue explorer and GitHub repo co-authored with Sharla Gelfand Shiny LEGO Mosaic Creator (see Shiny contest post and GitHub repo ) Visit shinydevseries.com for all previous episodes Sign up for the 2019 live webinars in partnership with RStudio Community at pages.rstudio.net/shiny_dev_series.html Package Highlight shinyhelper : Add markdown help files to Shiny apps by Chris Mason-Thom.
Wed, June 19, 2019
Resources Follow-up thread for the episode on RStudio Community {golem} - A Framework for Building Robust Shiny Apps: thinkr-open.github.io/golem ThinkR - R Engineering, training, and consulting: thinkr.fr Building Big Shiny Apps - A Workflow: thinkr-open.github.io/building-shiny-apps-workflow Don't make me think, Steve Krug: en.wikipedia.org/wiki/Don%27t_Make_Me_Think The Design of Everyday things: en.wikipedia.org/wiki/The_Design_of_Everyday_Things Refactoring UI: refactoringui.com freeCodeCamp: learn.freecodecamp.org Web Fundamentals - Google's opinionated reference for building amazing web experiences: developers.google.com/web/fundamentals Corecursive Podcast episode 19 - Test in Production with Charity Majors: corecursive.com/019-test-in-production-with-charity-majors Visit shinydevseries.com for all previous episodes Sign up for the 2019 live webinars in partnership with RStudio Community at pages.rstudio.net/shiny_dev_series.html
loading...