Shiny Apps from Concept to Production - An RStudio Community X-Session with Appsilon

This is a companion discussion topic for the original entry at https://blog.rstudio.com/2021/07/27/shiny-apps-from-concept-to-production-rsutdio-community-x-session


We’re excited to announce the upcoming RStudio Community X-Session with Appsilon is open for registration. Sign up now here for the Tuesday, August 10th event.

Are you a Shiny developer looking to level-up?

Perhaps you’ve built and shared a few Shiny applications, but the Shiny Gallery and Shiny Contests have shown you the enormity of what is possible with Shiny.

How do you write apps that require complex functionality while keeping your code tidy and easy to follow and maintain? How do experienced Shiny developers debug, speed up, and scale their deployed apps? How do you deliver beautifully styled Shiny apps all written in your favorite statistical programming language?

Shiny Apps from Concept to Production brings the experts from Appsilon to help you take your skills to the next level.

Speakers include two Shiny Contest winners; Marcin Dubel, grand prize winner of the 2021 Shiny Contest, and Pedro Silva, whose Shiny Decisions app won the grand prize in 2020. Applison has developed some of the world’s most advanced Shiny dashboards. That’s why Fortune 500 companies routinely approach them to create enterprise Shiny apps.

The Format

  • Two hours of talks from four speakers with years of experience building enterprise Shiny applications.
  • Panel Q&A to close the event.
  • Shiny Dev Community Hangout - For the hour before and after scheduled talks, join us for a freeform community hangout. Think of this as the virtual analog to the hallways between and after talks during a live conference. We encourage you to join early and stay late to chat with other Shiny developers like yourself.

The Agenda

Tuesday, August 10th, with talks running from 12pm to 2pm ET. That’s 6-8pm CEST.

Schedule Item
11 AM - Noon ET (Optional) Shiny Developer Community Hangout
Join early and connect with fellow Shiny Developers.
Noon ET Introductions from Jesse Mostipak
Talk 1

Shepherding your Shiny App from Proof of Concept to Production

Marcin Dubel will present Appsilon’s preferred workflow for creating production quality Shiny apps. He’ll touch on key topics in the development process that lead to apps which users enjoy and developers find easy to maintain and extend.

A great advantage of Shiny applications is that a proof of concept can be created quickly and easily. It is a great way for subject matter experts to present their ideas to stakeholders before moving on to production. However, to take the next step to a production application requires help from experienced software developers. The actions should be focused on two areas: to make the application a great experience for users and to make it maintainable for future work. Focusing on these will assure that the app will be scalable, performant, bug-free, extendable, and enjoyable. Close collaboration between engineers and experts paves a wave to many successful projects in data science and is Appsilon’s confirmed path to production-ready solutions.

The very first step should always be to build a comfortable and (importantly) reproducible workflow, thus setting up the development environment and organizing the folder structure [renv + docker]. Once this is done engineers should proceed to limiting the codebase by cleaning the code – i.e., removing redundant comments, extracting the constants and inline styles [ymls + styler]. Now the fun begins: extract the business logic into separate functions, modules and classes [packages/R6 + plumber]. Restrict reactivity to minimum. Check the logic [data.validator + drake]. Add tests [testthat + cypress/shinytest]. Organize your /www and move actions to the browser [shiny + css/js]. Finally, style the app [sass/bslib + shiny.fluent]. And, voila! A world-class Shiny app.

Marcin Dubel / Software Engineer at Appsilon
Marcin is a software engineer with a strong R and data analysis background. Over 4 years of experience in developing applications in such areas as finance, insurance or genomic studies.
Talk 2

Improve Your Code - Best Practices for Durable Code

Anna Skrzydło discusses code maintenance, and the strategies you can employ to create enduring code. Avoid future delays and growing pains for your Shiny app by using better coding practices.

Shiny applications often start as small projects and grow as they get noticed. This is when the problems usually begin, as it quickly turns out that implementing one small change takes two days, and adding a new requirement leads to rebuilding the whole application. Assuming, of course, that further development is done by the same team, any new developer joining the team first needs a one-month onboarding…

If that sounds familiar, join the session, to learn more about:

  1. modules (Shiny modules, wahani/modules, R6 classes)
  2. tests (unit tests, but also other types of tests)
  3. strategies (code structure, automation)
    to make your code easier to develop and maintain.

Each of the three topics will be divided into two parts so that everyone can find something useful:

  • Quick start - dedicated for those for whom the topic is completely new. It aims at giving you the basic concept so that you can begin using it immediately.
  • Further steps - dedicated for those who are already familiar with the concept and use it frequently. It aims at giving you advanced steps to get even more out of your coding practices.
Anna Skrzydło / Project Leader at Appsilon
Anna has passion for coding and Data Science. Over 5 years of experience in managing various IT and analytical projects.
12:50 - 1:00 PM ET Break
Talk 3

Scaling & Infrastructure - Why is My Shiny App Slow?

Pedro Silva will explore scaling and infrastructure issues common when deploying large scale Shiny apps, and how to overcome them.

For a Data Scientist, Shiny can be an amazing tool when it comes to creating fast and powerful prototypes and dashboards. But what to do when your application becomes TOO popular and more and more people want to use it?

As the number of users grows, keeping up with the demand of a Shiny application can be tricky, and there is only so much you can do to improve performance at the code level.

In this presentation I will be giving an overview of our approach to improving Shiny dashboards performance on an infrastructure level, as well as tips to scaling Shiny dashboards to hundreds of concurrent users while keeping your budget under control.

Pedro Silva / R/Shiny Developer at Appsilon
Pedro has worked in many technologies over the years and has an extensive background in web, developing both websites and applications. In his free time he is both an Open Source enthusiast and a practitioner of the JavaScript dark arts.
Talk 4

UI/UX in Shiny Apps and Live Coding Session (shiny.fluent and shiny.react)

Kamil Żyła will demonstrate how to use shiny.fluent to build beautiful Shiny apps with Microsoft’s Fluent UI, and explain how to integrate React and Shiny.

In this talk we will present the functionality and ideas behind a new open source package we have developed called shiny.fluent.

UI plays a huge role in the success of Shiny projects. shiny.fluent enables you to build Shiny apps in a novel way using Microsoft’s Fluent UI as the UI foundation. It gives your app a beautiful, professional look and a rich set of components while retaining the speed of development that Shiny is famous for.

Fluent UI is based on the Javascript library React, so it’s a challenging task to make it work with Shiny. We have put the parts responsible for making this possible in a separate package called shiny.react, which enables you to port other React-based components and UI libraries so that they work in Shiny.

During the talk, we will demonstrate how to use shiny.fluent to build your own Shiny apps, and explain how we solved the main challenges in integrating React and Shiny.

Kamil Żyła / Full Stack Engineer at Appsilon
Kamil is passionate about working across various technologies, leading projects and developing internal tooling.
Up to 2 PM ET Panel Q&A
2 - 3PM ET (Optional) Shiny Developer Community Hangout
Join the hangout after the session and connect with fellow Shiny Developers.

Register now for Shiny Apps from Concept to Production - An RStudio Community X-Session with Appsilon on Tuesday, August 10th at 12pm-2pm ET / 6-8pm CEST

This topic was automatically closed after 60 days. New replies are no longer allowed.


If you have a query related to it or one of the replies, start a new topic and refer back with a link.