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 /it/docs/mobile/tech-stack.md (or send Accept: text/markdown).
Stack tecnologico Mobile
Le tecnologie dentro l'app Expo e il ruolo che ognuna svolge.
Prima di iniziare
L'app Mobile è una piccola superficie nativa: ogni libreria qui sotto è già bloccata in apps/mobile/package.json, quindi nulla in questa pagina richiede un'installazione separata. Questa pagina spiega cosa fa ogni pezzo affinché le guide successive abbiano senso.
Il backend mantiene il proprio stack — Next.js, Postgres e gli adattatori dei provider — nel repository Web. L'app lo raggiunge tramite EXPO_PUBLIC_API_URL invece di incorporare nulla di esso, ecco perché un checkout solo Mobile resta piccolo.
Expo + React Native
Expo è la toolchain che esegue, fa il bundle e compila l'app; React Native rende veri elementi di interfaccia nativi piuttosto che una webview. Expo Router offre navigazione basata su file: ogni file sotto apps/mobile/app/ diventa una schermata, con lo stack connesso raggruppato sotto app/(app)/.
Expo Go apre l'anteprima di sviluppo condivisa sul tuo telefono, mentre un development build è la tua app installabile — richiesta una volta che un modulo nativo come gli acquisti o il blocco biometrico deve funzionare.
TypeScript
Tutto il codice dell'app è TypeScript, e il pacchetto include un typecheck rigoroso. Puoi controllare ogni file senza un dispositivo o un backend in esecuzione.
Better Auth Expo + archiviazione sicura
L'accesso viaggia attraverso il client Better Auth Expo tramite il browser di sistema: l'app apre la pagina di autenticazione del backend, il backend ritorna allo schema deep-link dell'app e il token di sessione è conservato in expo-secure-store — il Keychain su iOS e il Keystore su Android — mai in archiviazione in chiaro o configurazione incorporata.
Gli stessi moduli coprono i passkey, un blocco app biometrico opzionale tramite expo-local-authentication e un logout che cancella la cache offline con scope workspace.
Acquisti RevenueCat
react-native-purchases collega StoreKit e Play Billing alla sincronizzazione degli entitlement del kit: l'app avvia l'acquisto nello store, il backend lo verifica tramite il webhook RevenueCat e il server decide cosa il workspace può usare.
Gli acquisti restano disattivati nella prima anteprima (EXPO_PUBLIC_MOBILE_PURCHASES_PROVIDER=off). I test reali di acquisto e ripristino richiedono una build di sviluppo EAS, perché Expo Go non può eseguire il modulo acquisti nativo.
EAS Build + Submit
eas.json include tre profili: development compila un dev client per il simulatore iOS, preview compila un APK Android interno per i tester, e production compila i binari dello store con versioni auto-incrementate e un passaggio di invio alla traccia interna di Play.
Le build vengono eseguite nel cloud di Expo, quindi non hai bisogno di un Xcode o Android Studio locale per produrre binari — solo per eseguire i simulatori sul tuo computer.
Strumenti di verifica
Suite Vitest deterministiche coprono l'archiviazione della sessione, i deep link, lo streaming e la cancellazione della chat, gli entitlement, gli acquisti, la cache offline e il routing delle notifiche — vengono eseguite sul tuo computer senza un dispositivo. Il comportamento solo nativo come il blocco app, la consegna push e gli acquisti nello store è invece verificato in una build di sviluppo EAS.
corepack pnpm --filter @supastack/mobile test
corepack pnpm --filter @supastack/mobile typecheck