For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /pt/docs/mobile/tech-stack.md (or send Accept: text/markdown).
Stack de tecnologias Mobile
As tecnologias dentro do aplicativo Expo e o papel que cada uma desempenha.
Antes de começar
O aplicativo Mobile é uma pequena superfície nativa: cada biblioteca abaixo já está fixada em apps/mobile/package.json, então nada nesta página precisa de instalação separada. Esta página explica o que cada peça faz para que os guias posteriores façam sentido.
O backend mantém sua própria stack — Next.js, Postgres e os adaptadores de provedores — no repositório Web. O aplicativo o alcança via EXPO_PUBLIC_API_URL em vez de embutir qualquer parte dele, e é por isso que um checkout somente Mobile permanece pequeno.
Expo + React Native
Expo é a toolchain que executa, empacota e compila o aplicativo; o React Native renderiza elementos de interface nativos reais em vez de uma webview. O Expo Router oferece navegação baseada em arquivos: cada arquivo sob apps/mobile/app/ vira uma tela, com a pilha de sessão iniciada agrupada sob app/(app)/.
O Expo Go abre a pré-visualização de desenvolvimento compartilhada no seu telefone, enquanto um development build é seu próprio aplicativo instalável — necessário assim que um módulo nativo como compras ou o bloqueio biométrico precisar rodar.
TypeScript
Todo o código do aplicativo é TypeScript, e o pacote vem com uma verificação de tipos estrita. Você pode verificar cada arquivo sem um dispositivo ou um backend em execução.
Better Auth Expo + armazenamento seguro
O login viaja pelo cliente Better Auth Expo através do navegador do sistema: o aplicativo abre a página de autenticação do backend, o backend retorna ao esquema de deep link do aplicativo e o token de sessão é guardado em expo-secure-store — o Keychain no iOS e o Keystore no Android —, nunca em armazenamento simples ou configuração embutida.
Os mesmos módulos cobrem passkeys, um bloqueio de aplicativo biométrico opcional via expo-local-authentication e um logout que limpa o cache offline com escopo de workspace.
Compras RevenueCat
react-native-purchases conecta StoreKit e Play Billing à sincronização de entitlements do kit: o aplicativo inicia a compra na loja, o backend a verifica via webhook da RevenueCat e o servidor decide o que o workspace pode usar.
As compras ficam desligadas na primeira pré-visualização (EXPO_PUBLIC_MOBILE_PURCHASES_PROVIDER=off). Testes reais de compra e restauração precisam de um build de desenvolvimento EAS, porque o Expo Go não consegue rodar o módulo de compras nativo.
EAS Build + Submit
eas.json traz três perfis: development compila um dev client para o simulador de iOS, preview compila um APK Android interno para testadores e production compila os binários de loja com versões autoincrementadas e uma etapa de envio à trilha interna do Play.
Os builds rodam na nuvem da Expo, então você não precisa de um Xcode ou Android Studio local para produzir binários — apenas para rodar simuladores no seu próprio computador.
Ferramentas de verificação
Suítes Vitest determinísticas cobrem armazenamento de sessão, deep links, streaming e cancelamento de chat, entitlements, compras, o cache offline e o roteamento de notificações — rodam no seu computador sem um dispositivo. Comportamentos exclusivos nativos como o bloqueio do aplicativo, entrega push e compras na loja são verificados em um build de desenvolvimento EAS.
corepack pnpm --filter @supastack/mobile test
corepack pnpm --filter @supastack/mobile typecheck