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, ...

2019-02-03 / Colin Fay / shiny, tips

A little trick for debugging Shiny

This is gonna be a short post about a little trick I’ve been using while developing Shiny Apps. (Spoiler: nothing revolutionary) A browser anywhere, anytime The first thing to do is to insert an action button, and a browser() in the observeEvent() watching this button. This is a standard approach: at any time, you just press this button, and you’re ...

2018-09-20 / Vincent Guyader / docker, server, shiny, shinyproxy

Shiny application in production with ShinyProxy, Docker and Debian

You created some great Shiny applications, following our advice of Shiny packaging for example, and you want to put them into production, self-hosting, so that others can enjoy them, without limitations, on the Internet or on an internal server of your company? ShinyProxy is for you! ShinyProxy v2.0 has recently been released. What a great opportunity to talk about its ...