Transcript
00:00:00Este é o Paik, uma ferramenta de linha de comando que transforma qualquer site em um aplicativo de desktop nativo com um único
00:00:05comando. Ele é feito em Rust, então os apps que produz podem ter cerca de 5 MB, o que é minúsculo comparado
00:00:10ao Electron, que empacota uma cópia inteira do Chrome em cada app. Você pode até injetar CSS e
00:00:15JavaScript personalizados, ter um ícone na bandeja e alterar o estilo da barra de título, tudo sem escrever uma única
00:00:20linha de Rust. Mas por que eu usaria isso em vez de outras ferramentas parecidas, e por que o Paik
00:00:25exige que eu tenha PNPM ou NPM instalado se ele é feito em Rust? Eu meio que não quero saber,
00:00:31mas inscreva-se e vamos descobrir. O Paik foi criado em 2022 por TW93, um engenheiro de produto
00:00:40da China, que também criou o Mole, a ferramenta de otimização de Mac incrivelmente popular, que eu já
00:00:45uso há um tempo. Mas a ideia do Paik faz muito sentido, porque se você parar para pensar,
00:00:49apps como YouTube Music, Gmail e Instagram não possuem seus próprios aplicativos nativos oficiais. Eles vivem apenas
00:00:55dentro de abas do navegador, o que é ótimo se você quer toda aquela funcionalidade, mas se você quer um site
00:00:59mais performático com seu próprio ícone no dock para fins de organização, ter um aplicativo
00:01:04independente pode ser muito útil. É aqui que entra o Paik, que é muito melhor que o Electron,
00:01:09porque ele é construído sobre o Tauri 2, que aproveita o webview nativo do sistema, tornando os apps
00:01:14menores, mais rápidos e que consomem menos memória, de forma similar ao que o Electro, Bun ou o ZeroNative da Vercel fazem,
00:01:19sobre os quais falarei um pouco mais adiante neste vídeo. Mas o código personalizado escrito por TW93 sobre o
00:01:24Tauri 2 tem cerca de 1800 linhas de Rust e gerencia coisas como gerenciamento de janelas, menus nativos,
00:01:30e injeção de JavaScript. Você só precisa executar um comando e o Paik cuida de tudo. Na verdade,
00:01:35vamos tentar usar o Paik para transformar meu projeto de emulação de filme em um aplicativo independente. Então, após instalar
00:01:40o CLI do Paik, você notará que ele é bem parecido com o Mole, se você já usou, e ele não tem
00:01:45muitas flags, o que é uma coisa boa na minha opinião. Então, com o servidor do meu projeto rodando, posso executar o Paik com
00:01:50a URL e o nome que quero dar ao app. Então, agora se eu der enter, ele busca o ícone e passa pelo
00:01:55processo de criação do app, o que pode levar de cinco a 10 minutos. E uma vez pronto, ele cria
00:02:00este DMG, que encontramos aqui com 4,3 megabytes. E se você clicar nele, aqui está nosso app,
00:02:05que podemos instalar arrastando para a pasta de aplicativos. Parece que ele não pegou o ícone, mas isso
00:02:10não importa. E agora se abrirmos nosso app, vemos que ele funciona imediatamente com o ícone no dock.
00:02:14Posso selecionar um vídeo e tudo parece funcionar bem. E se olharmos no Monitor de Atividade,
00:02:19podemos ver que nosso app usa apenas 61 megabytes de memória comparado ao navegador ARC, que usa muito mais.
00:02:24E se dermos uma olhada no tamanho do aplicativo, ele tem 55 megabytes comparado a um app Electron como o Slack,
00:02:30que tem 310 megabytes. Mas como você viu antes, o Paik tem algumas opções bem interessantes. Por
00:02:35exemplo, posso criar o mesmo app com a flag debug para ter acesso às ferramentas de desenvolvedor. E posso editar
00:02:40a barra de status para parecer mais com um app nativo usando a flag hide title bar, que dá a ele uma
00:02:46barra de título sem bordas. Mas este app claramente não foi projetado para ser sem bordas. Mas felizmente, o Paik nos dá
00:02:51uma opção para corrigir isso sem editar o código-fonte do app. Eu poderia escrever um CSS personalizado e injetá-lo
00:02:56no meu app usando a flag inject, que adicionou espaçamento no topo, mas também significa que há
00:03:01mais espaço na parte inferior para rolar. Podemos usar a flag show system tray, revelando um ícone na
00:03:06bandeja do sistema, permitindo mostrar e ocultar nosso app. E podemos até injetar JavaScript, assim como CSS.
00:03:12Mas, no momento, parece que você não pode editar os itens de menu que são fornecidos por padrão pelo
00:03:17Paik. E o Paik só funciona com URLs em execução. Então, se eu fechar meu servidor e tentar abrir o aplicativo,
00:03:23ele apenas me mostra uma tela em branco. Mas, para ser justo, o Paik não foi projetado para apps locais. Eu testei
00:03:28um aplicativo do YouTube Music, que funciona surpreendentemente bem apenas rodando um comando. E ele até funciona offline,
00:03:33porque é assim que o site do YouTube Music funciona. Então, tenho usado ele como meu reprodutor de música principal,
00:03:38mas basicamente não é a ferramenta para aplicativos de desktop que você criou, já que o Paik envolve uma URL
00:03:42ao vivo e não empacota seu código, a menos que você use a opção de arquivo local, que só descobri
00:03:48depois de criar este vídeo. Eu também não diria que ele é muito bem construído. Ouça só. Instalei o Paik
00:03:53usando BUN em vez de PNPM ou NPM, mas ele precisa de um deles internamente para configurar a compilação do Tauri.
00:04:00E meu PNPM era mais novo do que a versão exigida, o que significa que ele se recusou a compilar
00:04:05e instalar o app que eu queria. Então, tive que usar o Claude Code para editar o código-fonte do Paik apenas para fazê-lo funcionar.
00:04:11Acabei abrindo um issue sobre isso, mas tudo poderia ter sido resolvido se o Paik viesse com um
00:04:15binário compilado, que é uma vantagem de usar algo como ElectroBUN ou ZeroNative,
00:04:20porque o ElectroBUN te dá um runtime real de BUN por trás de um webview, o que significa que você pode rodar lógica
00:04:25de backend, e o ZeroNative vai ainda mais longe, dando a você um shell Zig completo que pode chamar bibliotecas C diretamente.
00:04:31Portanto, o Paik é a maneira mais rápida de envolver um site ao vivo, mas se você precisar de algo além disso,
00:04:36é melhor recorrer a outra ferramenta.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video