> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# Pila tecnológica de Mobile

Las tecnologías dentro de la aplicación Expo y el papel que desempeña cada una.

## Antes de comenzar

La aplicación Mobile es una superficie nativa pequeña: cada biblioteca a continuación ya está fijada en `apps/mobile/package.json`, por lo que nada en esta página necesita una instalación separada. Esta página explica qué hace cada pieza para que las guías posteriores tengan sentido.

El backend mantiene su propia pila —Next.js, Postgres y los adaptadores de proveedores— en el repositorio Web. La aplicación lo alcanza a través de `EXPO_PUBLIC_API_URL` en lugar de integrar nada de ello, razón por la cual un checkout solo de Mobile permanece pequeño.


## Expo + React Native

Expo es la cadena de herramientas que ejecuta, empaqueta y compila la aplicación; React Native renderiza elementos de interfaz nativos reales en lugar de una webview. Expo Router ofrece navegación basada en archivos: cada archivo bajo `apps/mobile/app/` se convierte en una pantalla, con la pila de sesión iniciada agrupada bajo `app/(app)/`.

Expo Go abre la vista previa de desarrollo compartida en su teléfono, mientras que una compilación de desarrollo es su propia aplicación instalable, necesaria una vez que un módulo nativo como las compras o el bloqueo biométrico debe ejecutarse.

- [Expo](https://expo.dev)
- [Expo Router](https://docs.expo.dev/router/introduction/)
- [React Native](https://reactnative.dev)


## TypeScript

Todo el código de la aplicación es TypeScript, y el paquete incluye una verificación de tipos estricta. Puede comprobar cada archivo sin un dispositivo ni un backend en ejecución.

- [TypeScript](https://www.typescriptlang.org)


## Better Auth Expo + almacenamiento seguro

El inicio de sesión viaja por el cliente Better Auth Expo a través del navegador del sistema: la aplicación abre la página de autenticación del backend, el backend regresa al esquema de deep link de la aplicación y el token de sesión se guarda en `expo-secure-store` —el Keychain en iOS y el Keystore en Android—, nunca en almacenamiento plano ni en configuración empaquetada.

Los mismos módulos cubren passkeys, un bloqueo de aplicación biométrico opcional a través de `expo-local-authentication` y un cierre de sesión que borra la caché sin conexión con ámbito de workspace.

- [Better Auth](https://better-auth.com)
- [Expo SecureStore](https://docs.expo.dev/versions/latest/sdk/securestore/)


## Compras de RevenueCat

`react-native-purchases` conecta StoreKit y Play Billing con la sincronización de entitlements del kit: la aplicación inicia la compra en la tienda, el backend la verifica a través del webhook de RevenueCat y el servidor decide qué puede usar el workspace.

Las compras permanecen desactivadas en la primera vista previa (`EXPO_PUBLIC_MOBILE_PURCHASES_PROVIDER=off`). Las pruebas reales de compra y restauración necesitan una compilación de desarrollo EAS, porque Expo Go no puede ejecutar el módulo de compras nativo.

- [RevenueCat](https://www.revenuecat.com/docs)


## EAS Build + Submit

`eas.json` incluye tres perfiles: `development` compila un dev client para el simulador de iOS, `preview` compila un APK de Android interno para testers y `production` compila los binarios de tienda con versiones autoincrementadas y un paso de envío a la pista interna de Play.

Las compilaciones se ejecutan en la nube de Expo, por lo que no necesita un Xcode o Android Studio local para producir binarios, solo para ejecutar simuladores en su propia computadora.

- [EAS Build](https://docs.expo.dev/eas/)


## Paquetes compartidos

`@supastack/ui-native` transporta los view-models multiplataforma —`createEntitlementCard` convierte el estado de entitlement del servidor en un contrato de tarjeta único— y `@supastack/design-tokens` transporta los valores de tema. Solo estos dos paquetes compartidos se incluyen en el checkout de Mobile; los paquetes de servidor viven con el backend Web.


## Herramientas de verificación

Las suites deterministas de Vitest cubren el almacenamiento de sesión, deep links, streaming y cancelación de chat, entitlements, compras, la caché sin conexión y el enrutamiento de notificaciones; se ejecutan en su computadora sin un dispositivo. El comportamiento exclusivo nativo como el bloqueo de la aplicación, la entrega push y las compras en tienda se verifica en cambio en una compilación de desarrollo EAS.

```
corepack pnpm --filter @supastack/mobile test
corepack pnpm --filter @supastack/mobile typecheck
```


## Siguiente

[Ejecuta la aplicación móvil](https://supastack.dev/es/docs/mobile/local-setup.md)
