Pake: Esta herramienta CLI crea aplicaciones de escritorio de 5MB
BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술
Transcript
00:00:00Este es Paik, una herramienta de línea de comandos que convierte cualquier sitio web en una aplicación de escritorio nativa con un solo
00:00:05comando. Está construida con Rust, por lo que las aplicaciones que produce pueden pesar alrededor de 5 MB, lo cual es minúsculo comparado
00:00:10con Electron, que incluye una copia completa de Chrome en cada aplicación. Incluso puedes inyectar CSS
00:00:15y JavaScript personalizados, tener un icono en la bandeja del sistema y cambiar el estilo de la barra de título, todo sin escribir ni una sola
00:00:20línea de Rust. Pero, ¿por qué usaría esto sobre otras herramientas similares que existen, y por qué Paik
00:00:25me pide tener instalado PNPM o NPM si está construido en Rust? Casi que no quiero saberlo,
00:00:31pero aquí está la suscripción y vamos a descubrirlo. Paik fue creado en 2022 por TW93, un ingeniero de producto
00:00:40de China, quien también creó Mole, la increíblemente popular herramienta de optimización para Mac, que de hecho he estado
00:00:45usando durante un tiempo. Pero la idea detrás de Paik tiene mucho sentido, porque si lo piensas,
00:00:49aplicaciones como YouTube Music, Gmail e Instagram no tienen sus propias aplicaciones nativas oficiales. Solo viven
00:00:55dentro de pestañas del navegador, lo cual está bien si quieres toda esa funcionalidad del navegador, pero si quieres una
00:00:59página web con mejor rendimiento y su propio icono en el dock para separar las cosas, entonces tener una aplicación independiente
00:01:04para ello puede ser muy útil. Aquí es donde entra Paik, que es mucho mejor que Electron,
00:01:09porque está construido sobre Tauri 2, que aprovecha la vista web nativa del sistema, haciendo que las aplicaciones
00:01:14sean más pequeñas, más rápidas y utilicen menos memoria, similar a como funcionan Electro, Bun o ZeroNative de Vercel,
00:01:19de lo cual hablaré un poco más adelante en este video. Pero el código personalizado real escrito por TW93 sobre
00:01:24Tauri 2 consta de unas 1800 líneas de código Rust y maneja cosas como la gestión de ventanas, menús nativos,
00:01:30e inyección de JavaScript. Solo ejecutas un comando y Paik se encarga de todo. De hecho,
00:01:35intentemos usar Paik para convertir mi proyecto de emulación de películas en una aplicación independiente. Así que después de instalar
00:01:40la CLI de Paik, notarás que se parece mucho a Mole si alguna vez has usado Mole, y no tiene
00:01:45muchos indicadores, lo cual en mi opinión es algo bueno. Así que con el servidor de mi proyecto en ejecución, puedo ejecutar Paik con
00:01:50la URL y el nombre que quiero ponerle a la aplicación. Entonces, ahora si presiono enter, obtiene el icono y sigue el
00:01:55proceso de creación de la aplicación, lo que puede tardar entre cinco y 10 minutos. Y una vez hecho esto, crea
00:02:00este archivo DNG, que podemos encontrar aquí con 4.3 megabytes. Y si haces clic en él, aquí está nuestra aplicación,
00:02:05que podríamos instalar arrastrándola a las aplicaciones. Parece que no obtuvo el icono, pero eso
00:02:10está bien. Y ahora, si abrimos nuestra aplicación, podemos ver que funciona inmediatamente con el icono en el dock.
00:02:14Puedo seleccionar un video y todo parece funcionar bien. Y si miramos el monitor de actividad,
00:02:19podemos ver que nuestra aplicación solo usa 61 megabytes de memoria comparado con el navegador ARC, que está usando muchísimo.
00:02:24Y si echamos un vistazo al tamaño de la aplicación, son 55 megabytes frente a una aplicación de Electron como Slack,
00:02:30que tiene 310 megabytes. Pero como viste antes, Paik sí tiene algunas opciones bastante interesantes. Por
00:02:35ejemplo, puedo construir la misma aplicación con la bandera de depuración (debug) para obtener acceso a las herramientas de desarrollo. Y puedo editar
00:02:40la barra de estado para que se sienta más como una aplicación usando la bandera de ocultar barra de título, lo que le da
00:02:46una barra de título sin marco. Pero esta aplicación claramente no fue diseñada para no tener marco. Pero afortunadamente, Paik nos da
00:02:51una opción para solucionar eso sin editar el código fuente de la aplicación. Podría escribir algo de CSS personalizado e inyectarlo
00:02:56en mi aplicación usando la bandera de inyección, lo cual agregó el relleno en la parte superior, pero también significa que hay
00:03:01más espacio en la parte inferior para desplazarse. Podemos usar la bandera de mostrar la bandeja del sistema, revelando un icono en la
00:03:06bandeja del sistema, lo que nos permite mostrar y ocultar nuestra aplicación. E incluso podemos inyectar JavaScript, así como CSS.
00:03:12Pero en este momento, parece que no se pueden editar los elementos del menú que te da Paik por defecto.
00:03:17Y Paik solo funciona con URLs en ejecución. Así que si cierro mi servidor y luego trato de abrir la aplicación,
00:03:23simplemente me muestra una pantalla en blanco. Pero para ser justos, Paik no fue diseñado para aplicaciones locales. De hecho probé
00:03:28una aplicación de YouTube Music, que funciona sorprendentemente bien tras ejecutar un comando. E incluso funciona sin conexión
00:03:33porque así es como funciona el sitio de YouTube Music. Así que lo he estado usando como mi reproductor de música principal,
00:03:38pero básicamente no es la herramienta para aplicaciones de escritorio que tienes, ya que Paik envuelve una URL activa
00:03:42y no empaqueta tu código a menos que uses la opción de usar archivo local, de la cual solo me enteré
00:03:48después de crear este video. Tampoco diría que está muy bien construida. Déjame explicarme. Instalé Paik
00:03:53usando BUN en lugar de PNPM o NPM, pero necesita uno de ellos internamente para configurar la compilación de Tauri.
00:04:00Y mi versión de PNPM era más reciente que la versión que requería, lo que significa que se negó a construir
00:04:05e instalar la aplicación que quería. Así que tuve que usar Claude Code para editar el código fuente de Paik solo para que funcionara.
00:04:11Terminé encontrando un problema para ello, pero todo esto se podría haber resuelto si Paik se distribuyera con un
00:04:15binario compilado, lo cual es una ventaja de usar algo como ElectroBUN o ZeroNative,
00:04:20porque ElectroBUN te da un tiempo de ejecución real de BUN detrás de una vista web, lo que significa que puedes ejecutar lógica de
00:04:25backend y ZeroNative va aún más allá, dándote una shell completa de Zig que puede llamar directamente a librerías de C.
00:04:31Así que Paik es la forma más rápida de envolver un sitio web en vivo, pero si necesitas algo más que eso,
00:04:36es mejor recurrir a otra cosa.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video