Building Data Apps with R and Shiny: Essential Training
2h 50mIntermediate2019-07-23
Authors

Charlie Joey Hadley
Technology and open data evangelist
Course details
Shiny allows R data science teams to build interactive data-driven web apps without needing to learn HTML, CSS, or JavaScript. It is a powerful and versatile tool that is often used for R&D, data analysis, and even external marketing purposes. If you have a good understanding of the R language and know how to separate client-side code from server-side, you are ready to dive into this course and build a Shiny app. Charlie Hadley covers organizing single and split-file apps, managing data tables, using APIs to get data into an app, adding data controls, deploying an app, and more.
Learning objectives
Building a Shiny data app
Single vs. split-file apps
Static tables vs. interactive tables
renderTable and kableExtra and DT tables
Connecting to an API
Populating pull-down menus from data
Using interdependent filter controls
Collecting data using rhandsontable
Printing to the R console in Shiny apps
Debugging Shiny apps
shinyjs::runcodeUI, reactlog
Deploying apps
Learning objectives
Building a Shiny data app
Single vs. split-file apps
Static tables vs. interactive tables
renderTable and kableExtra and DT tables
Connecting to an API
Populating pull-down menus from data
Using interdependent filter controls
Collecting data using rhandsontable
Printing to the R console in Shiny apps
Debugging Shiny apps
shinyjs::runcodeUI, reactlog
Deploying apps
Skills covered
RStudioRStatisticsWeb Development ToolsEssential TrainingWeb DevelopmentProgramming LanguagesData ScienceOpen SourceSoftware Development
Concepts
Introduction
- Build, test, and deploy apps easily in Shiny
- Course organization and prerequisites
Introducing Shiny
- What is Shiny
- What are data apps
- Why build data apps with Shiny
- Run Shiny apps on your own machine
- Quit Shiny apps on your local machine
- Deploying apps to shinyapps.io
- Deploying apps with Shiny Server
Single and Split-File Shiny Apps
- Single file apps with shinyApp
- Split-file apps
- What belongs in the ui.R file
- What belongs in the server.R file
Shiny Apps 101
- Creating a simple Shiny app from scratch
- Understanding input$var and output$plot
- Render and output functions
- Using the session argument
- Never duplicate inputs or outputs
Data Tables in Shiny
- Choose a table solution
- Static tables with renderTable
- Static tables with kableExtra
- Interactive tables with DT
Getting Data into Your Shiny Apps
- Shiny apps and data 101
- Include data files in a Shiny app
- Shiny and packages that connect to API
- Shiny and .httr-oauth files
- Shiny and R environmental variables
Data-Driven Controls
- Populate pull-down menus from data
- Labeling choices in selectInput
- Interdependent controls to filter data
- Control app updates with actionButton
Allow Users to Upload and Download Data
- Allow users to download data from an app
- Download data from DT tables
- Allow users to upload data to an app
- Use rhandsontable to collect data
Problem-Solving in Shiny Apps
- Problem-solving in Shiny apps 101
- Printing to the R console in Shiny apps
- Debug apps with shinyjs - - runcodeUI
- Using reactlog to debug Shiny apps
Making Shiny Apps Beautiful
- Applying custom CSS to Shiny apps
- Inserting images into Shiny apps
- Show loading spinners in Shiny apps
Deploying Shiny Apps
- Where can you deploy Shiny apps
- Connecting RStudio with shinyapps.io
- Managing Shiny apps with rsconnect
- Programmatically deploying apps
Conclusion
- Next steps