Retour

Du Code R au Web : Comprendre le mécanisme de Shiny

Publié le par Terence Dechaux (Institut de l'Elevage)
Modélisation - méthodes statistiques
R se distingue comme le langage de programmation statistique par excellence. Sa syntaxe concise et sa vaste gamme de packages en font un choix privilégié pour l'analyse de données, la visualisation et la modélisation statistique.  Mais saviez-vous qu’il était possible de développer des applications web à partir de R ? Il est temps de faire connaissance avec un package devenu un incontournable de R : shiny !

Shiny, qu'est-ce que c'est ?

 

Shiny est un package de R développé par Posit (anciennement Rstudio) en 2012. Il permet la création d’applications web dynamiques. Nul besoin d’être un expert du développement web, Shiny simplifie le processus de développement grâce à une syntaxe concise qui facilite de nombreuses tâches complexes liées à la création d’applications. En résumé, tout se fait en R !

Comment ça fonctionne ?

Une application shiny se compose de deux parties : une partie UI (pour User Interface) et une partie Server. L’UI définit la présentation visuelle de l’application. C’est l’interface visible par l’utilisateur et sur laquelle il peut interagir. Le Server quant à lui gère la logique et les calculs sous-jacent. Cette collaboration donne naissance à des applications intéractives de manière simple et efficace.

Dans cet article, nous nous concentrerons sur un exemple extrait de la galerie d’applications de Posit :

 Accéder aux autres applications démos de Posit

L'UI ou l'art de la présentation

C’est dans cette partie que vous définissez la disposition des éléments visuels. Ces éléments peuvent être les résultats d’un calcul comme un graphique ou un tableau, mais aussi des entrées permettant à l’utilisateur d’enclencher une action via un bouton, ou modifier des éléments via des curseurs. Ces entrées et sorties sont appelées ou créées via des fonctions spécifiques au package shiny. Ce sont des fonctions qui s'utilisent comme des fonctions classiques de R, mais qui font intervenir des langages propres au développement Web comme HTML ou CSS. 
Dans notre exemple, l’UI gère l’affichage du graphique, du titre de l’application et sa mise en forme, les paramètres d’entrées à renseigner par l’utilisateur (menus déroulants) et la disposition de tous ces éléments.

Le Server, le cerveau de l'opération

Le Server est le génie qui transforme l’interaction utilisateur en action. Il réagit aux entrées de l’UI, effectue des calculs, manipule les données et met à jour l’interface en conséquence. C’est le cerveau de l’application derrière l'interface visuelle.

Dans notre exemple, c’est dans le Server que le graphique est calculé. C'est donc dans cette partie que nous retrouverons la fonction plot() pour tracer le graphique.

Une parfaite collaboration entre l'UI et le Server 

Tout l’intérêt d’une application shiny réside dans l’étroite connexion entre l’UI et le Server. Ainsi, chaque action de l’utilisateur, qu’il s’agisse d’un clic sur un bouton, ou de déplacer un curseur entraine une réaction instantanée de l’application. Lors de ces interactions, les données dans le Server sont mises à jour automatiquement, entrainant à son tour une mise à jour de l’interface. C’est ce qu’on appelle la réactivité.

Dans notre exemple, c’est grâce à cette réactivité que le graphique se met automatiquement à jour en fonction de la sélection d’une autre variable ou d’un changement du nombre de classes.

Partager son application

Une fois l'application développée, Shiny offre de multiples options de déploiements sur des serveurs Shiny dédiés ou sur des plateformes cloud. Vous pourrez ainsi partager vos outils avec vos collègues ou le monde entier !

Pour conclure

Les applications Shiny offrent une approche novatrice pour créer des interfaces web interactives en utilisant le langage R. Grâce à une architecture simple mais puissante, Shiny ouvre la porte à une analyse de données plus dynamique et accessible à un public plus large.

Envie de vous lancer ou d’en savoir plus ? Consulter notre offre de formation:

Créer des applications web avec Rshiny