React Native ou Flutter: Qual é a melhor tecnologia para desenvolvimento mobile?

React Native ou Flutter: Qual é a melhor tecnologia para desenvolvimento mobile?

Hoje em dia no mundo da tecnologia de desenvolvimento mobile, quando falamos de desenvolvimento de aplicações multiplataformas (IOS e ANDROID) as tecnologias que logo vem a nossa mente são React Native e o Flutter. Consequentemente, por serem duas tecnologias diferentes que possuem o mesmo objetivo (desenvolvimento de aplicações mobile híbridas), muitos debates giram em torno sobre qual realmente é melhor.

E qual é a melhor no fim das contas?

Nesta publicação fugiremos do tão falado e clássico “depende” utilizado por grande parte dos engenheiros seniores e vamos destrinchar pontos críticos para chegarmos a uma conclusão sobre qual é a melhor (hoje)!

O que faz uma tecnologia ser melhor?

Antes de começarmos a debater sobre qual das duas tecnologias é a melhor, um aspecto muito importante que deve ser abordado antes é: O que torna uma tecnologia melhor que a outra?

É claro que isso é um assunto que rende muitos debates e muitas colocações sobre o tema especifico, mas é de conhecimento mutuo que normalmente algo considerado melhor no desenvolvimento de software, é que irá resolver nosso problema de maneira mais direta, de forma satisfatória, rápida, prática e que não irá nos causar problemas futuros.

Tendo isso em mente, analisaremos os principais fatores que determinam que uma pessoa ou empresa opte pelo uso do Flutter, ou React Native como melhor tecnologia.

Contratação / Oportunidades de trabalho

Contratar desenvolvedores hoje é notoriamente difícil. Os salários de tecnologia estão em alta e a oferta é limitada. Encontrar desenvolvedores qualificados realmente não é um trabalho fácil.

Os desenvolvedores de Flutter são desenvolvedores apaixonados pela tecnologia e de alta qualidade. Porém, uma realidade atual existente é de que eles não são em tão grande quantidade no momento, consequentemente o número de pessoas que possuem conhecimento em Dart é baixo também. Então, isso dificulta na busca de profissionais capacitados ou na busca de oportunidades. Mas, vale ressaltar, que talvez em um futuro não muito distante, isso possa mudar graças ao rápido crescimento que a comunidade do Flutter adquirindo.

Os desenvolvedores de React Native, por outro lado, possuem já um grande conjunto de recursos e oportunidades, por conta de sua vasta comunidade JavaScript. O JavaScript (e sua variante popular, TypeScript) presente no React Native, é de longe a linguagem de programação mais popular do mundo e continua crescendo rapidamente cada vez mais. O React.js, que alimenta o React Native, é sem dúvida um dos maiores (se não o maior) framework de codificação do mundo. Ainda é difícil contratar, mas o grupo de desenvolvedores para escolher é muito maior do que o do Flutter.

Contratar um desenvolvedor React e transformá-lo em um desenvolvedor React Native, é no mínimo produtivo, fácil e rápido graças a linguagem JavaScript utilizada em ambos, a mesma que constrói pontes para outros conhecimentos como, por exemplo, criar APIs utilizando o Node e muito mais. Isso traz grande economia no quesito empresarial, principalmente quando observamos, que internamente na empresa poderá haver compartilhamento de código e conhecimento entre as equipes que atuam em projetos distintos, e menor dor de cabeça no remanejamento de pessoas entre projetos.

Compartilhamento de código, de conhecimento e de desenvolvedores

Embora a contratação seja a parte maior e mais impactante da decisão de usar Flutter ou React Native, há outras muito importantes que devem serem mencionadas, que são o compartilhamento de código entre os projetos, compartilhamento de conhecimento entre as esquipes e remanejamento de desenvolvedores entre projetos internos na empresa.

O que é melhor que um bom código? Menos código. E uma das melhores maneiras de ter menos código é compartilhá-lo entre várias aplicações. Ele pode reduzir o tempo de desenvolvimento inicial e simplificar a manutenção de um projeto a longo prazo.

É provável que sua empresa esteja usando React.js, ou pelo menos JavaScript, em seus sites, aplicativos da Web, servidores e muito mais. Ser capaz de compartilhar código entre seu aplicativo React.js, servidores Node, entre outros, é uma grande vantagem para o React Native e é algo onde o Flutter não é tão forte.

Além de compartilhar código, também é uma grande vantagem poder compartilhar conhecimento entre suas equipes da Web, back-end, iOS e Android. Você pode ter wikis comuns, canais do Slack e muito mais. E há uma tonelada de tutoriais, artigos de blog, perguntas e respostas do StackOverflow e uma infinidade de conteúdos sobre React Native, React e JavaScript.

Você também pode, é claro, compartilhar desenvolvedores reais entre esses projetos e aumentar o número de funcionários em um projeto crítico sem precisar treinar novamente.

Desempenho e ecossistema de bibliotecas

No quesito desempenho, aplicações construídas utilizando-se o Flutter possuem vantagens performáticas comparada as de React Native, por mais que seja um fator que não pesa tanto quanto aos fatores anteriormente abordados, é um ponto importante que não se pode deixar de fora nessa equação sobre qual tecnologia é a melhor.

Já no quesito ecossistema de bibliotecas o React Native atualmente leva vantagem. Em um aplicativo React Native típico, usamos várias bibliotecas e ferramentas que foram originalmente projetadas para JavaScript ou React. Alguns deles incluem axios, mobx, redux, lodash, ramda, eslint, babel, jest, prettier, react-devtools, typescript, npm e yarn.

Essas são todas as bibliotecas que os desenvolvedores da Web e do Node usam constantemente. Isso significa que as comunidades combinadas podem contribuir e melhorar essas ferramentas, bem como (novamente) compartilhar conhecimento e ajudar umas às outras.

O Flutter, por outro lado, geralmente usa bibliotecas feitas para o Flutter. Algumas bibliotecas Dart de terceiros estão disponíveis, mas essa comunidade é muito menor do que JavaScript.

Com isso dito, vale a pena notar que o Dart vem com um formatador, teste, compilador, analyzer /linter e gerenciador de pacotes unificados e é uma linguagem segura para tipos e valores nulos. Isso significa que você provavelmente precisaria de menos bibliotecas de terceiros ao usar Flutter e Dart.

Qual realmente é melhor?

Para chegar à conclusão sobre qual é o melhor, vale lembrar que eu não foquei em falar sobre assuntos como a estética, hierarquia e sintaxe de ambas tecnologias, pois são preferências mais puramente pessoais e não afetam a usabilidade dos frameworks de maneira real. Se fosse abordar todos os pontos de cada uma, isso iria render o dia todo de discussão e esse artigo acabaria ficando maior que one piece (Realmente muito grande).

Dito tudo isso, considerando todos os pontos anteriormente abordados, se eu fosse dono de uma empresa, ou uma pessoa da qual está iniciando na programação e busca oportunidades de trabalho. Não hesitaria em escolher a linguagem JavaScript, e consequentemente optaria pelo React Native no desenvolvimento de aplicações mobile.

No momento, o React Native é mais maduro, e ainda continua amadurecendo cada dia mais, então hoje (Isso pode mudar em um futuro próximo) ele possui vantagem perante ao Flutter, consequentemente o tornando “melhor”.

Mais vale ressaltar que o Flutter está evoluindo exponencialmente, é sustentado pela Google, sua comunidade vem tendo um rápido crescimento e sempre vem trazendo novidades e melhoras dia pós dia. Esse jogo pode virar no futuro não muito distante. Não esqueçam, estamos falando do mundo da tecnologia, e as coisas mudam muito rápido!

Ufa, falei bastante Rs. Concluindo, resta a nós, empresas e desenvolvedores estarmos sempre nos atualizando e buscando conhecimento dia pós dia referente a isso, para que possamos tomar melhores decisões e é claro, poder ter um conhecimento mais amplo sobre qual tecnologia é melhor de acordo com seu contexto, realidade, situação e que solucionará nossos problemas.

Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:

CURSOSCONSULTORIA

Anterior Criando e atualizando um cluster Kubernetes com kubeadm
Próxima Gerenciamento eficiente de infraestrutura Docker com Portainer.io

About author

Você pode gostar também

DevOps

Guia completo para instalação do Gitea: Ferramenta open source de gerenciamento de código-fonte

O Gitea é uma ferramenta open source de Source Code Management – SCM, ou seja, gerenciamento de código-fonte, escrita em Go e que foi criada em novembro de 2016 além

Notícias

Torne-se um especialista em PBX-IP com o curso prático da 4Linux

4Linux relança seu curso sobre “Como construir um PBX-IP na prática com Asterisk e FreePBX”.  O Asterisk é um software livre e de código aberto, que implementa em software, todos

Desenvolvimento

Integrando Telegram ao Rocket.Chat

Recentemente já mostramos como realizar a integração manual de um sistema de chat com o Rocket utilizando o Omnichannel. Nesse post, inclusive, citamos os recursos que já foram desenvolvidos pela