Flutter vs React native
Afinal, qual framework é melhor?
É de se esperar que ano após ano o ecossistema mobile evolua e com essa evolução tem sempre uma pergunta que todo DEV faz: 'Qual é melhor Flutter ou React Native?’.
Neste artigo vamos destrinchar sobre o Flutter e sobre o React Native (RN) e mostrar porque o Flutter ganhou o mercado e quais problemas fazem o RN ser substituído.

Ecossistema mobile
O mundo mobile é repleto de Frameworks, sejam eles nativos, híbridos ou cross-platform, todos buscam trazer uma coisa em comum, uma ferramenta para que possam ser criados apps e sistemas que venham solucionar problemas que existem no nosso dia a dia, seja na leitura de um artigo, consultar saldo em um banco, realizar algum pagamento via app.
Se não fosse por esses frameworks e linguagens de programação (e principalmente as equipes por trás de tudo isso), seria impossível chegar nos resultados que temos hoje com milhares e milhares de apps sendo desenvolvidos ao redor do mundo.
Frameworks e recomendações
Afinal o que é um Framework?
Framework nada mais é que um conjunto de técnicas, ferramentas ou conceitos pré-definidos usados para resolver um problema de um projeto ou domínio específico. É, basicamente, uma estrutura de trabalho que atua com funções pré-estabelecidas que se adaptam à situação e à organização em questão.
No caso, Flutter e React Native ajudam no desenvolvimento de apps, permitindo criar soluções através dessas tecnologias.

React Native
O React Native é um framework mobile derivado do React, um framework front-end desenvolvido e popularizado pelo Facebook. Como em seus concorrentes, no React Native é possível produzir um único código, em JavaScript, para Android e iOS.
Desde sua criação pelo Facebook em torno de 2015, o React Native emergiu como o framework de desenvolvimento de aplicativos multiplataforma mais proeminente. No entanto, ao mergulhar mais fundo, surge a questão: o que realmente torna essa plataforma tão popular?
Contrariamente à imagem admirável que muitos têm do React Native, sua versatilidade, apesar de ser apontada como uma vantagem, pode ser também uma fonte de desafios. Desenvolvedores frequentemente se deparam com obstáculos ao tentar criar aplicativos para smartphones, utilizando React e JavaScript, enfrentando dificuldades em integrar diversas funcionalidades nativas da plataforma.
A alegada confiabilidade do código aberto do React Native é questionável quando confrontada com experiências reais. Embora se vanglorie de oferecer suporte para interfaces do usuário globalmente, a realidade pode ser menos promissora. Muitos relatam que, na prática, as respostas nem sempre são rápidas nem eficazes.
A chamada "recarga rápida" que o React Native promete, muitas vezes, se traduz em um processo lento e frustrante para os desenvolvedores, que enfrentam dificuldades na implementação de funcionalidades específicas da plataforma. Além disso, a construção direta de componentes nativos, embora possa soar atraente, muitas vezes se torna um quebra-cabeça complexo para os desenvolvedores.
Apesar da suposta simplicidade dos inúmeros componentes plug-and-play, a experiência dos desenvolvedores pode ser muito menos suave do que se espera. Muitos relatam complicações inesperadas ao tentar integrar esses componentes em seus projetos, resultando em horas extras de solução de problemas e, por vezes, em soluções inadequadas.
Concluindo, embora o React Native seja louvado como o líder no desenvolvimento de aplicativos multiplataforma, é crucial olhar além da superfície brilhante.
Os desafios mencionados podem tornar a experiência do desenvolvedor mais complicada do que o marketing sugere. É prudente avaliar cuidadosamente se os benefícios falados realmente compensam os possíveis contratempos que o React Native traz consigo.
Flutter
Foi criado pela Google em 2017 e é compatível com várias plataformas, permitindo que você utilize em qualquer dispositivo pessoal ou o integre com seus aplicativos online existentes.
O Flutter é considerado uma das principais plataformas de código aberto disponíveis hoje, em grande parte devido à influência da Google.
Possui numerosos benefícios incluindo um ambiente de desenvolvimento completo e a capacidade de ser utilizado para desenvolver apps para diversas plataformas, até mesmo relógios, TV’s e carros, além de ser código aberto e gratuito.
É um candidato que supera a proeminência do React devido ao seu processamento rápido e outras vantagens. Além de melhorar e diminuir os custos de desenvolvimento personalizado de aplicativos, permitindo entregar no momento certo ao mercado.
Se você estiver pensando em contratar desenvolvedores Flutter e permanecer na tendência, este é um bom momento.
Componentes declarativos
Ambos o Flutter e o React Native fazem uso da abordagem declarativa na construção de interfaces de usuário.
- Flutter: Utiliza a abordagem declarativa por meio de sua "árvore de widgets". Cada componente visual em Flutter é um widget, e a interface do usuário é construída de forma declarativa, descrevendo como a interface deve parecer em diferentes estados. Isso é facilitado pela linguagem Dart, onde você cria widgets para representar os elementos da interface e os organiza em uma hierarquia.
- React Native: Segue uma abordagem declarativa com a linguagem JSX (JavaScript XML). JSX permite que os desenvolvedores descrevam a interface do usuário de maneira mais intuitiva, combinando elementos JavaScript com uma sintaxe semelhante a XML. Os desenvolvedores declaram a estrutura e o estilo dos componentes, e o React Native cuida da manipulação do DOM (Document Object Model) para refletir essas declarações na interface do usuário.

Principais diferenças
1. Desempenho Nativo:
- Flutter compila para código nativo, garantindo desempenho próximo ao de aplicativos nativos.
- React Native utiliza bridge para comunicação, podendo apresentar alguma latência.
2. Linguagem de Programação:
- Flutter utiliza Dart, oferecendo uma sintaxe limpa e coesa.
- React Native é baseado em JavaScript e utiliza JSX para a descrição da interface.
3. Widgets Personalizáveis:
- Flutter fornece uma rica biblioteca de widgets altamente personalizáveis, permitindo controle total sobre o visual.
- React Native utiliza componentes nativos, podendo ser mais desafiador para personalização extensiva.
4. Desenvolvimento Rápido:
- Flutter destaca-se com o Hot Reload, permitindo atualizações instantâneas durante o desenvolvimento.
- React Native oferece Fast Refresh, mas alguns desenvolvedores preferem o Hot Reload do Flutter.
5. Integração Simplificada:
- Flutter facilita a integração de códigos nativos e oferece widgets para uma personalização eficiente.
- React Native pode exigir módulos nativos para funcionalidades específicas, demandando mais conhecimento das plataformas.
6. Crescimento na Popularidade Empresarial:
- Flutter está ganhando destaque em empresas como Alibaba, Reflectly, e Tencent.
- React Native é amplamente adotado por empresas como Facebook, Instagram, Airbnb e Uber Eats.
7. Facilidade para Iniciantes:
- Flutter é considerado mais amigável para iniciantes, oferecendo uma abordagem coesa e estrutura de widget.
- React Native proporciona uma transição suave para desenvolvedores familiarizados com JavaScript.
De forma resumida, Flutter aqui tem a vantagem sobre o React native.

Construção de layout
Levando para o lado da construção das 'Telas’ , ambos possuem formas distintas de trabalhar com isso, enquanto um utiliza uma abordagem mais semelhante ao que seria uma Game Engine para desenhar os layouts e garantir um bom desempenho. O outro faz uso do que o desenvolvimento Web têm, trazendo conceitos que não se aplicam muito bem ao mundo mobile.
Eis um exemplo que temos na própria documentação do Flutter de como funciona a criação de componentes:


É evidente qual é o mais simples: Só de olhar para o código e ver a quantidade necessária de código escrito no React em comparação ao Flutter. E esse foi apenas um exemplo simples, imagine em apps mais complexos!
Flutter não vai morrer nem tão cedo
Flutter tem sido um dos frameworks mais buscados e procurados para o desenvolvimento de apps que sirvam para diversas plataformas.
Podemos concluir que não: O Flutter não está morrendo como o meme que criaram por aí e sim vem se superando cada vez mais no mercado!
As informações contidas neste artigo não refletem a opinião do Jornal Folha de Pernambuco e são de inteira responsabilidade de seus criadores.



