X-Session Presentations: Enterprise Shiny Apps from Concept to Production

By:
Appsilon Team
July 27, 2021

<strong> <a href="https://www.rstudio.com/registration/shiny-from-concept-to-production/#utm_source=appsilon&amp;utm_medium=blog&amp;utm_campaign=appsilon-rstudio-webinar" target="_blank" rel="noopener noreferrer">Register here</a> for the Aug 10, 2021 RStudio Community X-Session</strong> <ul><li><a href="#anchor-1" target="_blank" rel="noopener noreferrer">RStudio Community X-Session</a></li><li><a href="#anchor-2" target="_blank" rel="noopener noreferrer">X-Session Presentations:</a><ul><li><a href="#anchor-3" target="_blank" rel="noopener noreferrer">Shepherding Your Shiny App from Proof of Concept to Production</a></li><li><a href="#anchor-4" target="_blank" rel="noopener noreferrer">Improve Your Code - Best Practices for Durable Code</a></li><li><a href="#anchor-5" target="_blank" rel="noopener noreferrer">Scaling/Infrastructure - Why is My Shiny App Slow</a></li><li><a href="#anchor-6" target="_blank" rel="noopener noreferrer">UI/UX in Shiny Apps and Live Coding Session (shiny.fluent and shiny.react)</a></li></ul> </li> </ul> <h2 id="anchor-1">RStudio Community X-Session</h2> RStudio X-sessions are industry-organized, R-themed events with a professional focus. They are great places to explore content, learn new skills, or touch up existing ones. X-session presentations are open to the R community, and we encourage you to check out more from RStudio's webinars here. Join us Aug 10, 2021, as Appsilon, in collaboration with RStudio, presents “Enterprise Shiny Apps from Concept to Production.” This event will have a broad focus on Shiny app development ranging from improving enterprise-level Shiny app performance and scaling, UI/UX design, and best coding practices. The selected topics and presentations in the webinar provide Shiny devs of all experience levels with something of value. So whether you’re a Shiny beginner or an advanced developer, you can level up your skills. Join the webinar and catch a glimpse into how Appsilon, the global Shiny experts, handles Shiny app development.  <h2 id="anchor-2">X-Session Presentations [Aug. 10, 2021] </h2> Take your Shiny developing skills to higher levels with Appsilon's Shiny experts. If you're looking to improve your enterprise dashboards and applications, don't miss out on the presentations at the "Enterprise Shiny Apps from Concept to Production" X-session. <img class="aligncenter size-full wp-image-7582" src="https://webflow-prod-assets.s3.amazonaws.com/6525256482c9e9a06c7a9d3c%2F65b02044668948a8b0bc7506_Shiny-X-Session.webp" alt="X-session presentations" width="1200" height="800" /> <h3 id="anchor-3">Shepherding Your Shiny App from Proof of Concept to Production</h3> <b><a href="https://appsilon.com/author/marcin/" target="_blank" rel="noopener noreferrer">Marcin Dubel</a>, Software Engineer, </b><a href="https://appsilon.com/shiny-environmental-video-game-wins-grand-prize-at-rstudio-shiny-contest/" target="_blank" rel="noopener noreferrer"><b>Grand Prize Winner 2021 Shiny Contest</b></a> Abstract One of the advantages 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. Actions should be focused on two areas: to provide 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 the way to many successful projects in data science and is Appsilon’s tried-and-true path to production-ready solutions. The very first step should always be to build a comfortable and (importantly) reproducible workflow, thus <b>setting up the development environment</b> and <b>organizing the folder structure </b>[renv + docker]. Once completed, engineers should limit the codebase by <b>cleaning the code ( </b>i.e., removing redundant comments, extracting the constants and inline styles [ymls + styler]). Now the fun begins. E<b>xtract the business logic</b> into separate functions, modules, and classes [packages/R6 + plumber]. Restrict reactivity to a minimum. <b>Check the logic </b>[data.validator + drake]. <b>Add tests </b>[testthat + cypress/shinytest]. Organize your /www and <b>move actions to the browser </b>[shiny + css/js]. Finally, <b>style the app </b>[sass/bslib + shiny.fluent]. And, voila! A world-class Shiny app. <blockquote><b>Play Marcin's 2021 Shiny Contest Grand Prize Winning Game: <a href="https://mdubel.shinyapps.io/shark-attack/" target="_blank" rel="noopener noreferrer">Shark Attack!</a></b></blockquote> <h3 id="anchor-4"><strong>Improve Your Code - Best Practices for Durable Code</strong></h3> <b>Anna Skrzydło</b><b>, Project Leader</b> Abstract: 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: <ol><li style="list-style-type: none;"><ol><li style="list-style-type: none;"><ol><li style="font-weight: 400;" aria-level="1"><b>modules</b> (Shiny modules, wahani/modules, R6 classes)</li><li style="font-weight: 400;" aria-level="1"><b>tests</b> (unit tests, but also other types of tests)</li><li style="font-weight: 400;" aria-level="1"><b>strategies</b> (code structure, automation)</li></ol> </li> </ol> </li> </ol> 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: <ol><li style="list-style-type: none;"><ol><li style="list-style-type: none;"><ul><li style="font-weight: 400;" aria-level="1">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.</li><li style="font-weight: 400;" aria-level="1">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.</li></ul></li></ol> </li> </ol> <h3 id="anchor-5"><strong>Scaling/Infrastructure - Why is My Shiny App Slow?</strong></h3> <b><a href="https://appsilon.com/author/pedro/" target="_blank" rel="noopener noreferrer">Pedro Silva</a>, R/Shiny Developer at Appsilon, </b><a href="https://appsilon.com/shiny-videogame-video-tutorial/" target="_blank" rel="noopener noreferrer"><b>Grand Prize Winner 2020 Shiny Contest</b></a> Abstract: 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 dashboard performance on an infrastructure level, as well as tips to scaling Shiny dashboards to hundreds of concurrent users while keeping your budget under control. <blockquote><b>Play Pedro’s 2020 Shiny Contest Grand Prize Winning Game: <a href="https://sparktuga.shinyapps.io/ShinyDecisions/" target="_blank" rel="noopener noreferrer">Shiny Decisions</a></b></blockquote> <h3 id="anchor-6"><b>UI/UX in Shiny Apps and Live Coding Session (shiny.fluent and shiny.react)</b></h3> <b>Kamil Żyła</b><b>, Full Stack Engineer at Appsilon</b> Abstract: 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 challenging to make it work with Shiny. We have put the parts responsible for making this possible into a separate package called shiny.react. This package 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. <h2>Come to Learn, Stay to Chat</h2> A panel-style Q&amp;A will follow the last of the X-Session presentations. We encourage you to ask any questions you may have - but if you forget a question you can always reach out to us through our <a href="https://appsilon.com/" target="_blank" rel="noopener noreferrer">website</a>. RStudio's community X-Sessions are structured with 60-minute open Community Hangouts at the beginning and closing of the event. Take this time to explore and connect with fellow Shiny developers in this unique virtual experience. It can be a challenge to navigate webinars for networking, but Community Hangouts make it easy to catch up with colleagues from around the globe. We can't wait to see you there! <h2>Let's Build Something Beautiful Together</h2> Appsilon provides innovative <strong>data</strong> <strong>analytics</strong>, <strong>machine</strong> <strong>learning</strong>, and <strong>managed services </strong>solutions for Fortune 500 companies, NGOs, and non-profit organizations. We deliver <strong>the world’s most advanced <a class="gmail-QuillHelpers-link gmail-textEditor-link" href="https://wordpress.appsilon.com/shiny" target="_blank" rel="nofollow noopener noreferrer">R Shiny</a> applications</strong>, with a unique ability to rapidly develop and scale enterprise Shiny dashboards. Our proprietary machine learning frameworks allow us to deliver <strong><a href="https://appsilon.com/computer-vision/">Computer Vision</a></strong>, <strong>NLP</strong>, and <strong>fraud detection</strong> prototypes in as little as one week. Discover our growing list of open-source R Shiny packages at <a href="https://shiny.tools/" target="_blank" rel="noopener noreferrer">shiny.tools</a>. If you find our open-source packages useful, please consider dropping a star on your favorites at our <a href="https://github.com/Appsilon" target="_blank" rel="noopener noreferrer">Github</a>. It helps let us know we're on the right track. And if you have any comments or suggestions, swing by our feedback threads like the discussion at our new <a href="https://github.com/Appsilon/shiny.fluent" target="_blank" rel="noopener noreferrer">shiny.fluent package</a> or submit a pull request. We value the R community's input. <a href="https://appsilon.com/shiny/" target="_blank" rel="noopener noreferrer"><img class="aligncenter size-full wp-image-7584" src="https://webflow-prod-assets.s3.amazonaws.com/6525256482c9e9a06c7a9d3c%2F65b020286d8f975c0820526a_World-ClassEnterpriseShinyDashboards_city_Appsilonlogo_wht_15.webp" alt="world class enterprise Shiny dashboards" width="1914" height="880" /></a>

Have questions or insights?

Engage with experts, share ideas and take your data journey to the next level!

Is Your Software GxP Compliant?

Download a checklist designed for clinical managers in data departments to make sure that software meets requirements for FDA and EMA submissions.
Explore Possibilities

Share Your Data Goals with Us

From advanced analytics to platform development and pharma consulting, we craft solutions tailored to your needs.

Talk to our Experts
community
shiny.fluent
r
shiny dashboards