Zum Inhalt springen
supastack
Dokumentation durchstöbern
MobilExpo

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 /de/docs/mobile/tech-stack.md (or send Accept: text/markdown).

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.

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.

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.

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.

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.

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