Pake: Esta ferramenta CLI cria aplicativos desktop de 5MB

BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술

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.

Key Takeaway

O Paik é uma ferramenta CLI construída em Rust que utiliza o webview nativo do sistema via Tauri 2 para transformar URLs ao vivo em aplicativos desktop leves e performáticos, economizando recursos em comparação a soluções baseadas em Electron.

Highlights

  • O Paik utiliza o Tauri 2 para converter sites em aplicativos desktop com tamanhos próximos a 5 MB.

  • A ferramenta oferece flags como --debug para ferramentas de desenvolvedor, --inject para adicionar CSS/JS e --show-system-tray para ícones na bandeja.

  • Aplicativos gerados pelo Paik consomem significativamente menos memória RAM, com registros de 61 MB contra valores muito superiores em navegadores convencionais.

  • O Paik exige a instalação prévia de gerenciadores como PNPM ou NPM para configurar a compilação do Tauri.

  • A ferramenta é restrita a URLs ativas, não empacotando o código-fonte por padrão, o que inviabiliza o uso offline para projetos locais sem configurações adicionais.

Timeline

Conceito e Vantagens Técnicas

  • O Paik transforma qualquer site em um aplicativo desktop nativo através de um comando único.
  • A construção sobre o Tauri 2 permite que os aplicativos resultantes sejam consideravelmente menores e mais rápidos que os baseados em Electron.
  • O projeto gerencia janelas, menus nativos e injeção de scripts com cerca de 1800 linhas de código Rust.

O Paik foi criado em 2022 por TW93 para oferecer uma alternativa eficiente a aplicativos baseados em web que carecem de versões desktop nativas. Ao evitar o empacotamento de uma cópia do Chrome, a ferramenta reduz drasticamente o tamanho final do executável. O uso do webview nativo do sistema operacional otimiza o consumo de memória, proporcionando uma experiência de organização no dock mais próxima de um software instalado.

Utilização Prática e Customização

  • A criação de um aplicativo leva entre cinco a 10 minutos para gerar um arquivo DMG.
  • Flags específicas permitem injetar CSS e JavaScript personalizados para ajustar o estilo da interface ou a barra de título.
  • A flag --show-system-tray adiciona um ícone na bandeja do sistema para controle rápido do aplicativo.

O processo de criação é simplificado, exigindo apenas a URL e o nome desejado. Em testes de performance, um aplicativo gerado consumiu apenas 61 MB de RAM, contrastando com o alto consumo de navegadores como o ARC. Opções de customização permitem que o usuário contorne limitações de design, como bordas não planejadas, através da injeção de código CSS ou JS sem a necessidade de editar o código-fonte original.

Limitações e Alternativas

  • O Paik depende de uma URL ao vivo, resultando em telas em branco caso o servidor esteja offline.
  • A ausência de binários pré-compilados pode gerar conflitos de versão com gerenciadores de pacotes como PNPM ou NPM.
  • Ferramentas como ElectroBUN ou ZeroNative são mais indicadas para necessidades que exigem lógica de backend ou maior complexidade técnica.

Embora eficaz para envolver sites, o Paik apresenta limitações operacionais, como a falta de suporte nativo para aplicações locais e dependências de ambiente rígidas. A necessidade de configurar o ambiente de compilação do Tauri pode dificultar o uso imediato. Quando o projeto exige funcionalidades avançadas, como execução de lógica backend ou uso de bibliotecas de baixo nível, alternativas que oferecem runtimes dedicados ou acesso direto a C tornam-se mais viáveis.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video