2025-02-03 / Colin Fay / development, javascript, mobile

Rlinguo — Why Did We Build It?

Header image via ChatGPT We recently released something unprecedented: an app that brings R to mobile. Yes, you read that right — R, the statistical programming language, is now in the palm of your hand. Whether you’re an environmental researcher, a student, or a logistics professional, R on mobile is here to revolutionize how you work with data on the ...

2025-01-07 / Colin Fay / development, object-oriented, shiny

Setting values in R6 classes, and testing with shiny::MockShinySession

Context Recently, we worked on testing a {shiny} app that relies on values stored within the session$request object. This object is an environment that captures the details of the HTTP exchange between R and the browser. Without diving too deeply into the technicalities (as much as I’d love to 😅), it’s important to understand that session$request contains information provided by ...

2024-12-18 / Colin Fay / development, mobile

Introducing Rlinguo, a native mobile app that runs R

TL;DR Rlinguo is a groundbreaking mobile application that uses R in the backend to handle its business logic. Available for download now: iOs on the AppStore Android on the Google Play Store Yes, you read that right: the future is now, and we can run R on your mobile phone. Once upon a time… I’ve been building web apps with ...

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-08-26 / Colin Fay / golem, package

{golem} 0.5.0 is now available

Header image generated by ChatGPT We are thrilled to announce the release of {golem} version 0.5.0! This update comes packed with new features, enhancements, and bug fixes that will streamline your Shiny app development process. You can download the latest version from your favorite CRAN repository, or by running the following command in R: pak::pak( “thinkr-open/golem@v0.5.0” ) What’s New in This Version? ...

2023-03-15 / Colin Fay / golem

{golem} 0.4.0 is now available

The new version of {golem} is available! Read the complete version of this article at https://golemverse.org/post/golem-0.4.0-release-on-cran/ What’s up with this new version? Lighter dependency tree When we release the first version of {golem} on CRAN, we made the decision that all {golem}-based app should depend on {golem}. This was a conscious decision ,and we made it because {golem} comes with a bunch of internal functions that are used ...

2022-03-11 / Colin Fay / golem

{golem} 0.3.2 is now available

The new version of {golem} is now available! You can download it from your favorite CRAN repository, or by running the following command: remotes::install_github( “thinkr-open/golem@v0.3.2” ) What’s up with this new version? In this release, we have been focusing on a closer integration of tests inside the application building process, notably via Server function testing with Shiny, adding tests to ...

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

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