De tu Máquina a la Web: Compartiendo tu Aplicación con el Mundo.
Hemos construido una aplicación funcional en nuestra máquina local. Podemos ejecutarla, interactuar con ella y ver los resultados. Pero su verdadero poder se desata cuando otros pueden hacer lo mismo sin necesidad de tener R, RStudio o nuestro código fuente instalado.
La "Puesta en Producción" o "Despliegue" (Deployment) es el proceso de tomar nuestra aplicación y alojarla en un servidor web, haciéndola accesible a través de una URL, como cualquier otra página de internet. Este es el puente final que conecta nuestro análisis con los usuarios finales, convirtiendo un script en un verdadero producto de datos.
Existen muchas formas de desplegar una aplicación Shiny, desde servidores propios hasta complejos servicios en la nube. Sin embargo, para empezar, usaremos la opción más sencilla y directa: shinyapps.io.
Es un servicio ofrecido por Posit (la empresa detrás de RStudio) que está diseñado específicamente para alojar aplicaciones Shiny. Su plan gratuito es perfecto para portafolios, prototipos y los proyectos de este curso. Nos permite publicar nuestras aplicaciones directamente desde RStudio con solo un par de clics.
Vamos a tomar la aplicación que construimos en la lección anterior y la publicaremos en la web.
El primer paso es registrarse en la plataforma. Visita la página de `shinyapps.io` y crea una cuenta nueva. Elige el plan gratuito ("Free"), que es más que suficiente para nuestros objetivos.
Crear mi cuenta en shinyapps.ioPara que RStudio pueda comunicarse con tu cuenta de `shinyapps.io`, necesitas un paquete especial llamado `rsconnect`. Abre tu consola de R (en RStudio) y ejecuta el siguiente comando para instalarlo.
install.packages('rsconnect')Este es el paso clave de configuración. Una vez que hayas iniciado sesión en tu dashboard de `shinyapps.io`, ve a la sección Account Tokens. Verás un botón que dice "+ Add Token". Al hacer clic, te mostrará un comando para copiar.
Este comando contendrá tu "token" y "secret" personales, que son como tu usuario y contraseña para la API. Cópialo y pégalo en tu consola de R. Se verá algo así:
# Tu comando será único y contendrá tus credenciales
rsconnect::setAccountInfo(name='tu-nombre-de-usuario',
			  token='TU_TOKEN_PERSONAL',
			  secret='<TU_SECRET_PERSONAL>')Al ejecutarlo, tu RStudio quedará permanentemente conectado a tu cuenta de `shinyapps.io`.
Con tu archivo app.R abierto en RStudio, busca el botón azul con el logo de Shiny en la esquina superior derecha del panel del editor. Tiene un tooltip que dice "Publish Application".
Haz clic en él. Te aparecerá una ventana para confirmar qué archivos quieres subir (normalmente RStudio detecta app.R y los datos que lee). Dale un nombre a tu aplicación (ej. `mi-primer-dashboard`) y haz clic en "Publish".
Se abrirá una ventana de "Deploy" que te mostrará el progreso. RStudio empaquetará tu código, lo subirá a los servidores de `shinyapps.io` e instalará las librerías necesarias. Cuando termine, ¡tu aplicación estará viva en una URL pública!
Si usas VS Code con la extensión de R, no tendrás el botón de "Publish". ¡No hay problema! El proceso se hace desde la terminal de R integrada. Simplemente asegúrate de que tu terminal esté en la carpeta raíz del proyecto y ejecuta el siguiente comando:
# Despliega la aplicación en el directorio actual
rsconnect::deployApp()Este comando hace exactamente lo mismo que el botón de RStudio.
`shinyapps.io` es inteligente y usualmente detecta qué paquetes necesita tu app (como `shiny`, `readr`, `ggplot2`). Sin embargo, en proyectos más complejos, es una buena práctica gestionar las dependencias explícitamente con un paquete llamado `renv`.
`renv` crea una librería de paquetes aislada para tu proyecto, asegurando que siempre se usen las versiones correctas. Para inicializarlo en tu proyecto, simplemente ejecuta en la consola:
# Instalar renv si no lo tienes
install.packages('renv')
# Inicializar renv en tu proyecto actual
renv::init()
# Después de instalar nuevos paquetes, toma una "foto" de las dependencias
renv::snapshot()Esto crea un archivo `renv.lock` que `shinyapps.io` usará para recrear el entorno exacto, garantizando la máxima reproducibilidad. ¡Este es un pilar fundamental de MLOps!