Skip to content

Create a visual overview of all reactive elements in your Shiny app

License

Notifications You must be signed in to change notification settings

basf/reactflush

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

reactflush

Project Status: Active - The project has reached a stable, usable state and is being actively developed.


Overview

Shiny is an R package from RStudio that makes it incredibly easy to build interactive web applications with R using a reactive programming model. The complexity of the reactive elements within a shiny application can quickly become complicated and difficult to keep an overview of the sources and endpoints of your elements. reactflush parses your code, analyses the sources and endpoints for each element and provides a visual overview of how all the reactive elements interact wiht one another.

This package aims to be a complementary tool for reactlog which provides a visual debugger for shiny reactivity. The key difference is that reactflush gives you an overview of your complete app based on your code instead of logging the reactive activity while using the app. This ensures a complete overview of all reactive elements in your app. This will help in identifying which elements are reactive bottlenecks or how changing one element will affect other reactive elements.

Features

  • visualise the reactivity network of your shiny app
  • focus one reactivity network around one single element in your app
  • capable of identifying and processing source statements within your code
  • identify all common elements: input, reactive, reactiveValues, reactiveVal, eventReactive, callModule, observe, observeEvent, render*

nodes

nodes

Installation

# install.packages("devtools")
devtools::install_github("basf/reactflush")

Usage

Complete shiny app

# select directory of shiny app 
dir <- fs::path(system.file("examples", package="shiny"), "07_widgets")
# create reactflush overview
reactflush(dir)

nodes

Focus on one element

# select directory of shiny app 
dir <- fs::path(system.file("examples", package="shiny"), "07_widgets")
# select element to focus on
element <- "output$view"
# create reactflush overview
reactflush(dir, focus = element)

nodes

Rstudio Addin

Complete shiny app

rstudioa_addin_demo

Focus on one element

rstudioa_addin_demo

About

Create a visual overview of all reactive elements in your Shiny app

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages