0 Compartilhamentos 1550 Views

React Native vs Flutter: qual é o melhor?

Quando publicamos um comparativo entre Flutter e Xamarin, um dos comentários mais frequentes em nossas redes sociais foi que React era melhor. A lembrança espontânea comprova que o framework para desenvolvimento multiplataforma tem um público fiel, capaz de defendê-lo sempre que surge a oportunidade.

Esse mercado competitivo é um reflexo do crescimento astronômico da necessidade de se desenvolver para diferentes ambientes móveis ou até mesmo buscar uma solução que integre o tradicional e cada vez mais vetusto desktop com o onipresente dispositivo móvel. Desenvolver de tal forma que o mesmo produto funcione em múltiplos ambientes é uma meta a ser alcançada, com caminhos que ficam ao gosto do freguês, como tem sido em todos os cantos da programação. Onde houver uma linguagem, um método, haverá outro concorrente de peso igual, com suas vantagens e desvantagens, seus defensores e seus detratores.

Chegamos então ao cenário atual: muitos frameworks multiplataformas disponíveis e as comparações são inevitáveis. Hoje, vamos ver como React Native e Flutter se comportam e se ajustam para diferentes necessidades.

Origens e mercado

O React Native foi criado e apresentado pelo Facebook pela primeira vez em 2015. Ele é um framework Javascript para desenvolvedores móveis interessados em construírem aplicações multiplataforma, que funcionem tanto em iOS, quanto Android, de forma nativa (por isso o nome). A ideia, presente no seu slogan até hoje é “aprenda uma vez, escreva em qualquer lugar”. Desenvolvendo em React Native é possível se obter aplicativos móveis que são, em termos práticos, indistinguíveis daqueles que foram desenvolvidos nativamente em Swift, Objective C ou Java, as linguagens ditas oficiais para os dois ecossistemas. Através de componentes internos e APIs, ele se tornou essencial para desenvolvedores móveis rapidamente.

O Flutter é mais jovem: foi introduzido em maio de 2017 e nasceu de uma iniciativa do Google, dono de uma das duas plataformas móveis líderes de mercado. Seus objetivos são similares: entregar um framework de código aberto que permita que desenvolvedores construam aplicações móveis multiplataforma que se comportem como aplicações nativas de seus ambientes. Porém, ao contrário do React, o Flutter adota uma linguagem própria chamada da Dart.

Sendo uma solução mais madura baseada em uma linguagem de programação muito bem estabelecida, o React Native acabou sendo logo adotado como solução preferencial em gigantes da indústria, como Tesla, Uber, Walmart e muitas outras. Evidentemente, o Google correu atrás do prejuízo e o poder de sua marca ajudou a impulsionar o Flutter para uma posição bastante confortável e o framework também foi adotado em empresas de renome, como Tencent, Square e o The New York Times. O próprio Google confia no seu produto para impulsionar o seu Google Assistant e os aplicativos e serviços que orbitam ao seu redor.

Javascript x Dart

A verdadeira diferença entre os dois frameworks está na linguagem adotada. A disputa entre React Native e Flutter é uma disputa entre Javascript e Dart. Apesar de toda a emergente popularidade do Fluter, o Dart não é muito utilizado ou conhecido fora dos corredores do Google, dada sua relativa idade (surgiu em 2011). Pelo menos, não há como comparar com a hegemonia do rival: em 2018, o veterano Javascript era apontado como a linguagem de programação mais popular e mais utilizada do planeta, segundo o levantamento anual realizado pelo Github. É impossível  competir nesse aspecto.

O primeiro obstáculo, então, para a adoção do Flutter é aprender Dart. Aprender uma nova linguagem é uma prática estimulante e recomendada, mas na correria do dia a dia nem sempre é plausível. Além disso, do ponto de vista de empresas em busca de novos profissionais, a oferta de desenvolvedores com experiência em Javascript é abundante e é possível escolher de uma seleção muito maior de talentos.

Outra dificuldade enfrentada pelo Dart é que o Javascript traz um suporte superior por parte de navegadores, servidores e ambientes móveis, um espaço que ainda precisa ser conquistado.

Performance

Em contrapartida, tecnicamente falando, Flutter é mais rápido que o React Native, a partir do momento em que ele não exige que o Javascript faça uma ponte para interagir com os componentes nativos do sistema. O uso do Dart oferece ao framework do Google uma vantagem que pode ser considerada injusta, já que ele é o dono de um dos parquinhos. A camada extra de abstração do React Native o coloca atrás nessa corrida invisível

Entretanto, para cenários cotidianos, essa diferença de performance é irrelevante. Conforme já havíamos discutido ao comparar Xamarin e Flutter, há fatores muito mais importantes para impactar a velocidade do aplicativo do que o framework adotado.  Práticas aplicadas no código em qualquer um dos caminhos de desenvolvimento e o uso adequado das ferramentas e recursos que os dois frameworks oferecem podem produzir aplicações extremamente velozes em ambos os casos ou afundar um projeto, independente da solução empregada.

Estrutura de código e tempo de desenvolvimento

Se você perguntar para desenvolvedores de React Native eles vão afirmar que o framework oferece uma estrutura de código melhor que a do Flutter. Por exemplo, se for necessário separar estilos no Flutter, o programador deverá criar um estilo individual in-line para cada componente criado, o que não é o melhor dos cenários mas tampouco poderia ser considerado um ponto negativo. Nesses casos, é uma questão bastante opinativa, com argumentos válidos para ambos os lados.

É claro que é preciso sempre se levar em conta que desenvolvedores, independente da empresa ou da tecnologia adotada, estão constantemente trabalhando sobre a pressão de um cronograma que nunca é folgado. Então, o tempo de desenvolvimento é uma fator crítico e escolher um framework que agilize processos pode ser fundamental. Nesse sentido, React Native traz componentes prontos para uso, que aceleram a criação de aplicações multiplataforma. Por outro lado, o Flutter traz um amplo leque de ferramentas para teste e debug.

Qual é o melhor?

Se olharmos friamente, ambas as soluções são tecnologias relativamente novas. E ambas são indispensáveis, a partir do momento que ajudaram a quebrar um paradigma anterior. É preciso entender que tanto React quanto Flutter romperam com a divisão que existia antes, quando era necessário decidir se determinado aplicativo seria desenvolvido para iOS ou para Android ou contratar duas equipes distintas para produzir projetos paralelos. Nos últimos anos, um único time pode desenvolver para os dois ecossistemas, sem prejuízos e sem que o cliente precise decidir em qual plataforma seu produto estará disponível.

Entretanto, a cisão que havia antes, agora virou uma cisão com mais facetas. Não apenas React e Flutter, mas também Xamarin.

A tendência atual do mercado aponta para uma vitória do React Native, extremamente popular entre desenvolvedores. A partir desse framework, é possível ter acesso a muitas bibliotecas, tanto nativas quanto fornecidas por terceiros, essas últimas frutos de uma oferta incentivada justamente por sua popularidade. A partir desse volume de profissionais e soluções, advém também um enorme suporte da comunidade.

Isso não significa uma derrota definitiva para o Flutter e muito menos que ele deva ser menosprezado por iniciantes e veteranos. O Flutter está crescendo e sua adesão também, formando uma comunidade que pode não ser ainda tão grande quanto a de seus rivais, mas que não é por causa disso menos solícita ou integrada.

Carregando...

Você pode se interessar

Por que eu decidi não migrar para o Windows 11 agora
Artigos
95 visualizações
Artigos
95 visualizações

Por que eu decidi não migrar para o Windows 11 agora

Carlos L. A. da Silva - 19 de outubro de 2021

O novo sistema operacional da Microsoft está entre nós, mas talvez não seja uma boa ideia pular de cabeça.

Enumerando e analisando mais de 40 implementações de JavaScript (que não são V8)
Artigos
227 visualizações
Artigos
227 visualizações

Enumerando e analisando mais de 40 implementações de JavaScript (que não são V8)

Carlos L. A. da Silva - 6 de outubro de 2021

V8 é o interpretador JavaScript, também chamado de máquina virtual Javascript, desenvolvido pela Google e utilizado em seu navegador Google Chrome. Com o peso de seus criadores e a quase onipresença do navegador, foi apenas uma questão de tempo para essa implementação do JavaScritp se tornar dominante no mercado. Entretanto, um bom desenvolvedor sabe que […]

Sir Clive Sinclair, o homem adiantado no tempo
Artigos
409 visualizações
Artigos
409 visualizações

Sir Clive Sinclair, o homem adiantado no tempo

Carlos L. A. da Silva - 18 de setembro de 2021

O inglês Clive Marles Sinclair nasceu de uma família de engenheiros. Seu avô foi engenheiro, assim como o seu pai. Com um talento natural pela Matemática e um forte interesse em eletrônica, ele se tornaria uma página importante da popularização da computação em diversas partes do mundo, construindo um legado que se perpetuará por anos […]

Deixe um Comentário

Your email address will not be published.

Mais publicações

A cibersegurança por trás das vacinas
Artigos
507 visualizações
507 visualizações

A cibersegurança por trás das vacinas

Carlos L. A. da Silva - 7 de setembro de 2021
Top 25 comandos do Git
Artigos
646 visualizações
646 visualizações

Top 25 comandos do Git

Carlos L. A. da Silva - 28 de agosto de 2021
Dez anos de Kotlin: origens e futuro
Artigos
699 visualizações
699 visualizações

Dez anos de Kotlin: origens e futuro

Carlos L. A. da Silva - 20 de agosto de 2021