Salta al contenuto
supastack
Sfoglia la documentazione
MobileExpo

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.

Pacchetti condivisi

@supastack/ui-native trasporta i view-model multipiattaforma — createEntitlementCard trasforma lo stato di entitlement del server in un unico contratto di scheda — e @supastack/design-tokens trasporta i valori del tema. Solo questi due pacchetti condivisi sono inclusi nel checkout Mobile; i pacchetti server vivono con il backend Web.

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