Executando verificação de segurança...
6

Flutter ou React Native?

Olá! Me chamo Gabriel e é um prazer fazer parte dessa comunidade incrível!

Sei que o título parece polêmico, mas não, não quero criar polêmica, nem defender uma tecnologia ou outra. Bem, vamos lá...

Eu já tenho conhecimentos de Flutter há uns 3 anos, gosto muito do framework(e confesso que resolvi estuda-lo por causa do hype na época), acho incrível e atualmente estou desenvolvendo um produto próprio e gostaria de criar um app através dele. Só que tem um porém. Eu já tenho conhecimentos sólidos em React e a parte web fiz com Next.JS, pela questao do SEO e tambem ser algo novo pra mim. Enquanto eu desenvolvia o projeto, eu aprendia ao mesmo tempo. Então pensei em fazer o app com React Native para ja aproveitar a mesma linguagem(JS) e ambiente. Mesmo nunca ter feito nada com RN, dei uma lida na documentação e vi que é bem tranquilo, ainda mais usando o Expo.

Queria levantar mais umas questões aqui:
Algo que me dá medo, até irracional de certa forma, é o Google matar o Flutter. Todos nós sabemos que o Google é campeão de fazer isso. Sem motivo nenhum ele vai lá e abandona um projeto/serviço. Eu confesso que nao vejo mais aquele entusiasmo que tinha antes na comunidade. Nao sei se isso de fato pode acontecer, é só algo que eu e o pessoal no meio tem notado. Tenho medo de dar meu tempo e sangue em algo que pode ser abandonado.

Outra coisa é a questao do mercado tambem. React Native sempre teve mais vagas em relação ao Flutter.

Porém.. o fato dele criar apps para dekstops me encanta, pois talvez eu precise. E antes que falem, mas.. Electron ta fora de questao pra mim 😅.

Carregando publicação patrocinada...
2

RN é uma melhor escolha na minha opinião, e no seu caso daria até para fazer um monorepo e compartilhar código entre as plataformas.

Sobre o eletron, você pode usar Tauri também, ele é feito em Rust e possui uma performance muito boa. Além disso se você souber Rust dá para criar o "backend" do seu desktop nessa linguagem.

0

Vou dar uma pesquisa no Tauri. Parece interessante. Meu desamor pelo Electron é fato de consumir muita memória para pouca coisa.

1

React-Native, possuí soluções mais consistentes.
Flutter, posssuí um arquitetura melhor.
Ambos funcionam e a curva de aprendizado é relativamente igual.
Flutter é mais fácil.
RN tem mais abrangencia de mercado e soluções prontas.
Sendo assim depende mais do projeto.

1

Pois é. Concordo que RN tem mais abrangência e certa maturidade.

Outra coisa também é a confusão de codar um projeto todo em Next/React e logo apos codar um apo em Flutter, em questao de instantes. Acho mais interessante o RN por ter o mesmo paradigma. Mas Flutter tem um lugarzinho lá no meu coração..

1

Para que está começando em mobile, eu diria para ir de RN, pois o conhecimento aplicado (Node, JS, TS, React), é facilmente aproveitado em outras áreas de desenvolvimento.

Já Flutter como é baseado em Dart, você fica de certa forma limitado a aplicar esse conhecimento adquirido apenas em Flutter, pois até agora não vi nenhuma outra grande aplicabilidade com Dart.

1

Obrigado pela resposta. Talvez para um iniciante RN seja mais vantajoso. Mas pra mim, Dart é super fácil de aprender. Pra quem manja de JS, Dart é tranquilo.

1

Eu sou fã de flutter, faço freelas desde 2019 com flutter, mas na empresa que eu trabalho decidimos usar RN pela facilidade de contratar e pq a gente precisava gerar muitos gráficos e as libs javascript que faziam isso eram infinitamente melhores que flutter. 3 anos depois acho que foi uma boa decisão e hoje eu investiria meu tempo em RN, apesar de ter um carinho pelo flutter.

1

Valeu por responder. Curioso que pesquisei em vários lugares e ví o contrário. Muitos recomendaram o Flutter por ter libs estáveis e bem feitas. Fiquei com medo do RN pelo fato de ter muitas libs e também muitas delas serem abandonadas, coisa que é muito comum no meio JS. Algo que me deixou com o pé para trás foi o número de libs para coisas simples, sendo que no Flutter já vem tudo quase pronto.

1
1
1

Tocando no assunto que ninguém tocou ainda: seu medo irracional a respeito da Google matar o Flutter. Estava falando justamente sobre isso na semana passada com meus colegas no trabalho.

A discussão ocorreu em cima da existência do Jetpack Compose, que é basicamente o flutter para o Android. Por qual razão a Google manteria os dois frameworks, já que o Kotlin Multiplatform é o Compose Multiplatform da JetBrains fazem basicamente o que o Flutter vem fazendo? Seria muito mais fácil desenvolver apenas o Jetpack Compose e deixar a parte se multiplataforma para a JetBrains.

E pra te falar a verdade, nós não chegamos a um consenso a respeito do que pode acontecer. O fato é: quanto mais ferramenta pra gente trabalhar, é melhor. A concorrência cria um ambiente muito propício para melhoria, então não existe ferramenta melhor ou pior, é apenas uma questão de tempo para que elas, de alguma forma, se igualem no que as pessoas esperam que elas entreguem, já que o mercado e a comunidade pedem por isso.

O que importa, no fim das contas, é que a gente aprenda não só o framework, mas os conceitos que fazem a base daquilo que trabalhamos.

1

Tocando no assunto que ninguém tocou ainda: seu medo irracional a respeito da Google matar o Flutter. Estava falando justamente sobre isso na semana passada com meus colegas no trabalho.

A discussão ocorreu em cima da existência do Jetpack Compose, que é basicamente o flutter para o Android. Por qual razão a Google manteria os dois frameworks, já que o Kotlin Multiplatform é o Compose Multiplatform da JetBrains fazem basicamente o que o Flutter vem fazendo? Seria muito mais fácil desenvolver apenas o Jetpack Compose e deixar a parte se multiplataforma para a JetBrains.

E pra te falar a verdade, nós não chegamos a um consenso a respeito do que pode acontecer. O fato é: quanto mais ferramenta pra gente trabalhar, é melhor. A concorrência cria um ambiente muito propício para melhoria, então não existe ferramenta melhor ou pior, é apenas uma questão de tempo para que elas, de alguma forma, se igualem no que as pessoas esperam que elas entreguem, já que o mercado e a comunidade pedem por isso.

O que importa, no fim das contas, é que a gente aprenda não só o framework, mas os conceitos que fazem a base daquilo que trabalhamos. A partir disso, basta a gente escolher a ferramenta que melhor se aplique ao trabalho que temos em mãos e não nos apegarmos.

1

Performance - A maior crítica que a comunidade Flutter tinha sobre o React Native está caindo por terra. Muitos falavam sobre o Flutter sem bem mais performático, mas agora com a nova arquitetura do React Native e o Hermer (um engine JS criada exclusivamente para RN) eles não tem muito mais o que criticar.

Curva de aprendizado e documentação - Aqui o Flutter leva uma leve vantagem também, ou levava. Eu cheguei no React Native em 2018, nessa época a doc e setup ro ambiente ainda era complicado, mas esse foi outro ponto que melhorou muito! Com o Expo por exemplo você consegue um setup mais simples e mais rápido que no Flutter. Até mesmo no RN CLI que tem uns steps a mais, a documentação tá excelente e dificilmente você terá problemas.

Mercado e oportunidades - Esse aqui é pra mim o mais importante para nós desenvolvedores, oportunidade de trabalho e o que podemos construir com as tecnologias.
O React Native tem o privilégio de beber da fonte da comunidade do JavaScript e ReactJS que é basicamente o ecossistema da web. Bibliotecas, padrões, conhecimente, e até mesmo código são reaproveitados na web/mobile com React Native e React. Isso muda o jogo completamente! Uma empresa que já tem um time que utiliza JavaScript e React tem zero razões para usar Flutter, e isso cria um efeito bola de neve difícil de reverter.

Para concluir, o React Native já é uma tecnologia consolidade que atingiu o ponto de maturação e consegue caminhar com suas próprias pernas sem uma alta dependência da Meta(Facebook). Existem grandes empresas alimentando o ecossistema, como a Inifite Red a Callstack e o Shopify.