2024-12-09 / Colin Fay / development, shiny

Parallel and Asynchronous Programming in Shiny with future, promise, future_promise, and ExtendedTask

Illustration via ChatGPT. There are three hard things in computer science. One is making ChatGPT write “Invalidation” correctly on an image. ​ There’s a saying that goes: “There are only two hard things in computer science: cache invalidation and naming things.” Well, I’d argue there are actually three: 2. Cache Invalidation 1. Naming things 3. Asynchronous Computing   Yes, that’s ...

2024-11-22 / Arthur Bréant / development, shiny

Signature.py: Award-Winning Application at the 2024 Shiny Contest

🏆 We are excited to announce that {signature.py} is the grand winner of the 2024 Shiny Contest in the category ‘Best Shiny Application with Python’! This year, Posit relaunched the Shiny Contest, a competition dedicated to the development of Shiny applications. Participants are asked to create a personal or professional application that addresses a specific problem. The applications are then ...

2024-09-03 / Yohann Mansiaux / golem, javascript, shiny

Boost your shiny app with sparkling data visualizations: a deep dive into Chart.js JavaScript library

Let’s continue our exploration of integrating JavaScript code into a {shiny} application! We will show how to move beyond the classic graphs produced in base R or with {ggplot2} to explore the interactive dataviz production libraries of JavaScript, particularly the Chart.js library. If you missed our first article on integrating JavaScript libraries into a {shiny} application I invite you to ...

2023-06-05 / Vincent Guyader / shiny

Mastering file download in shiny

But why does downloadHandler now return an empty file!? DownloadHandler context When we start working with {shiny}, we often reach a point where it is necessary to offer the user the option to download a document generated by the application. This document can be a PDF report, a PNG or JPEG image, or anything else. The appropriate function for this ...

2021-05-31 / Colin Fay / golem, shiny, thinkrverse

About {golem} 0.3.1

The new version of {golem} (0.3.1) has been available on CRAN 🎉 for about a month now. This new version includes a lot of new things, but we notably focused on working on two important new features: allowing you to extend {golem} via templates, and supporting for the latest changes in {shiny}. Extending {golem} One of the challenges when it ...

2020-06-10 / Colin Fay / golem, learning, shiny, thinkrverse

What’s a “successful” Shiny Application?

One of the things that we keep promoting in the ThinkR team are good practices for production software engineering in R. Of course, that implies Shiny Applications—and even more if we introduce the {golem} package, which promotes good practices for “production-grade” Shiny application. But let’s take a step back and think about what makes a successful/production-grade Shiny Application. ...

dash-with-golem_header

2019-08-19 / Sébastien Rochette / development, docker, package, server, shiny

Dash with golem: First contact

{golem} has been developed to help building big Shiny application to put in production. What if {golem} could be used to build another popular interactive web application, recently made available to R programmers: Dash ? Dash, a newcomer in interactive web applications A few days ago, Plotly announced Dash now available for R. After reading this announcement, I thought this ...

2019-07-04 / Vincent Guyader / shiny

Communication between modules and its whims

As part of the development of a Shiny application for production using {golem}, we recommend, among other things, working with Shiny-modules. The communication of data between the different modules can be complex. At ThinkR we use a strategy: the stratégie du petit r. We explain everything in this article. What is a module? A module is the combination of two ...

2019-04-30 / Colin Fay / package, shiny, thinkrverse

Building a Shiny App as a Package

Shiny App as a Package In a previous post, I’ve introduced the {golem} package, which is an opinionated framework for building production-ready Shiny Applications. This framework starts by creating a package skeleton waiting to be filled. But, in a world where Shiny Applications are mostly created as a series of files, why bother with a package? This is the question ...

2019-03-04 / Colin Fay / development, package, shiny

Building Big Shiny Apps — A Workflow 2/2

Second part of the blog transcription of the talk I’ve given during the eposter session of the rstudio::conf(2019). Read the first part here. This post is at the premise of our book: https://engineering-shiny.org/. You will find all complementary information in it. Building Big Shiny Apps: step by step Step 1: Designing Don’t rush into coding. I know you want to, ...