O Expo é um framework open source para criar apps iOS, Android e web com React Native. Reúne aquilo de que uma app React Native precisa e que o próprio React Native não fornece: uma biblioteca de módulos nativos testados, um router baseado em ficheiros, uma ferramenta de linha de comandos e um conjunto de serviços na cloud (EAS) que compilam a sua app e a enviam para as lojas. Desde 2024, a documentação do React Native recomenda começar qualquer app nova com um framework, e indica o Expo como esse framework.
Se alguma vez montou um projeto React Native do zero, sabe porquê: Xcode, Android Studio, dependências nativas, certificados de assinatura. O Expo esconde essa maquinaria até precisar dela, e devolve-a quando chega a altura. Este guia explica de que é feito o Expo, o que mudou em 2025 e 2026, quanto custa e quando não é a ferramenta certa.
Expo e React Native: um framework, não um fork
O React Native é o motor. Pega em componentes React escritos em JavaScript ou TypeScript e apresenta-os como vistas nativas a sério: um botão UIKit no iOS, uma View Android no Android. Esse motor é mantido pela Meta e usado em apps como Facebook, Instagram, Microsoft Office e Shopify.
O Expo é o framework à volta desse motor, tal como o Next.js é um framework à volta do React. Não substitui o React Native nem o forka: uma app Expo é uma app React Native, com os mesmos componentes, as mesmas bibliotecas e os mesmos binários nativos no fim. O que o Expo acrescenta é a camada que, de outro modo, toda a gente reconstrói à mão: navegação, uma biblioteca padrão de APIs do dispositivo, uma pipeline de build e uma forma de distribuir atualizações.
A distinção importa por causa de uma reputação antiga. O Expo dos primeiros tempos (antes de 2021) fechava-o num conjunto fixo de módulos nativos; acrescentar uma biblioteca nativa própria obrigava a abandonar o Expo por completo. Essa limitação desapareceu. Hoje pode adicionar qualquer módulo nativo, escrever Swift ou Kotlin ao lado do seu TypeScript, e o Expo gera os projetos nativos por si quando chega a altura de compilar.
A reter
Toda a app Expo é uma app React Native. O inverso não é verdade: uma app React Native sem Expo tem de montar sozinha a navegação, os módulos nativos, os builds e as atualizações. A documentação do React Native di-lo sem rodeios: se está a criar uma app nova, use um framework, e o recomendado é o Expo.
As peças
A melhor forma de entender o Expo é por camadas. Escreve contra as duas de cima, o React Native trata do rendering por baixo, e um serviço na cloud à parte transforma o conjunto em algo que se instala a partir de uma loja.
O Expo SDK: uma biblioteca padrão para o telemóvel
O SDK é uma coleção de pacotes, um por capacidade: expo-camera, expo-location, expo-notifications, expo-file-system, expo-sensors e mais algumas dezenas. São testados em conjunto e lançados em conjunto, três vezes por ano, e cada versão do SDK está fixada a uma versão do React Native. Essa fixação é a principal razão para as apps Expo se atualizarem com menos sobressaltos do que as apps React Native puras: alguém já verificou que as peças encaixam.
Expo CLI e Expo Router
A CLI cria um projeto, arranca o servidor de desenvolvimento (Metro) e executa os comandos de build. O Expo Router acrescenta navegação baseada em ficheiros: cada ficheiro na pasta app/ é um ecrã, e o seu caminho é a sua rota. As mesmas rotas funcionam como deep links no telemóvel e como URLs na web, sem configuração extra. Desde o SDK 56, o Expo Router já não depende do React Navigation; fez um fork das partes de que precisava para evoluir por conta própria.
Expo Go, development builds e builds de produção
É aqui que os recém-chegados se perdem, por isso aqui fica o quadro completo numa única tabela. Os três são formas diferentes de correr o mesmo código, em fases diferentes.
| Expo Go | Development build | Build de produção | |
|---|---|---|---|
| O que é | Uma app pronta a usar que incorpora o Expo SDK | A sua própria app, com as ferramentas de programador lá dentro | O binário assinado que envia para as lojas |
| Código nativo personalizado | Não, só os módulos do SDK | Sim | Sim |
| Como a obtém | Instala-a, inicia sessão, lê um código QR | Compila-a uma vez (EAS ou localmente) e depois recarrega em direto | EAS Build ou um build local |
| Ideal para | Protótipos, aprendizagem, mostrar uma primeira versão num telemóvel a sério | O trabalho diário num projeto real | O lançamento |
Uma mudança a conhecer para 2026: o Expo Go passou parte do ano fora da App Store. A partir de maio, as novas versões ficaram à espera na fila de revisão da Apple, pelo que o Expo Go para o SDK 56 e o SDK 57 tinha de ser instalado com a Expo CLI (Android, simuladores) ou como build pessoal do TestFlight criado com o comando eas go (iPhone). Em setembro de 2026, o Expo Go para o SDK 57 voltou à App Store com uma regra nova: tem de ter sessão iniciada com a mesma conta Expo na Expo CLI e na app Expo Go. O Android recebe a regra de início de sessão mais tarde. O Expo Go continua a ser a forma mais rápida de ver uma app num telemóvel, mas o Expo continua a encaminhar os projetos sérios para os development builds. O nosso guia para testar uma app com o Expo Go cobre a regra de início de sessão, o fluxo por código QR e os erros habituais.
EAS: o lado da cloud
O Expo Application Services é a parte do Expo que não é open source nem gratuita para lá de uma quota. Tem três funções. O EAS Build compila a sua app em máquinas na cloud, incluindo as máquinas macOS de que precisa para iOS, pelo que pode produzir um build para iPhone a partir de Windows ou Linux. O EAS Submit envia o binário terminado para o App Store Connect ou o Google Play. O EAS Update envia alterações JavaScript para as apps instaladas sem nova publicação na loja, dentro das regras que as lojas permitem para isso. A documentação do EAS Build cobre a configuração exata.
O que mudou em 2025 e 2026
Dois anos de lançamentos levaram o Expo de invólucro prático a forma predefinida de usar o React Native. As mudanças que vale a pena conhecer:
- Só New Architecture. Desde o SDK 55, as apps Expo correm exclusivamente na New Architecture do React Native: o renderer Fabric, os TurboModules e o JSI substituem a antiga bridge assíncrona. O React Native 0.85 (abril de 2026) fez dela o padrão assumido de todo o ecossistema, e o SDK 56 traz o motor JavaScript Hermes v1 por defeito.
- O SDK 56 (maio de 2026) aposta na velocidade de build. Os módulos iOS mais pesados chegam agora pré-compilados, o que o Expo mede em cerca de 16 por cento de builds iOS mais rápidos, e a CLI empacota projetos a frio 20 a 50 por cento mais depressa.
- O SDK 57 (junho de 2026) passa para o React Native 0.86. O React fica em 19.2 e o React Native 0.86 não anuncia alterações incompatíveis, por isso a subida a partir do SDK 56 é leve: melhor suporte edge-to-edge no Android, emulação dos modos claro e escuro nas React Native DevTools, e correções de rendering, layout e animação.
- O Expo UI está estável. Componentes SwiftUI e Jetpack Compose podem ser usados a partir do React, pelo que uma app pode adotar os widgets mais recentes de cada plataforma sem sair do TypeScript.
- Módulos nativos inline. Um ficheiro Swift ou Kotlin pode viver ao lado do TypeScript que o chama, com tipos gerados. O velho muro entre o «mundo JavaScript» e o «mundo nativo» quase desapareceu.
Ritmo das atualizações
Três versões do SDK por ano significam uma atualização mais ou menos de quatro em quatro meses. Cada uma é pequena se acompanhar, e dolorosa se saltar três. Reserve uma tarde por trimestre para isso; é o verdadeiro custo de manutenção de uma app Expo, e é inferior ao equivalente num projeto React Native puro.
Preços, limites e quando o Expo é a escolha errada
O framework, o SDK, a CLI e o Expo Router são gratuitos e open source. O que custa dinheiro é a cloud, e as contas Apple e Google de que precisa seja qual for o framework.
| Item | Preço | O que recebe |
|---|---|---|
| Framework Expo, SDK, CLI, Router | Gratuito, open source | Tudo o que corre no dispositivo |
| Plano EAS Free | 0 USD | 15 builds iOS e 15 builds Android por mês, fila de baixa prioridade (em horas de pico há esperas acima de 90 minutos), limite de 45 minutos por build |
| EAS Starter | 19 USD / mês mais consumo | Fila prioritária, limite de 2 horas por build |
| EAS Production | 199 USD / mês mais consumo | Quotas mais altas para equipas que publicam com frequência |
| Apple Developer Program | 99 USD / ano | Obrigatório para publicar na App Store, seja qual for o framework |
| Google Play Console | 25 USD (única) | Obrigatório para publicar no Google Play |
Quando o Expo é a escolha certa
- A sua equipa escreve JavaScript ou TypeScript, ou vem do desenvolvimento web.
- Quer uma única base de código para iOS, Android e, muitas vezes, web.
- Ninguém na equipa tem um Mac, ou ninguém quer manter instalações do Xcode e do Android Studio.
- A sua app é um produto, não um jogo: formulários, listas, mapas, câmara, notificações, pagamentos.
Quando não é
- A app é sobretudo código nativo personalizado: um motor 3D, pipelines de áudio ou vídeo em tempo real, realidade aumentada pesada.
- A equipa já está investida em Swift ou Kotlin; nesse caso, o Kotlin Multiplatform pode partilhar mais com menos atrito.
- Só precisa de um site adaptado ao telemóvel com um ícone instalável: uma progressive web app é mais barata e não precisa de loja nenhuma.
Para uma visão mais ampla das alternativas, o nosso guia sobre desenvolvimento mobile cross-platform compara o React Native com o Flutter, o Kotlin Multiplatform e as apps web empacotadas.
Como a Cadrant usa o Expo
Os projetos móveis nativos na Cadrant são aplicações Expo e React Native. Descreve a app em linguagem corrente, o projeto gerado usa o Expo SDK para as funcionalidades do dispositivo, e a pré-visualização abre numa moldura de telemóvel dentro do editor. Para testar num dispositivo real, lê um código QR com o Expo Go; a maioria das APIs expo-* corre aí diretamente.
A publicação segue o caminho que um programador percorreria à mão, conduzido pela Cadrant em seu lugar: o build iOS corre no EAS com a sua própria conta Expo (o plano gratuito cobre 15 builds iOS por mês), e o binário terminado é submetido à sua conta App Store Connect depois de um passo guiado de início de sessão na Apple, criação da app e certificado. A propriedade fica consigo, nas suas contas Expo e Apple. Veja a página do criador de apps móveis para o fluxo completo.
Dica prática
Crie a sua conta Expo gratuita e a sua adesão ao Apple Developer Program no primeiro dia, não no dia do lançamento. A ativação de uma conta Apple pode demorar dias para uma empresa, e o primeiro build EAS num plano gratuito pode ficar à espera na fila. Nos dois casos é tempo de calendário que não se recupera depois.
Em resumo: o Expo é o React Native com as pilhas incluídas, e desde 2024 é a forma de começar que a própria equipa do React Native recomenda. Aprenda a diferença entre o Expo Go e um development build, conte com a quota da cloud e com as contas das lojas, e o resto é React.