Saltar al contenido

Tecnología · Apps de escritorio con Rust

Desarrollo de apps de escritorio con Tauri

Tauri permite construir una aplicación de escritorio con la interfaz hecha en tecnología web y el núcleo escrito en Rust. En lugar de llevar un navegador entero dentro, usa el que ya trae el sistema, así que el instalador pesa poco y la aplicación gasta menos memoria. Desarrollamos aplicaciones nuevas con Tauri y migramos las que hoy están en Electron.

Fig. 01Banco de dos capasNÚCLEO · RUSTappLEER ARCHIVOSIMPRIMIRPUERTO USBBORRAR DISCOVENTANA · PERMISOS · NÚCLEOEn bucle
La ventana pide y el núcleo en Rust ejecuta, pero solo las órdenes que el cuadro de permisos deja pasar: la que no figura se encuentra el zócalo tapado. Del mismo banco salen los instaladores de cada sistema.

Situaciones

Qué puedes resolver con una app en Tauri

Tauri compensa cuando quieres una aplicación de escritorio de verdad, con acceso a archivos y aparatos, sin renunciar a una interfaz web que tu equipo ya sabe hacer.

  • Una web que necesita salir del navegador

    Trabajar con archivos locales, imprimir sin diálogos, hablar con un aparato o seguir funcionando sin conexión. La interfaz que ya tienes se aprovecha y gana un núcleo que sí llega al sistema.

  • Un instalador que pesa demasiado

    Aplicaciones que ocupan mucho y tardan en arrancar porque llevan un navegador dentro. Con Tauri se usa el del sistema y el paquete adelgaza.

  • La misma app en Windows, macOS y Linux

    Un solo código para los tres sistemas, con sus instaladores, sus iconos y sus firmas. Y, si hace falta, también para móvil.

  • Una interfaz que no debe poder hacerlo todo

    La interfaz solo puede pedir al sistema lo que se le ha permitido de antemano, orden por orden y carpeta por carpeta. Si alguien cuela código en ella, no hereda las llaves del equipo.

El puente: de la ventana al núcleo solo cruzan órdenes con nombre

Qué conviene revisar al empezar

  • En qué sistemas y versiones se va a instalar
  • Qué necesita del equipo: archivos, impresoras, aparatos, red
  • Si existe ya una interfaz web o una app en Electron de la que partir
  • Cómo se van a firmar y a actualizar los instaladores

Servicios

Qué desarrollamos con Tauri

Cuatro tipos de encargo. El núcleo en Rust es lo que distingue a una app en Tauri de una web empaquetada.

  • Módulo 1 · Ventana

    Apps de escritorio nuevas

    La aplicación completa: interfaz con la tecnología web que prefieras, menús, bandeja del sistema, atajos y varias ventanas, con el comportamiento de cada sistema operativo.

    Ejemplos de entregables

    • Herramienta interna de gestión
    • Puesto de trabajo con impresión
    • Editor de documentos propios
  • Módulo 2 · Núcleo

    Núcleo en Rust y acceso al sistema

    Lo que la app hace de verdad: leer y escribir archivos, base de datos local, cálculos pesados y comunicación con aparatos, ofrecido a la interfaz como órdenes con nombre.

    Ejemplos de entregables

    • Base de datos local con SQLite
    • Lectura de un aparato por USB
    • Procesado de ficheros grandes
  • Módulo 3 · Cuadro de permisos

    Permisos y seguridad

    Qué puede pedir cada ventana y sobre qué carpetas, definido en un archivo que se revisa. Más la política de contenidos y el aislamiento de lo que viene de fuera.

    Ejemplos de entregables

    • Acceso limitado a una carpeta
    • Órdenes permitidas por ventana
    • Revisión de una app existente
  • Módulo 4 · Prensa de instaladores

    Migración desde Electron y empaquetado

    Paso de una app de Electron a Tauri conservando la interfaz, e instaladores firmados para cada sistema con su actualización automática.

    Ejemplos de entregables

    • Migración por pantallas
    • Instalador firmado para Windows y macOS
    • Actualización automática

Un ejemplo en funcionamiento

Lo que la ventana puede pedir, y lo que no

Demostración simulada. La ventana de una app intenta cuatro cosas. A su lado está el cuadro de permisos: activa o quita cada uno y vuelve a probar.

Demostración simulada · datos de muestra

Partes de trabajo

Lo que la ventana intenta

Sin datos cargados.

Cuadro de permisos

Borrar fuera de la appNo hay interruptor: el núcleo no ofrece esa orden.

Entre la ventana y el núcleo

    No hay ninguna app instalada: la ventana y el núcleo están simulados en tu navegador y no se toca ningún archivo. El modelo es el de Tauri: lo que no está permitido de antemano, la interfaz no puede pedirlo.

    Integración

    Cómo encaja con tus sistemas

    Una app en Tauri tiene dos mitades: la que se ve, hecha con tecnología web, y la que trabaja, en Rust. Entre las dos solo pasa lo que está declarado.

    De dónde viene

    TauriApp de escritorio en Tauriinterfaz web, núcleo en Rust

    A dónde llega

    Dependencias que conviene revisar

    • Qué motor web trae cada sistema y qué versiones mínimas se soportan
    • Qué bibliotecas de la interfaz actual dependen de un navegador concreto
    • Qué certificados de firma hacen falta en Windows y en macOS
    • Qué partes de una app de Electron usan módulos de Node que habrá que sustituir

    Cómo trabajamos y qué entregamos

    Cómo trabajamos un encargo con Tauri

    1. 01

      Revisión inicial

      Miramos la interfaz o la app que existe, lo que necesita del equipo y en qué sistemas se va a instalar.

    2. 02

      Alcance

      Escribimos las ventanas, las órdenes que ofrece el núcleo, los permisos de cada una y lo que queda fuera.

    3. 03

      Primera entrega

      Un instalador que se abre en tus equipos, con el recorrido principal y un acceso real al sistema.

    4. 04

      Validación

      La pruebas en los tres sistemas si los usas, sin conexión y en el equipo más modesto.

    5. 05

      Documentación

      Cómo se compila, se firma y se publica una versión, y el archivo de permisos explicado.

    Qué recibes al cerrar el encargo

    • El código de la interfaz y del núcleo en tu repositorio
    • Instaladores firmados para cada sistema
    • El archivo de permisos, comentado
    • La lista de lo que queda fuera y por qué

    Preguntas

    Preguntas sobre Tauri

    ¿Falta la tuya? Escríbela a info@veodar.com y te respondemos con una pregunta concreta, no con un dossier.

    ¿En qué se diferencia Tauri de Electron?

    Electron lleva dentro su propio navegador y Node.js; Tauri usa el navegador del sistema y pone la lógica en Rust. El resultado es un instalador mucho más ligero y menos memoria en uso, a cambio de comprobar la interfaz en el motor web de cada sistema. Electron sigue siendo razonable para apps que ya existen o que dependen de su ecosistema.

    ¿Tengo que saber Rust para mantener la app?

    Para tocar la interfaz, no: es tecnología web. Para cambiar lo que la app hace con el sistema, sí hace falta Rust, aunque suele ser poco código y estable. Dejamos documentado dónde está la frontera para que tu equipo sepa qué puede tocar.

    ¿La interfaz se ve igual en los tres sistemas?

    Casi, pero no hay que darlo por hecho. Cada sistema dibuja con su propio motor web y hay diferencias pequeñas en tipografías, desplazamiento o funciones recientes. Por eso se prueba en los tres desde el principio y no al final.

    ¿Podéis migrar mi app de Electron?

    En muchos casos sí. La interfaz se conserva casi entera; lo que cambia es la parte que usa Node.js, que se reescribe en Rust o se sustituye por complementos de Tauri. Antes revisamos qué módulos nativos usa, que es lo que decide el esfuerzo.

    ¿Sirve Tauri para una app que trabaja sin conexión?

    Sí. La app y sus datos viven en el equipo, normalmente en una base de datos SQLite, y sincroniza cuando hay red. Es uno de los motivos habituales para salir del navegador.

    ¿Y también para móvil?

    Desde su versión 2, Tauri puede generar apps para iOS y Android con el mismo núcleo. Es una opción cuando el escritorio es lo principal y el móvil un complemento; para una app pensada primero para el teléfono solemos proponer otras tecnologías.

    Actualizado:

    Otras tecnologías

    Con qué se combina

    Todas las tecnologías
    • Desarrollo en RustAplicaciones, servicios y módulos que no pueden fallar ni ir lentos. Programamos en Rust el núcleo de tu producto o la pieza que hoy lo frena.
    • Datos sin conexión con SQLiteLa app guarda y consulta en el propio teléfono y sincroniza cuando vuelve la cobertura. Diseñamos el modelo local, la cola de cambios y el cifrado.
    • Firma y actualización automáticaInstaladores firmados que el sistema acepta sin avisos y versiones nuevas que llegan solas a cada puesto, con vuelta atrás si algo falla.

    Empezar

    Cuéntanos qué aplicación quieres llevar al escritorio.

    Con saber qué hace, en qué sistemas y qué necesita del equipo nos basta para una primera respuesta.

    Qué ayuda a valorarlo

    • Qué hace la app y quién la usa
    • En qué sistemas operativos se instala
    • Qué necesita del equipo: archivos, impresoras, aparatos
    • Si existe ya una web o una app en Electron

    ¿Antes de escribir? Mira cómo presupuestamos un proyecto o las soluciones por área de la empresa.

    Fig. 07Manipulador MorseH · O · L · A