This is a companion discussion topic for the original entry at https://blog.rstudio.com/2020/11/10/the-appsilon-shiny-semantic-pocontest
One of our Full Service Partners, Appsilon, recently held an internal competition to help test an open source R package they developed called shiny.semantic
. This package is designed to quickly help create proof-of-concept Shiny apps using the Fomantic UI library. To make the competition a little more interesting, Appsilon reached out and asked if we would judge the submissions on their technical and creative merit. Here’s a sneak peek of the apps we got to review, and a summary of the winners.
The goal of the shiny.semantic
library is to help developers create beautiful, sophisticated apps rapidly for demoing or proof-of-concept (PoC) purposes. By quickly creating a visually appealing PoC, users are able to showcase the capabilities of Shiny without having to invest in a lot of development time up front.
While shiny
works with the Bootstrap library under the hood, shiny.semantic
uses Fomantic UI (formerly Semantic UI) to develop its layout structure. Fomantic UI groups elements with similar layout concepts together, letting users create beautiful reactive HTML outputs. Because the structure is semantically grouped, users can add related elements more easily, allowing them to create complex layouts with little development overhead.
Appsilon wanted to prove that with shiny.semantic
, it’s possible to create a great looking and high quality Shiny app in under 24 hours. As a result, they ran an internal competition to test this theory.
Contest Rules:
- You must use the
shiny.semantic
package. - Your demonstration must be built by a single person.
- Development time must not exceed 24 hours.
Below are the winners of the competition along with some honorable mentions.
Most Technically Impressive: Polluter Alert
This is a Shiny dashboard created by Appsilon co-founder Pawel Przytula that allows the user to view and report sources of air pollution in a particular area over time. The app is made up of a Leaflet map that shows live pollution sources and additional data about the sources as gathered from the Airly API. In addition to exploring current air pollution sources, the user can also upload their own polluters using their webcam and GPS location.
This application is quite sophisticated in that it uses multiple APIs and leverages different tools to connect them. Even though it’s just a proof of concept, this app would be widely helpful for local governments.
Development Time: 17 hours
Github Repository
Runner up: FIFA ‘19
Inspired by Ekrem Bayar’s FIFA ‘19 Shiny dashboard and using data from the SoFIFA dataset, this application by Dominik Krzemiński lets users explore FIFA ‘19 data by comparing teams, players, and leagues. This app is a great example of all the different visualizations available in Shiny, and for being developed in under 10 hours, we are quite impressed! Dominik leads the development of open source packages at Appsilon, so it’s no surprise that he has such a great handle on shiny.semantic
’s capabilities.
Development Time: 9 hours
Github Repository
Most Creatively Impressive: Semantic Pixelator
Created by Pedro Silva, one of the Grand Prize Winners of the 2020 RStudio Shiny Contest, Semantic Pixelator is a clever way for users to explore images by composing them into a mosaic using loaders, icons, and other semantically-related UI elements.
The user can start with a random image or upload their own picture (as you might have recognized in the header photo at the top of this article) to start. The user can then use the sidebar to refine different parameters such as the size of the generated grid, the base element type, and different color options. The user can then use the palette generator to generate a color palette based on the result, as well as download both the current palette details and the generated composition. The app is also full of Easter eggs, so try exploring and even typing in random words!
Development Time: 24 hours
Github Repository
Honorable Mentions
Shiny Mosaic
This application allows users to create a photo mosaic using their own photo. First, users select a theme for the final image, either dogs, cats, or a custom one. Then, either by using their webcam or uploading a photo, the user can generate and download a photo collage of their image generated from an image library of the selected theme. So, for instance, you could make a photo mosaic of a picture of your dog that is composed of hundreds of images of other dogs.
Development Time: 24 hours
Github Repository
Squaremantic
This application developed by Jakub Chojna creates a visually appealing square layout from text input. The user can update the formatting of the letters via the sidebar input and eventually download the final result as a PDF file. We can definitely see a graphic design team using this application to generate ideas and proof of concepts. Now if only it helped to create hex-shaped images of R package logos…
Development Time: 20 hours
Github Repository
Semantic Memory
Inspired by one of the 2019 Shiny Contest winners, Hex Memory Game, Semantic Memory was created by Jakub Nowicki, using shiny.semantic
. Two players try to find as many pairs of RStudio and Appsilon package hex logos as they can, while the app tallies scores and displays a winner for each game.
Development Time: 12 hours
Github Repository
Vote for the People’s Choice Winner
Which shiny.semantic
PoC app is your favorite? Click here to browse all six submissions and vote for the People’s Choice Award. The PoC app with the most votes from the R community will win a special prize from the Appsilon team.
To Learn More
If you’d like learn more about using and deploying Shiny applications, we encourage you to check out the following links:
- The ever-popular Shiny Cheatsheet provides a tour of the Shiny package and explains how to build and customize an interactive app.
- The Shiny project site provides tutorials, resources and many examples of Shiny applications.
- If you need to deploy and share your Shiny applications, shinyapps.io lets you deploy your apps on the web in minutes, while RStudio Connect allows you to share Shiny apps (and many other types of data science content) within your organization.