Hoje Mozilla e Filamento estão lançando Uniffi para React Nativeuma nova ferramenta que estamos usando para construir módulos React Native Turbo em Rust, sob uma licença de código aberto. Isso permite que milhões de desenvolvedores escrevam em plataformas cruzadas Reagir nativo aplicativos para usar Ferrugem – uma linguagem de programação moderna conhecida por seus benefícios de segurança e desempenho para criar implementações únicas da lógica central de seu aplicativo para funcionar perfeitamente em iOS e Android.
Esta é uma grande vitória para nós e para Filamento que co-desenvolveu a biblioteca com a Mozilla e James Hugmano desenvolvedor líder. Achamos que será incrível para muitos outros desenvolvedores também. Menos código é bom. A segurança da memória é boa. O desempenho é bom. Temos todos os três, além da alegria de usar um idioma que amamos em mais lugares.
Para quem está familiarizado com React Native, é uma ótima estrutura para criar aplicativos multiplataforma, mas tem seus desafios. Os aplicativos React Native dependem de um único thread JavaScript, o que pode tornar as coisas mais lentas ao lidar com tarefas complexas. Os desenvolvedores tradicionalmente contornam isso escrevendo código duas vezes – uma para iOS e outra para Android – ou usando C++, o que pode ser difícil de gerenciar. Uniffi for React Native oferece uma solução melhor, permitindo que os desenvolvedores transfiram tarefas pesadas para o Rust, que agora é fácil de integrar com o React Native. Como resultado, você tem aplicativos mais rápidos e suaves e um processo de desenvolvimento simplificado.
Como funciona o Uniffi para React Native
Unifii for React Native é um gerador de ligações uniFFI para usar Rust do React Native via Turbo Modules. Ele nos permite trabalhar em um nível de abstração alto o suficiente para manter o foco nas necessidades de nossos aplicativos, em vez de nos perdermos nos detalhes técnicos sangrentos do desenvolvimento nativo de plataforma cruzada sob medida. Ele fornece ferramentas para gerar:
- Typescript e JSI C++ para chamar Rust do Typescript e vice-versa
- Um Turbo-Module que instala as ligações em uma biblioteca React Native em execução.
Estamos entusiasmados com a continuação deste trabalho. Em 2020, começamos com Uniffi como um dia moderno ‘escreva uma vez; execute o conjunto de ferramentas em qualquer lugar para Rust. A Uniffi percorreu um longo caminho desde que desenvolvemos a tecnologia como uma espécie de hack para nos fornecer uma única implementação do núcleo do Firefox Sync (em Rust) que poderíamos então implantar em nossos aplicativos Android e iOS! Desde então, a Mozilla tem usado unificadores para implantar Rust com sucesso em produtos móveis e desktop usados por centenas de milhões de usuários. Este código Rust executa subsistemas importantes, como marcadores e sincronização de histórico, Firefox Suggest, telemetria e experimentação. Além do Mozilla, o Uniffi é usado no Android (em AOSP), alto perfil segurança produtos e alguns complexo bibliotecas familiar à comunidade.
Atualmente o projeto Uniffi for React Native é um lançamento antecipado. Não temos uma página de destino legal ou exemplos no repositório (em breve!), mas um contribuidor de código aberto Johannes Marbach já foi patrocinado por Sem nome usar Uniffi para React Native para criar uma biblioteca React Native para o Matrix SDK .
Precisa de uma ideia de como você pode experimentar? Tenho dois usos com os quais estamos muito entusiasmados:
1) Use Rust para descarregar código computacionalmente pesado para um subsistema multithread/com memória segura para escapar de gargalos de desempenho JS de thread único no React Native. Se você sabe, você sabe.
2) Aproveite a incrível biblioteca de Caixas de ferrugem em seu aplicativo React Native. Um dos desenvolvedores do Filament mostrou recentemente o quão poderoso isso é. Com um conhecimento rudimentar de Rust, eles conseguiram encontrar uma biblioteca de blurhashing rápida em crates.io para substituir uma implementação lenta de Typescript e colocá-la em execução no mesmo dia. Esperamos poder realmente melhorar ainda mais as ferramentas para tornar esse tipo de otimização o mais fácil possível.
Uniffi representa um avanço no desenvolvimento multiplataforma, combinando o poder do Rust com a flexibilidade do React Native para desbloquear novas possibilidades para desenvolvedores de aplicativos.
Estamos entusiasmados em que a comunidade explore o que é possível. Por favor confira a biblioteca no Github e entre na conversa no Matrix.
Divulgação: além desta colaboração, Mozilla empreendimentos é um investidor na Filament.
Tecnólogo na Mozilla Innovations
Mais artigos de Mark Mayo…
CEO na Filamento
Mais artigos de Tony Haile…

