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/conform to the style guide, https://github.com/jimhester/lintr
- Mastering Shiny: https://mastering-shiny.org/
- Pedro's recommended Chrome extensions for development:
- Resolution Test: Test web pages in different screen resolutions
- ColorPick Eyedropper: A zoomed eyedropper & color chooser tool
- Screenshotting: Web page screen capture
- CSS Peeper: Extract CSS and build beautiful styleguides
Episode 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