> ## 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

# Pile technologique Mobile

Les technologies dans l'application Expo et le rôle que joue chacune.

## Avant de commencer

L'application Mobile est une petite surface native : chaque bibliothèque ci-dessous est déjà épinglée dans `apps/mobile/package.json`, donc rien sur cette page ne nécessite une installation séparée. Cette page explique ce que fait chaque pièce pour que les guides suivants aient du sens.

Le backend conserve sa propre pile — Next.js, Postgres et les adaptateurs de fournisseurs — dans le dépôt Web. L'application l'atteint via `EXPO_PUBLIC_API_URL` au lieu d'y intégrer quoi que ce soit, c'est pourquoi un checkout uniquement Mobile reste petit.


## Expo + React Native

Expo est la chaîne d'outils qui exécute, bundle et construit l'application ; React Native rend de vrais éléments d'interface natifs plutôt qu'une webview. Expo Router offre une navigation basée sur les fichiers : chaque fichier sous `apps/mobile/app/` devient un écran, avec la pile connectée regroupée sous `app/(app)/`.

Expo Go ouvre l'aperçu de développement partagé sur votre téléphone, tandis qu'un development build est votre propre application installable — requis dès qu'un module natif comme les achats ou le verrou biométrique doit s'exécuter.

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


## TypeScript

Le code de l'application est entièrement en TypeScript, et le package est livré avec une vérification de types stricte. Vous pouvez vérifier chaque fichier sans appareil ni backend en cours d'exécution.

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


## Better Auth Expo + stockage sécurisé

La connexion passe par le client Better Auth Expo via le navigateur système : l'application ouvre la page d'authentification du backend, le backend revient au schéma de deep link de l'application, et le jeton de session est conservé dans `expo-secure-store` — le Keychain sur iOS et le Keystore sur Android — jamais dans un stockage en clair ou une configuration embarquée.

Les mêmes modules couvrent les passkeys, un verrou d'application biométrique optionnel via `expo-local-authentication`, et une déconnexion qui efface le cache hors ligne à portée workspace.

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


## Achats RevenueCat

`react-native-purchases` connecte StoreKit et Play Billing à la synchronisation d'entitlements du kit : l'application lance l'achat en store, le backend le vérifie via le webhook RevenueCat, et le serveur décide ce que le workspace peut utiliser.

Les achats restent désactivés dans le premier aperçu (`EXPO_PUBLIC_MOBILE_PURCHASES_PROVIDER=off`). Les tests réels d'achat et de restauration nécessitent un build de développement EAS, car Expo Go ne peut pas exécuter le module d'achat natif.

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


## EAS Build + Submit

`eas.json` est livré avec trois profils : `development` construit un dev client pour le simulateur iOS, `preview` construit un APK Android interne pour les testeurs, et `production` construit les binaires de store avec des versions auto-incrémentées et une étape de soumission vers la piste interne Play.

Les builds s'exécutent dans le cloud d'Expo, vous n'avez donc pas besoin d'un Xcode ou Android Studio local pour produire des binaires — seulement pour exécuter des simulateurs sur votre propre ordinateur.

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


## Packages partagés

`@supastack/ui-native` porte les view-models multiplateformes — `createEntitlementCard` transforme l'état d'entitlement du serveur en un contrat de carte unique — et `@supastack/design-tokens` porte les valeurs de thème. Seuls ces deux packages partagés sont livrés dans le checkout Mobile ; les packages serveur vivent avec le backend Web.


## Outillage de vérification

Des suites Vitest déterministes couvrent le stockage de session, les deep links, le streaming et l'annulation du chat, les entitlements, les achats, le cache hors ligne et le routage des notifications — elles s'exécutent sur votre ordinateur sans appareil. Les comportements uniquement natifs comme le verrou de l'application, la livraison push et les achats en store sont vérifiés dans un build de développement EAS.

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


## Suivant

[Exécuter l’application mobile](https://supastack.dev/fr/docs/mobile/local-setup.md)
