Arnaud MILET
http://rpubs.com/D-SIDD/shiny_1
Le package Shiny, c’est la possibilité pour un statisticien de valoriser une analyse, de créer une application interactive,… sans connaître de langages de programmation en dehors de R.
Il est possible d’executer localement les exemples de RStudio:
Celle-ci est accessible via le menu Help>Cheatsheets>Web Applications with Shiny:
Pour construire votre première appli Shiny, vous pouvez vous aider du modèle (“template”") fourni par RStudio, en faisant File -> New project -> New directory -> Shiny web application.
Deux fichiers sont alors créés: server.R, et ui.R.
Vous pouvez ouvrir l’un ou l’autre, et activer le bouton Run App en haut à droite de la partie “script” de l’interface RStudio pour construire (et tester) l’appli.
Une fois que les deux fichiers ui.R et server.R sont correctement remplis, il suffit de lancer la fonction shiny::runApp en donnant le chemin complet vers le dossier contenant les deux fichiers.
Une page web s’ouvre alors avec votre application Shiny prête à être utilisée. Cette commande lance l’application en local sur votre ordinateur, vous ne pouvez pas la partager à quelqu’un d’autre.
Quand vous construisez et testez votre app, l’ordinateur qui affiche l’interface =l’ordinateur qui effectue les calculs (car dans ce cas, l’utilisateur = le développeur = vous).
En revanche, si vous souhaitez que votre app soit utilisable par un autre utilisateur que vous même, vous pouvez procéder de deux manières:
Dans le cas où vous déployez votre app sur un serveur distant, cela veut dire qu’il y a une structure qui vous “offre” gratuitement de la puissance de calcul sur son serveur… Cela n’est donc pas, généralement, totalement gratuit et/ou totalement illimité…
La library rsconnect vous permettra de déployer vos applications vers shinyapps avec la fonction deplyApp:
ui:
server:
Deux structures de base sont possibles pour les apps: soit avoir tout réuni dans un même script (app.R) soit séparer la partie ui et la partie server dans deux fichiers (ui.R et server.R). C’est cette deuxième solution que nous allons privilégier.
Dans l’exemple de gauche, ui est un objet de type UI issu de l’appel à une fonction -ici, fluidPage()-. Les différents éléments passés à fluidPage() sont donc des arguments (i.e. ils sont séparés par des virgules!).
Au contraire, dans server on définit une fonction, ayant pour arguments input et output. Le corps de cette fonction s’écrit donc comme une suite de lignes de commandes (i.e. les commandes sont séparées par des retours à la ligne!)
Le répertoire qui contient votre application doit être construit d’une manière qui facilite son déploiement sur un serveur distant. Le mieux ainsi d’avoir:
Les commandes du fichier global.R sont exécutées dans un environnement… global. C’est-à-dire que les packages qu’on y charge ou les objets qu’on y crée seront disponibles à la fois pour les parties UI et Server. Les commandes de global sont donc exécutées une bonne fois pour toutes (c’est-à-dire, une fois par session, et avant toute autre chose) au lancement de la Shiny App.
En utilisant le menu File > New file > Shiny Web App.., créez la structure de votre première application. Privilégiez plutôt deux fichiers distincts lors de la création.
Créez un compte gratuit sur https://www.shinyapps.io/
Installez le package rsconnect et déployez votre première application sur votre compte shinyapps.io.
1.2- Comment est-ce que cela fonctionne ?
1.2.1- Fonctionnement d’une application web en général
Interaction client/serveur

Langages d’interaction classique

1.2.2- Fonctionnement d’une application shiny en particulier
Shiny fonctionne également sur le principe d’interaction entre le client et le serveur

Schéma de fonctionnement de shiny

Les fichiers nécéssaires au fonctionnement d’une application shiny sont toujours situés dans le même dossier.
Les parties ui et server peuvent être dans le même ficchier : app.R ou dans deux fichiers distincts ui.R et server.R.