Description
Introduction
Shiny applications can deliver powerful insights—but as usage scales, performance bottlenecks and security vulnerabilities may arise. This course, “Performance Optimization and Security in Shiny Applications,” is designed to help developers build fast, efficient, and secure Shiny apps. Learn techniques to improve responsiveness, manage resources, and harden your apps against common threats.
Prerequisites
-
Intermediate R and Shiny development experience
-
Familiarity with reactive programming concepts
-
Basic understanding of web application behavior
-
Exposure to Linux server environments is helpful
Table of Contents
1. Understanding Shiny App Performance
1.1 Anatomy of a Shiny App Execution
1.2 Common Causes of Lag and Inefficiency
1.3 Benchmarking and Profiling Tools
2. Reactive Programming Best Practices
2.1 Avoiding Unnecessary Reactivity
2.2 Using reactive
, observe
, and eventReactive
Effectively
2.3 Managing Dependency Graphs and Invalidations
3. Efficient Data Handling
3.1 Loading and Managing Large Datasets
3.2 Using data.table
, Arrow, or SQLite for Speed
3.3 Caching with reactiveVal
, memoise
, and shiny.cache
4. UI and Rendering Optimization
4.1 Improving Load Times with Progressive Rendering
4.2 Using renderUI
vs Static UI
4.3 Reducing Plot Latency with plotly
, ggplot2
, and r2d3
4.4 Handling Expensive Computations in the Background
5. Server Resource Management
5.1 Memory and CPU Profiling
5.2 Scaling with Shiny Server Pro or RStudio Connect
5.3 Managing Concurrent Users
5.4 Dockerization and Load Balancing
6. Fundamentals of Shiny Security
6.1 Secure Coding Practices in R
6.2 Understanding Shiny’s Security Model
6.3 Input Validation and Output Sanitization
6.4 Avoiding Code Injection and Script Attacks
7. Authentication and Authorization
7.1 User Management in Shiny Server Pro
7.2 OAuth2 and Single Sign-On Integration
7.3 Implementing Role-Based Access Controls
7.4 Protecting APIs and Sensitive Data
8. Network and Data Security
8.1 SSL/TLS Configuration
8.2 Using Environment Variables for Secrets
8.3 Securing Database Connections
8.4 Logging and Monitoring for Intrusions
9. Deploying Secure and Fast Apps
9.1 Deploying with Shiny Server and RStudio Connect
9.2 Using Docker for Isolated and Reproducible Builds
9.3 CI/CD Best Practices for Shiny
9.4 Testing and Monitoring Performance and Security
10. Real-World Scenarios and Troubleshooting
10.1 Debugging Slow UI Interactions
10.2 Optimizing High-Load Dashboards
10.3 Securing Public-Facing Shiny Apps
10.4 Handling Security Incidents and Patching
This course empowers Shiny developers to build scalable, high-performance apps without compromising security. By applying these techniques, you’ll ensure your applications are efficient, responsive, and secure—ready for both internal and public-facing deployment.
Reviews
There are no reviews yet.