La semaine dernière, Barret Schloerke, de RStudio a fourni aux développeurs plus de détails sur un pack R qui améliore les tests des applications web R Shiny. Disponible sur le réseau CRAN (The Comprehensive R Archive Network) depuis mercredi, la version 0.1.0 de shinytest2 permet de tester automatiquement l'interactivité des applications web Shiny. Ces tests sont effectués via chromote, un navigateur Chrome sans interface graphique.

Lors d'une conférence Shiny sponsorisée par les consultants Appsilon, Barret Schloerke a fait la démonstration de la fonction record_test() du paquet aux participants. Comme son nom l'indique, cette fonction enregistre les actions effectuées dans le navigateur de test et les transforme en code. Ce code peut alors automatiquement réexécuter les actions manuelles initiales de l’utilisateur et vérifier les résultats. En sous-main, shinytest2 prend des instantanés de l'état de l'application et utilise le paquet de test unitaire testthat pour stocker différentes valeurs dans le temps. Quand un test est réexécuté, les nouvelles valeurs peuvent être comparées aux précédentes. Pour plus d'informations sur shinytest2, voir le site Web du paquet.

Une alternative au framework golem

Cette semaine également, l'organisateur de la conférence, Appsilon, a dévoilé son framework Rhino pour la création d'applications Shiny. Selon lui, Rhino permet de créer des applications « comme un ingénieur logiciel ». D’après le site web du package, Rhino permet « d’appliquer les meilleures pratiques de génie logiciel, de modulariser le code, de bien le tester, de profiter d’une belle interface utilisateur et de penser à l'adoption par les utilisateurs dès l’origine. Rhino est un framework « opinionated », c’est-à-dire qu’il est capable de guider précisément le développeur, « en mettant l'accent sur les pratiques de génie logiciel et les outils de développement ». Rhino comprend une prise en charge intégrée des tests unitaires, des tests de bout en bout avec Cypress, du linting, de l’intégration continue CI GitHub Action, de la gestion des dépendances, etc.

Rhino offre une nouvelle alternative à l'actuel framework populaire golem créé par l’entreprise de conseil ThinkR R. L'une des principales différences entre les deux, c’est que golem exige qu'une application Shiny soit créée en tant que paquet R, ce qui n’est pas le cas de Rhino. Les représentants d'Appsilon ont déclaré que pour certains travaux de leurs clients, ils avaient besoin de créer une application qui n'est pas structurée comme un paquet, afin d’avoir plus de flexibilité quant à la structure du fichier. Pendant la conférence, beaucoup de discussions en chat portaient sur les avantages qu’il y a à exiger que les applications Shiny soient des paquets R, certains préférant la portabilité et les structures connues d'un paquet et d'autres préférant le concept du plus grand choix. Les vidéos de la plupart des présentations de la conférence seront bientôt disponibles sur la chaîne YouTube d'Appsilon

Des annonces pour juillet ?

Lors d'une table ronde clôturant la conférence, Joe Cheng, directeur technique de RStudio, a été interrogé sur les derniers développements les plus intéressants de Shiny. « Nous avons des choses formidables en préparation, dont nous ne pouvons pas encore parler », a répondu M. Cheng. Il a parlé d’un « tas de travaux secrets en cours, impossibles à divulguer au public pour l’instant ». Mais, quand l'animateur de Shiny Developer Series, Eric Nantz, lui a demandé si certains de ces travaux pourraient être dévoilés lors de la conférence rstudio:conf 2022 qui se tiendra en ligne du 25 au 28 juillet, M. Cheng a répondu que « c'était probable ». La page Do More With R d'InfoWorld comporte beaucoup de conseils (en anglais) pour tirer le meilleur parti de R, et des liens vers plus de 50 articles et didacticiels.