Saltar al contenido

Pantalla de inicio (Splashscreen)

En este laboratorio implementaremos una funcionalidad básica de pantalla de inicio en una aplicación Tauri. Hacer esto es bastante sencillo; una pantalla de inicio es efectivamente solo cuestión de crear una nueva ventana que muestre algún contenido durante el período en el que tu aplicación realiza tareas pesadas de configuración y luego cerrarla cuando la configuración haya terminado.

  1. Instalar dependencias y ejecutar el proyecto
    Sección titulada "Instalar dependencias y ejecutar el proyecto"

    Antes de comenzar a desarrollar cualquier proyecto, es importante compilar y ejecutar la plantilla inicial, solo para validar que tu configuración funcione como se espera.

  2. Registrar nuevas ventanas en tauri.conf.json
    Sección titulada "Registrar nuevas ventanas en tauri.conf.json"

    La forma más fácil de agregar nuevas ventanas es agregándolas directamente a tauri.conf.json. También puedes crearlas dinámicamente al iniciar la aplicación, pero para simplificar, simplemente las registraremos. Asegúrate de tener una ventana con la etiqueta main que se cree como una ventana oculta y una ventana con la etiqueta splashscreen que se cree para mostrarse directamente. Puedes dejar todas las demás opciones en sus valores predeterminados o ajustarlas según tus preferencias.

  3. Crear una nueva página para alojar tu pantalla de inicio
    Sección titulada "Crear una nueva página para alojar tu pantalla de inicio"

    Antes de comenzar, necesitarás tener algo de contenido para mostrar. La forma en que desarrolles nuevas páginas depende del framework elegido, la mayoría tiene el concepto de un "enrutador" que maneja la navegación de páginas, el cual debería funcionar con normalidad en Tauri; en cuyo caso simplemente creas una nueva página de pantalla de inicio. O, como vamos a hacer aquí, crea un nuevo archivo splashscreen.html para alojar el contenido.

    Lo importante aquí es que puedas navegar a una URL /splashscreen y ver el contenido que deseas para tu pantalla de inicio. ¡Intenta ejecutar la aplicación nuevamente después de este paso!

  4. Iniciar algunas tareas de configuración
    Sección titulada "Iniciar algunas tareas de configuración"

    Dado que las pantallas de inicio generalmente están destinadas a ocultar tareas pesadas de configuración, vamos a simular darle a la aplicación algo pesado para hacer, una parte en el frontend y otra en el backend.

    Para simular una configuración pesada en el frontend usaremos una función setTimeout simple.

    La forma más fácil de simular operaciones pesadas en el backend es usando la crate Tokio, que es la crate de Rust que Tauri utiliza en el backend para proporcionar un runtime asíncrono. Aunque Tauri proporciona el runtime, hay varias utilidades que Tauri no vuelve a exportar desde él, por lo que necesitaremos agregar la crate a nuestro proyecto para acceder a ellas. Esta es una práctica perfectamente normal dentro del ecosistema de Rust.

    No uses std::thread::sleep en funciones asíncronas; se ejecutan de forma cooperativa en un entorno concurrente, no en paralelo, lo que significa que si duermes el hilo en lugar de la tarea de Tokio, bloquearás todas las tareas programadas para ejecutarse en ese hilo, provocando que tu aplicación se congele.

  5. ¡Ahora deberías ver aparecer una ventana de pantalla de inicio, tanto el frontend como el backend realizarán sus respectivas tareas pesadas de configuración de 3 segundos, después de lo cual la pantalla de inicio desaparece y se muestra la ventana principal!

¿Deberías tener una pantalla de inicio?
Sección titulada "¿Deberías tener una pantalla de inicio?"

En general, tener una pantalla de inicio es una admisión de derrota de que no pudiste hacer que tu aplicación se cargara lo suficientemente rápido como para no necesitar una. De hecho, tiende a ser mejor ir directamente a la ventana principal y mostrar un pequeño indicador de carga en alguna esquina que informe al usuario de que aún hay tareas de configuración ejecutándose en segundo plano.

Sin embargo, dicho esto, puede ser una elección estilística querer tener una pantalla de inicio, o podrías tener un requisito muy particular que haga imposible iniciar la aplicación hasta que se realicen ciertas tareas. Definitivamente no está mal tener una pantalla de inicio, simplemente suele no ser necesaria y puede hacer que los usuarios sientan que la aplicación no está muy bien optimizada.


© 2026 Colaboradores de Tauri. CC-BY / MIT