React Native em 2025

As novidades, as mudanças e o futuro do desenvolvimento híbrido

Walter Gandarella • 18 de abril de 2025

Por vezes, apaixonamo-nos por uma linguagem de programação, mas é inevitável que elas vão mudando com o tempo, ganhando mais recursos e, ocasionalmente, tornando-se mais complexas. Com o React Native não foi diferente. Desde o seu lançamento pela Meta (então Facebook), o framework sofreu diversas transformações que moldaram o panorama atual do desenvolvimento mobile híbrido

O panorama atual do desenvolvimento híbrido

Quando falamos de desenvolvimento híbrido, precisamos de compreender que existem basicamente duas grandes vertentes:

1. Desenvolvimento baseado em WebView

A primeira vertente utiliza tecnologias como o Cordova, o Capacitor e os descendentes do bom e velho PhoneGap (que, acreditem ou não, ainda há quem aposte no seu regresso). Esta abordagem utiliza HTML, CSS e JavaScript, e o que a framework faz é subir uma WebView, que funciona como um «browser» dentro da app.

A vantagem? Programa exatamente como na web. A desvantagem? Toda a comunicação com recursos nativos (câmara, GPS, sensores) torna-se mais complexa do que seria noutras alternativas. É como tentar fazer um pato nadar em terra firme - funciona, mas não é o seu ambiente natural.

2. Compilação para código nativo

Do outro lado temos frameworks como o React Native e o Flutter, que compilam o nosso código para algo que o sistema operativo entende diretamente.

O React Native utiliza componentes específicos que são compilados para componentes nativos equivalentes. Por exemplo, um <View> no React Native passa a ser uma UIView no iOS e uma ViewGroup no Android.

Já o Flutter segue uma abordagem diferente. Enquanto codamos visualmente com widgets, o Flutter não compila para componentes nativos - funciona como se a app fosse um grande ecrã em branco, e desenha os componentes no canvas. É como se, em vez de pedir emprestada a mobília da casa, levasse os seus próprios móveis e os colocasse lá.

Isto tem implicações interessantes. Por exemplo, quando sai uma nova versão do iOS com alterações nos componentes visuais nativos, uma app React Native adota automaticamente essas alterações, pois está a utilizar os componentes nativos. Já com o Flutter, é preciso esperar que saia a nova versão do pacote Cupertino (que imita a interface do iOS), actualizar o seu código e voltar a publicar.

React Native vs Flutter: a eterna batalha

Sejamos sinceros: esta discussão sobre qual é melhor já deu mais threads no X do que a discussão de política em grupo de família no WhatsApp. E tal como nas discussões familiares, é muitas vezes uma questão de gosto e de contexto.

O Flutter nasceu a partir de um motor de jogos (o Skia, mais tarde passou a ser Impeller), por isso tem uma abordagem diferente. Enquanto o React Native pede componentes para o sistema operativo (como botões, campos de texto e calendários), o Flutter desenha pixel a pixel no ecrã.

Isto dá ao Flutter um maior controlo sobre o que acontece visualmente. Não precisa de encomendar componentes para o sistema operativo - simplesmente desenha o que precisa. Contudo, isso vem com desafios, como questões de responsividade. Se fizer uma app a pensar num telemóvel e depois a esticar para um tablet ou um dispositivo dobrável, pode encontrar problemas se não planear bem.

A escolha entre React Native e Flutter resume-se muitas vezes a:

  • Qual é o seu objetivo final?
  • Qual é a sua expertise inicial?

Se pretende experiências visuais mais elaboradas, com um controlo refinado de animações e efeitos como o parallax, o Flutter pode ser mais fácil. Por outro lado, se já trabalha com React na web, a transição para React Native será mais natural.

De referir ainda o KMP (Kotlin Multiplatform) que está a vir «como naquele meme dos Monty Python do homem a correr que um dia vai chegar». Já vem há algum tempo, mas é uma alternativa promissora que combina o poder do Kotlin com o desenvolvimento multiplataforma.

A Nova Arquitectura do React Native

Uma das grandes evoluções recentes no React Native é a chamada «New Architecture». Esta alteração veio colmatar um dos maiores problemas que existia com o React Native.

Como funcionava antes

Quando escrevemos código em React Native, usamos JSX (ou como alguns brincam, «PHP socialmente aceite»). A parte visual e de componentes é compilada para código nativo, mas a lógica de negócio é executada numa VM JavaScript dentro da app.

Para a comunicação entre o JavaScript e o código nativo, existia (e em parte ainda existe) uma peça chamada Bridge (Ponte). Era através dela que o código JavaScript solicitava recursos ao sistema operativo.

O problema? Essa ponte era:

  1. Unidirecional - o JavaScript enviava pedidos e recebia respostas através de callbacks
  2. Assíncrona - o que gerava complexidades e potenciais problemas de performance

O que mudou com a New Architecture

Na New Architecture do React Native, esta Bridge morreu! Agora, o JavaScript consegue comunicar sincronicamente com o nativo, sem callbacks complexos, e a comunicação passou a ser bidirecional.

A implementação foi bem pensada. Em vez de fazer uma mudança brusca (uma breaking change), a Meta introduziu a nova arquitetura como opcional, vindo desligada por defeito. Já agora vem ligada por defeito, mas pode desligá-la se a sua app depender de plugins que ainda não foram adaptados.

E por falar em plugins, muitos já foram adaptados para a nova arquitetura, mas alguns desenvolvedores de plugins mais complexos declararam que não vão migrar. Assim, por enquanto, vivemos num mundo híbrido onde é possível escolher entre activar ou não o «modo Bridge» para diferentes partes da app.

O universo Expo: um ponto de viragem

Quando falamos de React Native, é impossível não mencionar o Expo. Para muitos developers, o Expo é a porta de entrada para o mundo React Native, e não é por acaso.

O Expo funciona como um super conjunto de ferramentas que facilita enormemente o desenvolvimento. Fornece acesso simplificado a recursos como câmara, Bluetooth, mapas, e muito mais. E ao longo do tempo, o Expo foi adicionando cada vez mais funcionalidades por defeito.

Em 2019, quando se queria aceder a código nativo, era necessário fazer o «eject» do seu projeto Expo, o que significava abandonar parte do conforto que o Expo proporcionava. Hoje em dia, este processo evoluiu bastante e raramente é necessário sair do ecossistema Expo.

Uma das grandes vantagens do Expo é a sua comunidade ativa. Se encontrar um bug (o que acontece com qualquer tecnologia), a equipa da Expo é muitas vezes extremamente responsiva. Não é incomum reportar um problema em detalhe e receber um patch em questão de horas ou dias.

Com o passar do tempo, algumas bibliotecas foram descontinuadas ou incorporadas no Expo. Por exemplo, a função de leitura de código QR que era anteriormente fornecida pelo Expo Barcode Scanner está agora integrada no Expo Camera. O mesmo aconteceu com o Firebase - antes era necessário instalar via React Native Firebase, mas hoje existe o Expo Firebase (embora com suporte limitado a algumas funcionalidades).

Os desafios das atualizações

Um tema recorrente no desenvolvimento mobile é o desafio das atualizações. Embora o Expo, por exemplo, apenas suporte oficialmente as últimas três versões, não é incomum encontrar projetos a correr versões muito mais antigas.

Atualizar um projeto React Native pode ser um processo trabalhoso, especialmente se estiver várias versões atrasado. É como construir uma casa - aparecem sempre problemas inesperados. O terreno pode estar desnivelado, ou descobre que tem de refazer parte da fundação.

Quando se atualiza:

  • Algumas bibliotecas podem deixar de funcionar
  • Outras podem ter sido descontinuadas
  • Algumas funcionalidades podem ter sido incorporadas noutras bibliotecas
  • Podem surgir dependências cíclicas, em que uma biblioteca depende de uma versão mais recente que outra não suporta

O processo raramente é linear. O que parece ser uma atualização de uma semana pode facilmente estender-se por um mês, especialmente em projetos maiores.

E não nos esqueçamos que o React Native depende dos SDKs nativos do Android e iOS, que também estão em constante evolução. Quando o Android Studio atualiza e altera a versão do Java exigida, ou quando a Apple migra do CocoaPods para o Swift Package Manager, estas alterações também afetam o desenvolvimento em React Native.

Porque é que as empresas escolhem o React Native?

A decisão de utilizar React Native (ou qualquer framework híbrido) vem muitas vezes de considerações que vão para além das puramente técnicas.

Reutilização de código

A promessa do híbrido é «escrever uma vez, executar em qualquer lugar» - desenvolve-se o código uma vez, carrega-se num botão e voilà! A sua app funciona tanto no iOS como no Android.

Na prática, não é assim tão simples. Ainda tem de lidar com as peculiaridades de cada plataforma, especialmente quando começa a interagir com APIs nativas. Mas ainda assim, a reutilização de código é significativamente maior do que desenvolver apps nativas separadas.

Aproveitamento de competências existentes

Se a sua empresa já tem React developers a trabalhar no frontend web, a curva de aprendizagem para React Native é muito menor do que aprender Swift/Objective-C ou Kotlin/Java a partir do zero.

O React Native foi desenhado especificamente para facilitar a vida a quem vem do mundo web. Até o sistema de estilização é inspirado no CSS (apesar de utilizar o Yoga por baixo dos panos), com propriedades semelhantes. Se conhece React para web, muito do seu conhecimento é transferível.

Ecossistema e comunidade

O ecossistema React já é massivo, e o React Native beneficia disso. Como o Stack Overflow Developer Survey mostra de forma consistente, o JavaScript e o React estão entre as tecnologias mais populares, o que significa uma grande base de programadores e recursos disponíveis.

Grandes empresas como a Tesla, Shopify e várias do setor das criptomoedas utilizam React Native em produção, algumas até com repositórios de código aberto que servem de referência e recurso de aprendizagem.

O mercado de trabalho para os programadores React Native

O mercado para os programadores React Native está aquecido, especialmente para os profissionais com experiência. Na Europa, por exemplo, existem muitas oportunidades, embora a maioria peça programadores seniores com pelo menos 3-4 anos de experiência específica em React Native.

Para quem está a começar, a porta de entrada é muitas vezes através do React para a web. Como existem proporcionalmente mais aplicações web do que móveis (nem todo o site tem de ter uma app), existem mais oportunidades iniciais no desenvolvimento web.

Uma estratégia comum é:

  1. Aprender HTML, CSS e JavaScript (a base de tudo)
  2. Aprender React para web
  3. Conseguir um emprego como React developer
  4. Migrar para React Native quando surgir a oportunidade

O TypeScript, embora opcional, é cada vez mais utilizado tanto no React como no React Native, e em algum momento da carreira será provavelmente necessário aprender, quer se queira quer não.

Dicas para quem está a começar com React Native

Se está a dar os primeiros passos com React Native, aqui ficam algumas dicas valiosas:

1. Entenda primeiro a base

Antes de mergulhar no React Native, certifique-se de que compreende bem:

  • HTML, CSS e JavaScript
  • Como funciona o React para web

Isto ajudará a distinguir o que é do React «core» e o que é específico do React Native, o que facilita muito a resolução de problemas.

2. Construa projetos para o seu portefólio

Criar projetos é a melhor forma de aprender e demonstrar as suas competências. Alguns recursos úteis:

  • Sites como o Dribbble que fornecem designs que pode implementar
  • Experimente diferentes tecnologias em cada projeto (Firebase num, Supabase noutro, etc.)
  • Documente bem os seus projetos no GitHub com READMEs detalhados

3. Mantenha-se atualizado com o ecossistema mobile

Acompanhe o que está a acontecer no mundo mobile como um todo:

  • O que a Apple está a fazer com o iOS (lançamentos anuais em setembro)
  • Novidades da Google para o Android (eventos como o Google I/O)
  • Explore bibliotecas populares do ecossistema (Firebase, Expo, etc.)

4. Seja flexível nas oportunidades iniciais

Se está a começar, não recuse oportunidades só porque não são exatamente o que pretende:

  • Uma vaga de web developers pode ser um excelente ponto de entrada
  • As empresas mais pequenas preferem muitas vezes soluções híbridas por questões de custo
  • Os estágios podem ser uma ótima porta de entrada com menor barreira

5. Invista em redes sociais profissionais

  • Mantenha o seu GitHub ativo com commits regulares
  • Partilhe os seus projetos e aprendizagens no LinkedIn
  • Publique desafios que tenha completado ou problemas que tenha resolvido

Então, animado com o React Native?

O React Native continua a evoluir e mantém-se como uma das principais escolhas para o desenvolvimento mobile híbrido em 2025. A Nova Arquitetura resolveu problemas fundamentais, o ecossistema Expo tornou o desenvolvimento mais acessível, e a compatibilidade com o conhecimento de React para web facilita a entrada de novos developers.

Tal como acontece com qualquer tecnologia, existem desafios, especialmente relacionados com atualizações e compatibilidade com bibliotecas de terceiros. Mas a comunidade ativa e o apoio corporativo da Meta garantem que o React Native continuará a ser relevante durante muito tempo.

Se está a considerar entrar neste mundo, lembre-se que o caminho mais comum é através do React para web, mas com dedicação e projetos no portfólio, é possível encontrar oportunidades diretamente no desenvolvimento mobile.

No final do dia, como dizemos no mundo da tecnologia, depende! A escolha entre React Native, Flutter, ou desenvolvimento nativo dependerá sempre do seu contexto, objetivos e das competências que já possui ou está disposto a desenvolver.

E lembre-se: independentemente da linguagem que escolher, as contas continuarão a chegar. Por isso, escolha algo que goste e que tenha procura no mercado!


Últimos artigos relacionados