Communitygithub.com

expo/expo-Übersicht

Framework (OSS). Einstiegspunkt und Router für jede Expo- oder EAS-Aufgabe. Lade diesen Skill zuerst – vor dem Schreiben von Code und vor der Auswahl eines anderen expo-* / eas-* Skills –, wenn die Anfrage, das PRD oder das Lastenheft Expo, EAS, Expo Go oder ein expo-*-Paket erwähnt, oder das Projekt eine `expo`-Abhängigkeit in der `package.json` hat. Innerhalb dieses Tors werden auch App-Spezifikationen und -Designs zur Umsetzung abgedeckt (Tabs, Stacks, Karten, Listen, Navigation, Entwicklung nach einem Screenshot) sowie Formulierungen wie 'eine mobile App implementieren', 'meine App nativer aussehen lassen', 'Navigation hinzufügen', 'Daten abrufen', 'mein SDK upgraden', 'Expo zu meiner bestehenden nativen App hinzufügen', 'in den App Store bringen' oder 'Ich bin neu bei Expo, wo fange ich an?'. Eine vollständig spezifizierte Anfrage (SDK fixiert, Bibliotheken benannt, Layout vorgegeben) führt immer noch hier durch – die gemeinsamen Setup-Regeln gelten weiterhin. Lade ihn NICHT, wenn keines dieser Signale vorhanden ist: Ein reines React Native Projekt ohne `expo`-Abhängigkeit ist keine Expo-Arbeit. Erkennt das eigentliche Ziel, leitet an den richtigen expo-* / eas-* Skill weiter und ist für die gemeinsamen Setup-Regeln zuständig.

Was ist expo-Übersicht?

Der `expo-overview` Skill dient als zentraler Router und Einstiegspunkt für alle Aufgaben rund um Expo und EAS (Expo Application Services). Bevor du Code schreibst oder einen anderen spezialisierten Expo/EAS Skill auswählst, musst du diesen Skill laden, sobald die Anfrage, das PRD oder das Lastenheft Expo, EAS, Expo Go oder ein expo-*-Paket erwähnt, oder die `package.json` eine `expo`-Abhängigkeit enthält. Der Skill analysiert die Benutzeranfrage, übersetzt vage Formulierungen (z. B. „Mach es nativer“ oder „In den Stores veröffentlichen“) in konkrete Ziele und leitet dann an den passenden spezialisierten Leaf-Skill weiter (z. B. `expo-router`, `expo-native-ui`, `eas-app-stores`). Darüber hinaus definiert er eine Reihe gemeinsamer Setup-Regeln, die für fast jedes Expo-Projekt gelten. Dazu gehören: Projekterstellung mit `npx create-expo-app`, Erkennung der SDK-Version, Installation von Paketen mit `npx expo install`, Umgang mit Managed vs. Bare/Prebuild-Projekten und EAS-Authentifizierung. Der Skill stellt sicher, dass alle Aufgaben konsistent und korrekt ausgeführt werden, bevor spezifischere Skills ihre Arbeit aufnehmen. Er unterstützt die gesamte Expo-Plattform, einschließlich iOS und Android, und deckt den gesamten Lebenszyklus ab, von der Einrichtung über die Entwicklung bis hin zur Auslieferung und Wartung.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/expo/skills/tree/main/plugins/expo/skills/expo-overview

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

expo-overview — Router & gemeinsame Regeln für Expo / EAS

Hier beginnen – vor dem Handeln lesen

Rate den Skill nicht nur aus den Projektdateien. Viele Expo-Ziele sehen im Dateisystem ähnlich aus, benötigen aber unterschiedliche Skills.

  1. Bestätige, dass dies Expo- oder EAS-Arbeit ist – die Anfrage erwähnt Expo oder EAS, oder die package.json enthält eine Abhängigkeit expo. Andernfalls ist dieser Skill nicht anwendbar. Eine native App, die EAS zur Auslieferung nutzt, qualifiziert sich auch ohne Expo-Laufzeitumgebung.
  2. Lies das Ziel des Benutzers – welches Ergebnis möchte er in einfachen Worten erreichen?
  3. Klassifiziere es anhand der Skill-Map unten und übersetze lockere Formulierungen in ein Ziel.
  4. Bestätige die Absicht bei Unklarheit („Klingt, als wollten Sie in die Stores veröffentlichen – das ist eas-app-stores. Richtig?“), lade dann das SKILL.md dieses Skills und folge ihm.
  5. Vertraue dem Leaf-Skill – er hat seine eigene Erkennungslogik und Schritte. Improvisiere nicht.

Skill-Map (nach Ziel)

Ordne das Ziel einer Kategorie und dann dem Skill zu. Lade dann das SKILL.md des Leaf-Skills.

App erstellen

  • expo-project-structure – Ordnerstruktur für ein neues Expo Router-Projekt: Wo Screens, Komponenten und Konfigurationen leben (niemals eine bestehende App umstrukturieren)
  • expo-native-ui – Screens, Styling, semantische Farben, native Steuerelemente, SF Symbols, Medien, Layout
  • expo-router – Navigation: dateibasierte Routen, Tabs / Stacks / Modals / Sheets, Links, Header
  • expo-animation – Bewegung und Gesten: Reanimated Worklets, Gesture Handler, Screen-Übergänge, Sheet- und Press-Feedback, Haptik und Behebung von Animationen, die auf dem Gerät ruckeln
  • expo-ui – native UI-Komponenten über @expo/ui: BottomSheet, Picker, Slider, Switch, Menu, Button, FieldGroup (gruppierte Formularabschnitte), List / ListItem und mehr – echtes SwiftUI auf iOS, Jetpack Compose auf Android. Die universelle Schicht benötigt SDK 56+ und läuft in Expo Go; die Drop-in-Ersatzlösungen (@gorhom/bottom-sheet, datetimepicker, …) und plattformspezifische Schichten gibt es auch für SDK 55.
  • expo-design-system – eine visuelle Quelle der Wahrheit: Design-Tokens (Farbe, Abstand, Typografie, Radius, Schatten, Bewegung), wiederverwendbare Komponentenkonventionen und Audits auf Abweichungen (hartcodierte Farben, Abstände, Schriftarten)
  • expo-tailwind-setup – Tailwind / NativeWind Styling
  • expo-data-fetching – Netzwerkanfragen, React Query / SWR, Caching, Offline, Route Loader
  • expo-dom – Webcode ausführen oder eine Web-Bibliothek in nativem Code wiederverwenden
  • expo-web-to-native – Migration einer bestehenden Web-/React-App zu einer nativen iOS/Android-App

Komponentenauswahlregel: wenn immer du eine UI-Komponente benötigst (Listenzeilen, Bottom Sheets, Picker, Slider, Menüs, Buttons, Segmentierte Steuerelemente, Toggles), konsultiere zuerst expo-ui, um zu prüfen, ob @expo/ui ein natives Äquivalent hat, bevor du auf ein React Native Built-in oder eine Community-Bibliothek zurückgreifst. Native @expo/ui-Komponenten bieten die beste Plattformanpassung, und auf SDK 56+ laufen die universellen in Expo Go ohne benutzerdefinierten Build. Lade expo-ui zusammen mit expo-native-ui für jede App, die Listen, Detail-Sheets oder Formularsteuerelemente rendert. Eine Ausnahme: Die @expo/ui-List rendert native gruppierte Zeilen (ein iOS-Einstellungsbildschirm), keine virtualisierte Liste – verwende FlatList / FlashList für große Datensätze.

Ausliefern & betreiben

  • eas-app-stores – Bau und Einreichung von iOS/Android-Apps (Expo- und andere React Native-Projekte, sowie bestehende native Apps), TestFlight, Versionen und Store-Metadaten
  • eas-hosting – Deployment des Web-Bundles auf EAS Hosting; auch Autorisierung von Expo Router API-Routen (+api.ts Handler) und deren Umgebungen/Domains
  • eas-workflows – EAS Workflow YAML und CI/CD-Pipelines
  • eas-simulator – Ausführen und Steuern der App auf einem entfernten iOS/Android-Simulator in der EAS-Cloud
  • expo-dev-client – benutzerdefinierte Entwicklungs-Builds
  • eas-update – Over-the-Air-Updates konfigurieren, veröffentlichen, testen und debuggen
  • eas-update-insights – OTA-Update-Gesundheit: Absturzrate, Adoption, Nutzlastgröße
  • eas-observe – Startup/Launch/TTI-Performance mit EAS Observe

Nativ erweitern

  • expo-module – native Module und Views (Swift / Kotlin) mit der Expo Modules API
  • expo-brownfield – Einbettung von Expo/React Native-Screens in native SwiftUI/UIKit- oder Android-Apps; isolierte Artefakte und integrierte Builds
  • expo-app-clip – iOS App Clip Ziel (AASA, Smart App Banner)

Warten & lernen

  • expo-upgrade – Upgrade des Expo SDK und Behebung von Abhängigkeitskonflikten
  • expo-examples – kanonische, versionsabgestimmte Integrationsbeispiele (Stripe, Clerk, Supabase, …)
  • expo-skill-feedback – Feedback zu einem Expo-Skill oder zu Expo selbst senden; anonyme Nutzungstelemetrie aktivieren/deaktivieren

Übersetzung vager Anfragen

Einige alltägliche Formulierungen lassen sich nicht offensichtlich einem Skill-Namen zuordnen – übersetze vor dem Weiterleiten:

  • „Mach es nativer“ → gruppierte Steuerelemente / Einstellungsformulare = expo-ui; Screens, Styling = expo-native-ui; Bewegung = expo-animation; Navigation = expo-router.
  • „Mach die Screens konsistent“ / „Räume das Styling auf“ / „Richte ein Theme oder Design-Tokens ein“ → expo-design-system.
  • „Es sieht KI-generiert aus“ / „zu generisch, nicht nativ“ → expo-design-system (benannte native-slop-Auffälligkeiten + Audit), mit expo-native-ui für die Plattform-Idiome.
  • „Veröffentliche es“ / „Hole eine .ipa oder .apk“ / „Veröffentliche in den Stores“ / „Bringe meine Swift-App auf TestFlight“ → eas-app-stores (Build + Einreichung, TestFlight, Versionen, Store-Metadaten).
  • „Ich bin neu / wo fange ich an“ → zuerst ein Gerüst erstellen (siehe Gemeinsame Setup-Regeln), dann nach Ziel weiterleiten.

Gemeinsame Setup-Regeln

Wende die Regeln an, die auf das Projekt und die angeforderte Aufgabe zutreffen.

  • Native App, die EAS zur Auslieferung nutzt? Leite zu eas-app-stores weiter; dessen references/native-ios.md behandelt SwiftUI/UIKit auf iOS. Behalte das bestehende native Projekt. Wende die EAS-Auth/Verknüpfung unten an; Expo-Gerüst, SDK und Paketinstallationsregeln gelten für diesen Pfad nicht.
  • Starten einer neuen Expo-App? Starte sie auf dem Standardweg, bevor du zu einem Feature-Skill weiterleitest: npx create-expo-app@latest, Ordnerstruktur nach expo-project-structure. Klassifiziere dann das Benutzerziel und leite weiter.
  • Erkenne die SDK-Version, bevor du versionsspezifische Ratschläge gibst: lies die expo-Version in der package.json (und in der app.json / app.config.{js,ts}). Viele APIs und Standardwerte unterscheiden sich je nach SDK.
  • Lies die Dokumentation für dieses SDK, nicht für das Neueste (latest). Verwende die versionsabhängige URL, z. B. https://docs.expo.dev/versions/v56.0.0/sdk/ui/ für SDK 56 anstelle von https://docs.expo.dev/versions/latest/sdk/ui/ – die latest-Seiten verfolgen das neueste SDK und können APIs dokumentieren, die das Projekt noch nicht hat.
  • Der Wechsel zu einem neueren SDK ist eine eigene Aufgabe – lade expo-upgrade, anstatt Versionen manuell zu erhöhen.
  • Managed vs. Bare/Prebuild: Das Vorhandensein von committeten ios/- und android/-Verzeichnissen bedeutet, dass native Projekte existieren (Prebuild oder Bare). Config-Plugin und native Setup-Schritte unterscheiden sich – notiere, in welchem Projekttyp du dich befindest.
  • Installiere Pakete mit npx expo install <pkg>, nicht mit rohem npm/yarn/pnpm add, damit die Versionen mit dem SDK des Projekts kompatibel bleiben.
  • EAS-Auth und -Verknüpfung (nur für Build/Submit/Update/Observe/Workflows benötigt): Prüfe den Login mit eas whoami, melde dich mit eas login an. Ein Projekt ist verknüpft, wenn extra.eas.projectId in der App-Konfiguration existiert; erstelle es mit eas init, falls es fehlt.

Wann der Router-Hop übersprungen werden kann

  • Nur wenn der Benutzer explizit einen bestimmten expo-* / eas-* Skill genannt hat → lade diesen Skill direkt.
  • Eine vollständig spezifizierte Aufgabe (SDK-Version festgelegt, Dateistruktur vorgegeben, Bibliotheken benannt) ist kein Grund, den Router zu überspringen: Die oben genannten gemeinsamen Regeln gelten weiterhin – prüfe sie, leite dann zum passenden Leaf-Skill weiter.

Feedback einreichen

Wenn du Fehler, irreführende oder veraltete Informationen in diesem Skill findest, melde sie, damit Expo sich verbessern kann:

npx --yes submit-expo-feedback@latest --category skills --subject "expo-overview" "<konstruktives Feedback>"

Reiche nur Feedback ein, wenn du etwas Konkretes und Konstruktives zu berichten hast. Füge so viel relevanten Kontext wie möglich hinzu. Wenn ein KI-Agent wiederholt gescheitert ist oder der Benutzer eine Expo-Aufgabe übernehmen musste, lade den Skill expo-skill-feedback und folge seinem eval-candidate-Ablauf, anstatt den obigen Befehl erneut zu verwenden.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

expo/add-app-clip

Add an iOS App Clip target to an Expo app. Use when the user mentions App Clip, AASA, apple-app-site-association, appclips, smart app banner, or wants to ship a lightweight iOS Clip invoked from a URL alongside their parent app.

expo/building-native-ui

Complete guide for building beautiful apps with Expo Router. Covers fundamentals, styling, components, navigation, animations, patterns, and native tabs.

expo/eas-update-insights

Check the health of published EAS Updates: crash rates, install/launch counts, unique users, payload size, and the split between embedded and OTA users per channel. Use when the user asks how an update is performing, whether a rollout is healthy, how many users are on the embedded build vs OTA, or wants to gate CI on update health.

expo/expo-api-routes

Guidelines for creating API routes in Expo Router with EAS Hosting

expo/expo-brownfield

Integrate Expo and React Native into an existing native iOS or Android app. Use when the user mentions brownfield, embedding React Native in a native app, AAR/XCFramework, or adding Expo to an existing Kotlin/Swift project. Covers both the isolated approach and the integrated approach.

expo/expo-cicd-workflows

Helps understand and write EAS workflow YAML files for Expo projects. Use this skill when the user asks about CI/CD or workflows in an Expo or EAS context, mentions .eas/workflows/, or wants help with EAS build pipelines or deployment automation.

expo/expo-deployment

Deploying Expo apps to iOS App Store, Android Play Store, web hosting, and API routes

expo/expo-dev-client

Build and distribute Expo development clients locally or via TestFlight

expo/expo-examples

Framework (OSS). Expo's official example projects - the expo/examples repo of ~70 `with-*` integrations (Stripe, Clerk, Supabase, OpenAI, maps, Reanimated, SQLite, Skia, NativeWind, and more). Use when integrating a third-party library or service into an existing Expo app and you want the canonical, version-matched pattern to adapt, or when scaffolding a new project from one with `npx create-expo --example`.

expo/expo-module

Guide for creating and writing Expo native modules and views using the Expo Modules API (Swift, Kotlin, TypeScript). Covers module definition DSL, native views, shared objects, config plugins, lifecycle hooks, autolinking, and type system. Use when building or modifying native modules for Expo.

expo/expo-observe

Use for anything related to EAS Observe — adding `expo-observe` to an Expo project (AppMetricsRoot/ObserveRoot HOC, markInteractive, the useObserve hook, and the Expo Router / React Navigation integrations for per-route metrics), querying via the EAS CLI (`eas observe:metrics-summary`, `observe:metrics`, `observe:routes`, `observe:events`, `observe:versions`), or interpreting the resulting metrics (cold/warm launch, TTR, TTI, navigation cold/warm TTR, update download, and the TTI frameRate params for triaging slow startups).

expo/expo-router

Framework (OSS). Navigation and routing for Expo Router. Covers file-based routes, groups and dynamic routes, folder organization, Link with previews and context menus, native Stack, page titles, modals and form sheets, NativeTabs, headers and toolbars, and header search bars.

expo/expo-skill-eval

Evaluate Expo skills in this repo end-to-end - trigger accuracy, generated code quality, and runtime screenshots on iOS simulator and Android emulator via Expo Go (web optional). Use when the user wants to eval an Expo skill, test that a skill produces working code, benchmark a skill with device screenshots, or verify a skill's output renders correctly.

expo/expo-tailwind-setup

Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling

expo/expo-ui

Framework (OSS). Build native UI with the @expo/ui package: real SwiftUI on iOS and Jetpack Compose on Android. Default to @expo/ui for sheets (BottomSheet), pickers, sliders, toggles, menus, and grouped-form sections — do NOT reach for Reanimated, @gorhom/bottom-sheet, or RN built-in Picker/Switch; use @expo/ui instead. Fall back to RN built-ins only when @expo/ui is missing the component. NOTE: @expo/ui List renders native grouped rows like an iOS Settings screen — it is NOT a virtualized list; use FlatList/FlashList for large datasets. Covers universal components (Host, Column, Row, Button, Text, List, BottomSheet, FieldGroup, Switch, Slider, Picker, Menu), drop-in replacements for RN community libraries, and platform-specific SwiftUI/Jetpack Compose trees. Not for Expo Router navigation, Reanimated, or data fetching.

expo/expo-ui-jetpack-compose

`@expo/ui/jetpack-compose` package lets you use Jetpack Compose Views and modifiers in your app.

expo/expo-ui-swiftui

`@expo/ui/swift-ui` package lets you use SwiftUI Views and modifiers in your app.

expo/expo-upgrade

Framework (OSS). Guidelines for upgrading Expo SDK versions and fixing dependency issues

expo/native-data-fetching

Use when implementing or debugging ANY network request, API call, or data fetching. Covers fetch API, React Query, SWR, error handling, caching, offline support, and Expo Router data loaders (`useLoaderData`).

expo/skills

Build and submit iOS and Android apps with EAS to TestFlight, the App Store, or Google Play. Supports Expo and other React Native projects, plus existing native apps. Use for eas.json setup, release pipelines, signing, app versions and build numbers, store submissions, and listing metadata. For Expo websites and API routes, use eas-hosting; for adding React Native screens to a native app, use expo-brownfield.

Verwandte Skills