Hace nueve años, el equipo de Electron revolucionó la forma en que creamos aplicaciones de escritorio al presentar un marco que nos permite crear una rápidamente con conocimientos básicos de HTML, CSS y JavaScript. Salvo sus críticas válidas, Electron hace el trabajo y lo hemos visto utilizado por varias empresas, incluidas Slack, WhatsApp (escritorio) e incluso el editor de texto favorito de la comunidad de desarrolladores, VS Code. Recientemente, sin embargo, Tauri se introdujo como una alternativa a Electron.
¿Qué es Tauri?
Tauri es un framework relativamente nuevo que permite crear rápidamente aplicaciones multiplataforma aprovechando las tecnologías web básicas, así como el lenguaje de programación Rust.
Tauri se basa en Rust, es seguro y tiene un gran rendimiento por diseño, es compatible con cualquier framework de front-end y permite crear aplicaciones ejecutables para todas las principales plataformas de escritorio, incluidos macOS, Windows y el sistema operativo Linux.
Cómo funciona Tauri
Cada aplicación Tauri contiene un proceso central que sirve como punto de entrada de la aplicación y es el único componente con acceso completo al sistema operativo. Sin embargo, el proceso central no representa la interfaz de la aplicación real; en su lugar, lanza subprocesos que utilizan bibliotecas WebView proporcionadas por el sistema operativo, lo que permite crear aplicaciones Tauri con tecnologías web.
A diferencia de Electron, que empaqueta y procesa sus aplicaciones usando el motor Chromium independientemente del sistema operativo subyacente, Tauri usa las bibliotecas WebView del sistema operativo. La ventaja del enfoque de Tauri es que las bibliotecas de WebView no se incluyen en el ejecutable final, sino que se vinculan dinámicamente en tiempo de ejecución, lo que reduce en gran medida el tamaño y el rendimiento de la aplicación incluida.
Ventajas de Tauri
Como se indicó anteriormente, las aplicaciones Tauri son mucho más livianas que las aplicaciones Electron debido a su enfoque de vista web. De hecho, una aplicación de muestra construida con Electron que pesa más de 52 MB pesaría mucho menos, alrededor de 3 MB, cuando se construye con Tauri.
Algunos otros beneficios importantes del marco Tauri incluyen:
- Mejor rendimiento: las aplicaciones de Tauri también superan a las aplicaciones de Electron en términos de rendimiento, tiempo de inicio y consumo de memoria.
- Auto actualizador: Tauri incluye una función de autoactualización que puede integrar rápidamente en su aplicación sin depender de bibliotecas de terceros
- Multiplataforma: puede generar ejecutables para todos los principales sistemas operativos de escritorio
Los principales inconvenientes de Tauri
- Compatibilidad del navegador: uno de los principales inconvenientes de Tauri es que tendrás que preocuparte por la compatibilidad del navegador. Hay algunas API web que funcionan con macOS WebView y es posible que no funcionen con Windows y viceversa. Además, el diseño de los elementos web, como entradas, botones, etc., varía ligeramente según el sistema operativo WebView. Querrás tener en cuenta estas diferencias
- Recursos y ecosistema: Tauri todavía es bastante nuevo, al igual que sus recursos y ecosistema. A diferencia de cómo puede encontrar rápidamente complementos y respuestas de StackOverflow para la mayoría de los problemas de Electron, Tauri aún no tiene eso. Sin embargo, esto sin duda cambiará en el futuro.
- Conocimiento de Rust: cuando trabaje con Tauri, no necesitará Rust en su mayor parte. Sin embargo, es posible que deba aprenderlo a medida que se profundice en cosas avanzadas, como tener que realizar llamadas de sistema operativo de orden superior con Rust si los complementos de JavaScript de Tauri no son compatibles.
Creación de aplicaciones Tauri
Antes de que pueda comenzar a crear aplicaciones Tauri, primero debe instalar algunos paquetes/dependencias de requisitos previos, en particular, las herramientas de compilación de Microsoft Visual Studio C++ y WebView 2 en Windows, las dependencias de desarrollo de CLang y Xcode para macOS y Rust, independientemente del sistema operativo. Puede encontrar instrucciones sobre cómo configurar todo esto en su página de requisitos previos (también se incluyen instrucciones para diferentes distribuciones de Linux).
Una vez que haya instalado todos los requisitos previos, puede crear una nueva aplicación Tauri con:
1
npm create tauri-app
Al ejecutar este comando, se le pedirá que elija el nombre de su aplicación, gestor de paquetes y receta preferida, es decir, si prefiere usar HTML, CSS y JavaScript básicos u otros frameworks de JavaScript como React, Vue y Svelte.
Se procede a instalar dependencias con:
1
npm install
Una vez que se completa el proceso, puede ejecutar la aplicación con el siguiente comando:
1
npm run tauri dev
Ejecutar este comando por primera vez tomará un par de minutos, y una vez que se complete, deberías ver tu nueva aplicación de escritorio aparecer en una nueva ventana, como la vista previa a continuación:
Y, por supuesto, se admite la recarga en caliente, lo que significa que podemos realizar cambios en nuestro código y se verán reflejados en nuestra aplicación de inmediato.
Estructura de archivos
Si abre la nueva carpeta de la aplicación en su editor de texto favorito, debería ver los siguientes archivos y directorios:
Donde src
sera la carpeta con los archivos HTML/CSS3/JS y la carpeta src-tauri
contendrá los archivos de configuración de Tauri.
src/main.rs
— este archivo rust es el punto de entrada de nuestra aplicación Tauri; básicamente contiene el código para arrancar nuestra aplicación. Aquí, también podríamos incluir funciones personalizadas de Rust a las que podemos llamar directamente a través de JavaScript, como veremos más adelante.
Cargo.toml
— este archivo es similar a un manifiesto PWA.json y contiene los metadatos de nuestra aplicación.
target/
— después de ejecutar el comando de compilación, esta carpeta contendrá los ejecutables de nuestra aplicación
tauri.conf.json
- este archivo le permite configurar y personalizar varios aspectos de su aplicación Tauri, como el nombre de la aplicación, tamaño de la ventas, la lista de API permitidas, etc.
RUST
Además de ejecutar su código normal relacionado con la web (HTML, CSS y JavaScript), Tauri proporciona una característica útil llamada Command Básicamente, le permite crear funciones personalizadas de Rust e invocarlas a través de JavaScript. Esto es particularmente útil si necesita manejar un procesamiento pesado o realizar llamadas al sistema operativo en un código Rust mucho más eficiente.
Construyendo la aplicación
Empaquetar su proyecto Tauri como una aplicación de escritorio independiente es bastante sencillo, pero primero deberá cambiar el identificador tauri.bundle.identifier
en el archivo tauri.config.json
de com.tauri.dev
a su identificador único preferido. Después de eso, puede continuar ejecutando el siguiente comando:
1
2
npm run tauri build
npx tauri build
Al ejecutar el comando de compilación, Tauri detectará automáticamente su sistema operativo y generará la aplicación ejecutable independiente en consecuencia.