Este artigo foi escrito em colaboração com Vitalii Topoliuk, engenheiro de software da Meta, e Sean Keegan, consultor de desenvolvimento na Meta.
Hoje entrevistamos Vitalii Topoliuk, engenheiro de software da equipe do app Messenger para desktop na Meta. A equipe de Vitalli trabalha na versão para desktop do Messenger, que permite enviar textos, fazer chamadas e manter contato diretamente do computador.
Meu nome é Vitalii Topoliuk, e sou engenheiro de software da equipe do app Messenger para desktop. Temos desenvolvido versões para Windows e macOS do app Messenger há três anos, e começamos a usar o React Native há dois.
Nosso app conta com a tecnologia da estrutura do React Native.
No Messenger para desktop e projetos derivados: Work Chat para desktop, Workrooms para desktop.
Nosso app foi criado com base na estrutura Electron, o que nos deu um bom impulso inicial. Infelizmente, logo esgotamos a capacidade do Electron e tivemos que investir muito para conseguir atender aos requisitos de desempenho, confiabilidade e eficiência (PRE, na sigla em inglês). Além disso, os recursos do nosso app eram limitados no Electron.
Ao mudarmos para o React Native, solucionamos diversos problemas de PRE e melhoramos significativamente a experiência dos desenvolvedores. Com o React Native, conseguimos reutilizar 80% da nossa base de código e melhorar muitas métricas de PRE. Estas são algumas das melhorias no app que conseguimos simplesmente mudando para o React Native, sem nenhum investimento adicional em PRE, em comparação com o app estabelecido no Electron, no qual trabalhamos em melhorias de PRE durante três meses:
Taxa de falhas: -60%
Taxa de sucesso em inicialização a frio: 97% (88% no Electron)
Latência de inicialização a frio P90: -50%
Tamanho binário: -80%
Taxa de falhas: +59%
Taxa de sucesso em inicialização a frio: 99% (95% no Electron)
Latência de inicialização a frio P90: -60%
Tamanho binário: -70%
Na Meta, temos a oportunidade de mostrar à comunidade que o React Native pode ser usado para criar aplicativos entre plataformas para desktop.
Espero que o React Native substitua o Electron no futuro. Porém, para isso funcionar, a estrutura deve ser melhorada para incluir mais ferramentas de produção de ponta a ponta. Por exemplo, além de ser um shell para apps baseados na web, o Electron também contém ferramentas para criar instaladores, atualizadores automáticos, relatórios de falhas etc.
Agradecemos ao Vitalii por ter reservado um tempo para responder às nossas perguntas. Foi incrível saber como o React está sendo usado para melhorar grandes aplicativos e como estamos aprendendo com as nossas criações aqui na Meta e retribuindo ao levar esse conhecimento de volta para a comunidade do React. Esperamos que a entrevista tenha sido interessante e que tenha fornecido insights sobre onde e como o React está sendo usado na Meta. Confira entrevistas com outros engenheiros da Meta e saiba o que eles pensam sobre este tópico.
O React está entre os projetos de código aberto mais populares da atualidade. Ele tem sido considerado uma das estruturas "mais amadas" da web nos últimos anos. Para a Meta, o React é uma biblioteca excelente que ajuda os desenvolvedores a criar interfaces do usuário com facilidade e em escala. Usado por milhões de desenvolvedores no mundo todo, desde sites simples até aplicativos empresariais, o React é uma biblioteca de código aberto com lugar para todos.
Esta publicação é parte da nossa série Conheça os Desenvolvedores. Nela, engenheiros da Meta que usam o React compartilham as suas experiências e falam sobre os produtos incríveis que estão criando. Confira entrevistas com outros engenheiros e saiba o que eles pensam sobre este tópico.
Para saber mais sobre o Meta Open Source, acesse o nosso site, inscreva-se no canal do YouTube ou siga o nosso perfil no Twitter, no Facebook e no LinkedIn.