shinyguild
  • About
Categories
All (2)
news (2)

shinyguild

The purpose of a guild is to:

  1. Share knowledge and expertise about a particular area or subject.
  2. Discuss challenges and identify solutions.
  3. Develop common standards, tools, or frameworks.
  4. Provide a forum for continuous improvement and learning.

Guild meetings usually occur less frequently than daily stand-ups or sprint reviews, and participation is often voluntary. These meetings are an opportunity to align on techniques, tools, and best practices, making the guild an effective way to disseminate knowledge and improve skills across an organization.

  1. Structure
    • Modules:
      • How to optimise module communication?
      • Best practices to write modules?
    • Manage app global state.
    • Modern web stack for Shiny:
      • Manage JavaScript code for complex shiny apps ({packer}, webpack, ...) ...
      • Sass usage for better CSS ...
  2. Deploy
    • webR and Shiny: how and when can we skip a Shiny server? https://github.com/RinteRface/webR4Shiny + example with golem app: https://golem-webr.rinterface.com/.
    • Automated deployment on Posit Connect through CICD (GA or woodpecker).
    • Shinylive for R: https://posit-dev.github.io/r-shinylive/. This is new and will be shown at Posit Conf 2023...
  3. Performance
    • Automated audit of Shiny apps:
      • Performance: load test, profiling.
      • Code structure.
      • Reliability: crash tests.
    • Caching
      • Shiny builtin caching tools (bindCache, ...).
      • web browser tools like local storage: this app is slow to start https://dgranjon.shinyapps.io/shinyLocalStorage/ but once run once, it loads faster due to local storage ➝ https://github.com/RinteRface/shinyLocalStorage.
    • Async
      • How to leverage callr::r_bg or similar to improve apps performances.
      • {crew} ?
  4. User interface
    • UI, configured by Google Spreadsheet.
    • Start with a Wireframe: balsamiq.
  5. Widgets
    • `{reactable}`.
    • pickerGroup: https://github.com/christophsax/shinyWidgets/blob/allow-multiple-in-pickerGroup/R/module-pickerGroup.R (Christoph needs to clean up).
    • Encapsulate inter-dependent Shiny inputs into htmlwidget: https://github.com/DivadNojnarg/complexInput. Discussed with Kirill: how can we avoid to have '150' dependent inputs (input$A is needed by input$B, needed for input$c, ...) on the R side by using a single htmlwidget where all the necessary updates occur on the client.

JavaScript for Shiny
news
A quick and dirty introduction to JS for Shiny developers.
David Granjon
Jan 3, 2024

webR and Shiny
news
webR allows to run R in the browser without any…
David Granjon
Sep 27, 2023
No matching items
Back to top
 
Copyright 2024, cynkra