Zero Native: O Assassino do Electron da Vercel que Ninguém Esperava
BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00Este é o Xero Native, um construtor de apps nativos baseado em Zig da Vercel que pode usar a web view do sistema
00:00:05ou agrupar todo o Chromium como o Electron para apps de desktop ou mobile, fornecendo binários minúsculos
00:00:12e reconstruções instantâneas para desenvolvimento.
00:00:14Mas será que o fato de ter que saber um pouco de Zig para usá-lo bem afastará os desenvolvedores JavaScript?
00:00:18Inscreva-se e vamos descobrir.
00:00:20Embora a equipe do BUN esteja migrando do Zig para o Rust, ainda é uma linguagem muito legal,
00:00:28sem borrow checker, sem lifetimes e que pode chamar C diretamente, ou seja, qualquer biblioteca C está a um import de distância
00:00:35sem precisar de nenhum código de ligação.
00:00:37E é legível o suficiente para devs JavaScript aprenderem.
00:00:39Na verdade, se quiser me ver aprendendo a programar em Zig do zero, me avise nos comentários.
00:00:44Acho que seria algo bem divertido de fazer.
00:00:46Mas, essencialmente, o Xero Native é uma camada fina em Zig que hospeda uma web view renderizando um front-end
00:00:51que usa pontes JSON para que o JavaScript na web view se comunique com a camada nativa Zig e vice-versa,
00:00:58que é como ele consegue acessar APIs de nível de sistema operacional.
00:01:01E se você acha que isso soa como Electrobun, bem, é quase isso.
00:01:04Mas com uma grande diferença, que discutiremos mais adiante no vídeo.
00:01:07Mas por enquanto, vamos passar por uma demonstração bem simples.
00:01:10Para começar, primeiro você precisa ter o Zig instalado, o que fiz com o Miez.
00:01:13Mas você também pode usar o Brew, e então instalar o Xero Native.
00:01:16Depois de fazer essas duas coisas, você pode rodar o comando “xero-native init” para criar um novo projeto.
00:01:22Este é o nome do meu projeto, mas pode ser o que você quiser.
00:01:25Vou usar a flag frontend com React, o que vai instalar um projeto Vite React.
00:01:30Mas também poderia ser Svelte, Vue, Next ou até apenas Vite.
00:01:34Então, se eu der enter, o Xero Native adicionará alguns diretórios.
00:01:37Se entrarmos no projeto demo, veremos o arquivo “app.zon” (Zig Object Notation), que explicarei depois.
00:01:43Temos ativos para coisas como ícones e outros recursos estáticos, o arquivo build Xig,
00:01:48que serve para o grafo de build do Zig, a ponte JS, o motor web e o diretório frontend, que contém nosso código de front-end.
00:01:54Se entrarmos nele, veremos arquivos que estamos acostumados a ver como desenvolvedores JavaScript.
00:01:58Neste ponto, se rodarmos “zig build run”, isso instalará as dependências e abrirá o app em uma nova janela.
00:02:04Nota: se quiser instalar o Xero Native em um projeto JavaScript existente,
00:02:08recomendo usar o Vite, que é uma versão mínima, e então mudar o conteúdo do diretório frontend para o código do seu app.
00:02:15O Xero Native também tem um servidor de dev muito legal que gerencia todo o ciclo de vida do front-end.
00:02:19Ao rodar “zig build dev”, o binário é compilado e o servidor de dev do Xero Native é iniciado.
00:02:24Se eu editar algum código, vemos nosso app nativo atualizar em tempo real.
00:02:28Posso até rodar “zig build package”, que construirá o app nativo para que eu possa distribuí-lo.
00:02:33E podemos vê-lo aqui dentro do diretório de pacotes do Zig com apenas 2,9 megabytes, o que é muito pequeno.
00:02:39E algumas pessoas conseguiram deixá-lo com menos de 1 megabyte.
00:02:43Mas e se eu quisesse mudar o ícone do app, o nome ou o motor web?
00:02:46Bem, é aqui que entra o arquivo “app.zon”, onde posso mudar o nome do ícone, do projeto e até o motor onde o app roda e o tamanho da janela.
00:02:55E essa é uma visão geral bem rápida do Xero Native.
00:02:58Há muitas coisas que não tive tempo de abordar, como ícones na bandeja do sistema, assinatura de código e apps embutidos para iOS e Android.
00:03:05Na verdade, preciso passar mais tempo com ele, o que pode render outro vídeo.
00:03:09Mas por melhor que o Xero Native seja, como ele se compara ao Electrobun, que também cria apps pequenos e rápidos usando a web view nativa?
00:03:17Bem, com o Electrobun, o próprio Bun é o ambiente de execução, pois você precisa escrever TypeScript para o processo principal.
00:03:24Embora um binário Zig inicie o app, o código roda em um web worker do Bun, que se comunica com APIs nativas via FFI do Bun, passando por camadas C++ e Objective-C.
00:03:37Já com o Xero Native, você só precisa do binário Zig; sem JavaScript, sem Bun, apenas Zig se comunicando com as APIs do SO e bibliotecas C via uma simples importação C.
00:03:50Isso resulta em ter a camada nativa mais fina possível em comparação ao Electrobun.
00:03:54Mas, por enquanto, você talvez precise escrever um pouco de Zig para obter tudo o que deseja do Xero Native ou, pelo menos, alterar algumas configurações em um arquivo Zig Object Notation.
00:04:03Além disso, o Xero Native não é tão rico em recursos quanto o Electrobun, que me permitiu alterar o estilo da barra de título e até adicionar alguns itens de menu personalizados.
00:04:11E essas coisas, infelizmente, não são suportadas no momento no arquivo “app.zon”.
00:04:15Também tive que abrir um chamado porque empacotar no MacOS não funcionou de primeira, mas pode ter sido falta de habilidade da minha parte.
00:04:22Mesmo assim, tenho certeza de que a equipe está trabalhando duro para adicionar mais recursos, corrigir esses problemas e trazer suporte para mobile.
00:04:29E se você não puder esperar por esses recursos, bem, é código aberto.
00:04:32Então é só dar o código para o Claude, dizer o que você quer e tenho certeza de que ele pode adicionar esses recursos para você, certo?
Community Posts
No posts yet. Be the first to write about this video!
Write about this video