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

# Mobile-Technologiestapel

Die Technologien in der Expo-App und die Rolle, die jede spielt.

## Bevor Sie beginnen

Die Mobile-App ist eine kleine native Oberfläche: Jede Bibliothek unten ist bereits in `apps/mobile/package.json` gepinnt, sodass nichts auf dieser Seite separat installiert werden muss. Diese Seite erklärt, was jedes Stück tut, damit die späteren Handbücher verständlich sind.

Das Backend behält seinen eigenen Stapel — Next.js, Postgres und die Provider-Adapter — im Web-Repository. Die App erreicht es über `EXPO_PUBLIC_API_URL`, statt irgendetwas davon einzubetten — deshalb bleibt ein reines Mobile-Checkout klein.


## Expo + React Native

Expo ist die Werkzeugkette, die die App ausführt, bündelt und baut; React Native rendert echte native Oberflächenelemente statt einer Webview. Expo Router bietet dateibasierte Navigation: Jede Datei unter `apps/mobile/app/` wird zu einem Bildschirm, mit dem angemeldeten Stapel unter `app/(app)/` gruppiert.

Expo Go öffnet die gemeinsame Entwicklungsvorschau auf Ihrem Telefon, während ein Development Build Ihre eigene installierbare App ist — erforderlich, sobald ein natives Modul wie Käufe oder die biometrische Sperre laufen muss.

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


## TypeScript

Der gesamte App-Code ist TypeScript, und das Paket wird mit einer strengen Typprüfung ausgeliefert. Sie können jede Datei ohne Gerät oder laufendes Backend prüfen.

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


## Better Auth Expo + sicherer Speicher

Die Anmeldung läuft über den Better-Auth-Expo-Client durch den Systembrowser: Die App öffnet die Auth-Seite des Backends, das Backend kehrt über das Deep-Link-Scheme der App zurück, und das Sitzungstoken wird in `expo-secure-store` aufbewahrt — der Keychain unter iOS und dem Keystore unter Android —, niemals im normalen Speicher oder in gebündelter Konfiguration.

Dieselben Module decken Passkeys, eine optionale biometrische App-Sperre über `expo-local-authentication` und eine Abmeldung ab, die den workspace-bezogenen Offline-Cache löscht.

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


## RevenueCat-Käufe

`react-native-purchases` verbindet StoreKit und Play Billing mit der Entitlement-Synchronisation des Kits: Die App startet den Store-Kauf, das Backend verifiziert ihn über den RevenueCat-Webhook, und der Server entscheidet, was der Workspace nutzen darf.

Käufe bleiben in der ersten Vorschau deaktiviert (`EXPO_PUBLIC_MOBILE_PURCHASES_PROVIDER=off`). Echte Kauf- und Wiederherstellungstests benötigen einen EAS-Entwicklungsbuild, weil Expo Go das native Kaufm-Modul nicht ausführen kann.

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


## EAS Build + Submit

`eas.json` liefert drei Profile: `development` baut einen Dev-Client für den iOS-Simulator, `preview` baut ein internes Android-APK für Tester und `production` baut die Store-Binärdateien mit automatisch erhöhten Versionen und einem Play-Internal-Track-Submit-Schritt.

Builds laufen in Expos Cloud, sodass Sie kein lokales Xcode oder Android Studio benötigen, um Binärdateien zu erzeugen — nur um Simulatoren auf Ihrem eigenen Computer auszuführen.

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


## Gemeinsame Pakete

`@supastack/ui-native` trägt die plattformübergreifenden View-Models — `createEntitlementCard` wandelt den Server-Entitlement-Status in einen einheitlichen Kartenvertrag um — und `@supastack/design-tokens` trägt die Themenwerte. Nur diese beiden gemeinsamen Pakete werden im Mobile-Checkout mitgeliefert; die Server-Pakete liegen beim Web-Backend.


## Verifizierungs-Tooling

Deterministische Vitest-Suiten decken Sitzungsspeicher, Deep Links, Chat-Streaming und -Abbruch, Entitlements, Käufe, den Offline-Cache und das Benachrichtigungs-Routing ab — sie laufen auf Ihrem Computer ohne Gerät. Nur natives Verhalten wie die App-Sperre, Push-Zustellung und Store-Käufe wird stattdessen in einem EAS-Entwicklungsbuild verifiziert.

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


## Weiter

[Mobile App ausführen](https://supastack.dev/de/docs/mobile/local-setup.md)
