David Granjon
Senior Expert Data Scientist
{Shiny} is about 10 years old π²π²π².
{Shiny} is about 10 years old π²π²π².
Today, many tools can make your apps shining...

Yet ... too many unexplained syndromes:
Yet ... too many unexplained syndromes:
Your app may be as beautiful and as cool as you want, it is useless if it does not start/run.
Why is my app not starting/running β
Why is my app not starting/running β
Possible answers:
Why is my app not starting/running β
Possible answers:
This must stop π!
Check that a product is conform to initial requirements (Software engineering).
Check that a product is conform to initial requirements (Software engineering).
For Shiny apps:
Check that a product is conform to initial requirements (Software engineering).
For Shiny apps:
In practice, a few apps meet all these requirements π. How do we transition from prototypes to production-ready tools β

{shinytest2}).Are there bottlenecks?
{shinyloadtest}.{profvis}.
Not easy π’
Can't we make things easierβ
All is integrated into a nice HTML report.
{golem}.{renv}.remotes::install_github("Novartis/shinyValidator")
use_validator("github") (for Github Actions).devtools::document().renv::snapshot() to capture dependencies.audit_app() main package function:
audit_app( timeout = 5, headless_actions = NULL, workers = 5, scope = c("DMC", "POC"), output_validation = TRUE, coverage = TRUE, load_testing = TRUE, profile_code = TRUE, check_reactivity = TRUE, flow = TRUE)

Because a demo is better than 30 slides.
{Shiny} is about 10 years old π²π²π².
Keyboard shortcuts
| β, β, Pg Up, k | Go to previous slide |
| β, β, Pg Dn, Space, j | Go to next slide |
| Home | Go to first slide |
| End | Go to last slide |
| Number + Return | Go to specific slide |
| b / m / f | Toggle blackout / mirrored / fullscreen mode |
| c | Clone slideshow |
| p | Toggle presenter mode |
| t | Restart the presentation timer |
| ?, h | Toggle this help |
| o | Tile View: Overview of Slides |
| Alt + f | Fit Slides to Screen |
| Esc | Back to slideshow |
David Granjon
Senior Expert Data Scientist
{Shiny} is about 10 years old π²π²π².
{Shiny} is about 10 years old π²π²π².
Today, many tools can make your apps shining...

Yet ... too many unexplained syndromes:
Yet ... too many unexplained syndromes:
Your app may be as beautiful and as cool as you want, it is useless if it does not start/run.
Why is my app not starting/running β
Why is my app not starting/running β
Possible answers:
Why is my app not starting/running β
Possible answers:
This must stop π!
Check that a product is conform to initial requirements (Software engineering).
Check that a product is conform to initial requirements (Software engineering).
For Shiny apps:
Check that a product is conform to initial requirements (Software engineering).
For Shiny apps:
In practice, a few apps meet all these requirements π. How do we transition from prototypes to production-ready tools β

{shinytest2}).Are there bottlenecks?
{shinyloadtest}.{profvis}.
Not easy π’
Can't we make things easierβ
All is integrated into a nice HTML report.
{golem}.{renv}.remotes::install_github("Novartis/shinyValidator")
use_validator("github") (for Github Actions).devtools::document().renv::snapshot() to capture dependencies.audit_app() main package function:
audit_app( timeout = 5, headless_actions = NULL, workers = 5, scope = c("DMC", "POC"), output_validation = TRUE, coverage = TRUE, load_testing = TRUE, profile_code = TRUE, check_reactivity = TRUE, flow = TRUE)

Because a demo is better than 30 slides.