Was ist Expo? React-Native-Framework, EAS Build und Updates
Expo ist ein React-Native-Framework mit SDK, Expo Router sowie EAS-Cloud-Builds und -Updates. So funktioniert es und so testen Sie sein Backend unter Last.
Was ist Expo?
Expo ist ein Open-Source-Framework zum Entwickeln von React-Native-Apps für Android und iOS. Es liefert das Projekt-Grundgerüst, eine Bibliothek fertiger nativer Module (das Expo SDK), dateibasiertes Routing mit Expo Router und über EAS (Expo Application Services) gehostete Builds, Store-Einreichung und Over-the-Air-Updates. Sie schreiben JavaScript oder TypeScript und öffnen Xcode oder Android Studio nur selten.
Expo sitzt auf React Native wie ein Full-Stack-Framework auf einer UI-Bibliothek: React Native zeichnet die nativen Views, Expo legt fest, wie das Projekt aufgebaut, gebaut und ausgeliefert wird.
So funktioniert Expo
- Expo CLI und Dev-Server.
npx expo startliefert Ihr JavaScript-Bundle mit Fast Refresh an Simulator, Emulator oder Smartphone. - Expo Go und Development Builds. Expo Go ist eine fertige App, mit der Sie ein Projekt auf einem Gerät ausprobieren, ohne etwas zu bauen. Sobald Sie nativen Code brauchen, den Expo Go nicht enthält, erstellen Sie einen Development Build Ihrer eigenen App.
- Continuous Native Generation (CNG). Die Ordner
androidundioswerden bei Bedarf per Prebuild aus einer Vorlage und Ihrer Konfiguration erzeugt, statt von Hand gepflegt zu werden. Config-Plugins sind die Funktionen, die diese nativen Projekte während des Prebuilds anpassen. - EAS Build. Ein gehosteter Dienst, der Ihre App-Binaries baut. iOS-Builds laufen auf macOS-Runnern in der Expo-Cloud, mit
eas build --localbauen Sie stattdessen auf dem eigenen Rechner. - EAS Update. Liefert Änderungen an JavaScript, Styling und Bildern zwischen zwei Store-Releases per Over-the-Air-Update an Apps, die
expo-updatesenthalten.
Beispiel: von null zur laufenden App
npx create-expo-app@latest my-app
cd my-app
npx expo startDanach beschreiben Sie Ihre Build-Profile in eas.json und bauen und aktualisieren im Terminal:
{
"build": {
"preview": { "distribution": "internal" },
"production": {}
}
}eas build --platform all --profile production
eas update --branch production --message "Fix login copy"Ein Update kann nur ändern, was im JavaScript-Bundle liegt. Nativer Code, native Abhängigkeiten, Berechtigungsänderungen und Expo-SDK-Upgrades brauchen ein neues Binary aus EAS Build, und Updates werden nur an Builds mit kompatiblem nativem Code ausgeliefert.
Managed vs. Bare Workflow: eine veraltete Unterscheidung
Ältere Anleitungen teilen Expo in einen Managed Workflow (nur JavaScript) und einen Bare Workflow (Sie besitzen die nativen Ordner). Die Expo-Dokumentation bezeichnet diese Konzepte inzwischen als veraltet: Jedes Expo-Projekt nutzt Continuous Native Generation, eigener nativer Code kommt über Config-Plugins oder lokale native Module hinein. Wenn ein Tutorial Sie zum „Ejecten“ auffordert, ist es älter als diese Umstellung.
Expo vs. React Native CLI
| Aspekt | Expo | React Native CLI |
|---|---|---|
| Projekt-Setup | Ein Befehl, native Ordner werden erzeugt | Sie legen die nativen Projekte an und pflegen sie |
| Nativer Code | Config-Plugins, Development Builds, lokale Module | Direkte Änderungen in Xcode und Android Studio |
| Builds | EAS Build (gehostet) oder lokal | Lokal mit Xcode und Gradle, eigene CI |
| Over-the-Air-Updates | EAS Update | Separater Dienst zum Einbinden |
Häufige Fehler mit Expo
- Geheimnisse in
EXPO_PUBLIC_-Variablen. Expo schreibt sie fest in das JavaScript-Bundle, und laut Dokumentation sind sie in der kompilierten App im Klartext sichtbar. Alles Geheime gehört ins Backend. - Erwarten, dass ein Over-the-Air-Update native Änderungen ausliefert. Ein neues natives Modul oder eine neue Berechtigung bedeutet einen neuen Build und ein Store-Release.
- Nur in Expo Go testen. Dort fallen Probleme nicht auf, die erst mit Ihren eigenen nativen Abhängigkeiten in einem Development- oder Release-Build auftreten.
- Die App für das ganze Produkt halten. Ein schneller Screen wartet trotzdem auf eine langsame API. Die meisten Meldungen „die App ist langsam“ enden im Backend.
Expo und Lasttests fürs Backend
Eine Expo-App ist ein Client. Jeder Login, jedes Feed-Update und jeder Checkout ruft Ihre API-Endpunkte auf, und ein Store-Release oder eine Push-Benachrichtigung kann Tausende Nutzer in derselben Minute dorthin schicken. Diese Last berührt Expo nie, sie muss im Backend mit einem Lasttest geprüft werden, zusätzlich mit API-Tests für die Korrektheit.
LoadFocus führt JMeter- und k6-Skripte aus über 25 Cloud-Regionen aus, siehe Lasttests und JMeter-Lasttests. Um dieselben Endpunkte zwischen Releases zu beobachten, nutzen Sie API-Monitoring. Praxisbeispiele finden Sie in wie Cloud-Lasttests die Ladezeiten einer Mobile-App verbessert haben und warum Mobile-First-Teams Performance-Tests priorisieren sollten (beide Artikel auf Englisch).
Häufige Fragen zu Expo
Ist Expo kostenlos?
Das Framework und das SDK sind Open Source. EAS ist ein gehosteter Dienst mit kostenlosem Tarif und kostenpflichtigen Plänen. Die Kontingente ändern sich, prüfen Sie daher die Preisseite von Expo, bevor Sie mit einer Zahl planen.
Expo oder React Native CLI?
Die meisten neuen Projekte starten mit Expo, weil Setup, Builds und Updates abgenommen werden. Die React Native CLI passt, wenn Sie die nativen Projekte von Anfang an selbst besitzen wollen.
Kann eine Expo-App jedes native Modul nutzen?
Ja, wenn das Modul mit Config-Plugins funktioniert oder Sie es in einen Development Build aufnehmen. Expo Go enthält nur die Module, die es mitbringt.
Was ist der Unterschied zwischen EAS Build und EAS Update?
EAS Build kompiliert das App-Binary (.ipa oder .apk/.aab). EAS Update ersetzt JavaScript, Styling und Bilder in einer installierten App ohne neues Binary.
Brauche ich für Updates weiterhin die Prüfung durch die App Stores?
Over-the-Air-Updates müssen die Regeln von Apple und Google einhalten. Verhaltensänderungen können weiterhin eine Prüfung erfordern, lesen Sie die Store-Richtlinien also regelmäßig.
Wie führe ich einen Lasttest für das Backend einer Expo-App durch?
Ermitteln Sie die API-Aufrufe der App, schreiben Sie sie als JMeter- oder k6-Skript und lassen Sie sie aus mehreren Regionen mit Ihrer erwarteten Spitzenlast laufen. Starten Sie mit einem kostenlosen LoadFocus-Konto.
Verwandte Begriffe
Verwandte LoadFocus-Tools
Setze dieses Konzept mit LoadFocus in die Praxis um, derselben Plattform, die alles antreibt, was du gerade gelesen hast.