CommunityCodierung & Entwicklunggithub.com

Expo Beispiele

Offizielle Beispielprojekte von Expo – das expo/examples-Repo mit ~70 `with-*`-Integrationen (Stripe, Clerk, Supabase, OpenAI, Karten, Reanimated, SQLite, Skia, NativeWind u.v.m.). Verwenden Sie es, wenn Sie eine Drittanbieterbibliothek oder einen Dienst in eine bestehende Expo-App integrieren und das kanonische, versionsabgestimmte Muster übernehmen möchten, oder wenn Sie ein neues Projekt mit `npx create-expo --example` aus einem Beispiel erstellen möchten.

Was ist Expo Beispiele?

Der Skill **expo/expo-examples** ist die offizielle Sammlung von etwa 70 Integrationsbeispielen aus dem GitHub-Repository `expo/examples`. Diese Beispiele sind keine vollständigen Apps, sondern minimalistische Managed-Projekte mit einer einzigen Bildschirmseite und 100–200 Zeilen Code. Sie zeigen das kanonische Muster für die Integration einer bestimmten Bibliothek (z. B. Stripe, Clerk, Supabase) in einer Expo-Umgebung, einschließlich der Abhängigkeiten, Konfigurations-Plugins in `app.json`, Dateistruktur und Umgebungsvariablen. Der Skill arbeitet in zwei Modi: Im **Inspirationsmodus** analysiert ein KI-Assistent das passende Beispiel, extrahiert das Integrationsmuster und fügt es nicht-destruktiv in das bestehende Projekt des Benutzers ein. Im **Scaffold-Modus** wird ein brandneues Projekt direkt mit `npx create-expo --example <name>` erstellt. Der Skill enthält detaillierte Workflows zum Auffinden des richtigen Beispiels (über die Live-Liste, `meta.json` und `catalog.md`), zum effizienten Lesen verschachtelter Integrationsdateien (mittels `gh api` oder `degit`) und zur versionskorrekten Übernahme der Abhängigkeiten und Konfigurationen, ohne die bestehende Projektstruktur des Benutzers zu überschreiben. Er unterstützt Plattformen wie Claude Code, Cursor und Codex und ist Teil der Expo-Entwicklungswerkzeuge.

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

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht Expo Beispiele?

expo/examples ist die offizielle Bibliothek von Expo mit etwa 70 Integrationsbeispielen – Verzeichnisse namens with-<Bibliothek> (z.B. with-stripe, with-maps), jedes aufgebaut um eine Bibliothek oder einen Dienst. Es handelt sich nicht um vollständige Apps: Es sind verwaltete Projekte (keine ios//android/-Verzeichnisse – die native Einrichtung erfolgt über Konfigurations-Plugins), und ein typisches Beispiel besteht aus einem einzigen Bildschirm mit ~100–200 Zeilen. Nutzen Sie sie als Quelle für das kanonische IntegrationsMuster – die Abhängigkeiten, app.json-Konfigurations-Plugins und die minimale Verdrahtung, die Expo im aktuellen SDK pflegt – und passen Sie dieses an die App des Benutzers an. Erwarten Sie nicht, daraus eine Anwendungsarchitektur ableiten zu können.

Greifen Sie zu einem Beispiel, bevor Sie eine Integration von Hand schreiben. (Arten – Full-Stack, Vorzeigeprojekte, Starter – sind in ./references/catalog.md vermerkt.)

Zwei Modi

  1. Inspiration/Anpassung (am häufigsten) – der Benutzer hat bereits ein Projekt. Finden Sie das passende Beispiel, lesen Sie seine Schlüsseldateien und übertragen Sie das Muster auf seinen Code.
  2. Scaffolding – Neuanfang. Starten Sie ein frisches Projekt direkt aus dem Beispiel.

Arbeitsablauf

1. Das richtige Beispiel finden

Ordnen Sie das Bedürfnis des Benutzers einem Beispielnamen zu (z.B. Zahlungen → with-stripe, Authentifizierung → with-clerk). ./references/catalog.md ist eine kategorisierte Momentaufnahme für eine schnelle Sichtung – sie kann jedoch veralten, daher bestätigen Sie anhand der Live-Liste:

# Live-Beispielnamen:
gh api repos/expo/examples/contents --jq '.[] | select(.type=="dir" and (.name|startswith(".")|not)) | .name'
# Aliase (umbenannt) + veraltete (tote/verschobene) Beispiele – vor der Empfehlung prüfen:
gh api repos/expo/examples/contents/meta.json --jq '.content' | base64 -d

meta.json ist die Quelle der Wahrheit für umbenannte oder tote Beispiele (veraltete Beispiele werden aus dem Repository-Baum entfernt, sind aber hier noch aufgeführt, jeweils mit einer message). Wenn ein Beispiel in der deprecated-Map enthalten ist, empfehlen Sie es nicht – folgen Sie der message zum aktuellen Pfad. Wenn es in aliases enthalten ist, verwenden Sie das destination.

2a. Inspirationsmodus – studieren, ohne das Projekt des Benutzers zu berühren

Der häufigste Fall: Der Benutzer hat bereits eine App und möchte sehen, wie Expo etwas macht. Lesen Sie das Beispiel als Referenz und übertragen Sie die Muster von Hand – überschreiben Sie niemals das vorhandene Projekt des Benutzers mit einem Beispiel.

Listen Sie zunächst das gesamte Beispiel in einem Aufruf auf. Integrationscode ist oft verschachtelt (z.B. liegen die Server-Routen von Stripe in app/api/), daher würden mit einer einstufigen Auflistung wichtige Dateien fehlen:

gh api 'repos/expo/examples/git/trees/master?recursive=1' \
  --jq '.tree[].path | select(startswith("with-stripe/"))'

Lesen Sie dann zuerst die aufschlussreichen Dateien: README.md (Einrichtung) → package.json (Abhängigkeiten) → app.json (Konfigurations-Plugins/Berechtigungen) → den Integrationscode, den das Manifest enthüllt hat → .env (erforderliche Geheimnisse). Pro Datei:

gh api repos/expo/examples/contents/with-stripe/utils/stripe-server.ts --jq '.content' | base64 -d
# Kein gh? Raw-URL (Branch ist master):
curl -s https://raw.githubusercontent.com/expo/examples/master/with-stripe/utils/stripe-server.ts

Müssen mehr als ein paar Dateien gelesen werden? Viele Integrationen verteilen sich auf Server-Routen, einen Client-Provider und die Konfiguration (Stripe ist so). Überspringen Sie die dateiweisen Aufrufe – ziehen Sie das gesamte Beispiel in ein temporäres/gitignoriertes Verzeichnis (nicht das Benutzerprojekt) und lesen Sie es mit Grep/Read frei, um es dann von Hand zu übertragen:

npx degit expo/examples/with-stripe /tmp/expo-ref/with-stripe   # saubere Kopie, keine Git-Historie
# Fallback ohne degit (sparse-checkout, kein vollständiger ~64 MB Clone):
git clone --depth 1 --filter=blob:none --sparse https://github.com/expo/examples.git /tmp/expo-ref/examples \
  && (cd /tmp/expo-ref/examples && git sparse-checkout set with-stripe)

Lesen Sie von dort mit Grep/Read; löschen Sie das temporäre Verzeichnis nach Abschluss.

2b. Scaffolding-Modus – neues Projekt aus einem Beispiel

npx create-expo --example with-stripe   # Kurzform:  npx create-expo -e with-stripe
bun create expo --example with-stripe    # mit bun

3. In die App des Benutzers einfügen – zerstörungsfrei (entscheidend)

Wenn der Benutzer bereits eine App hat, fügen Sie nur das hinzu, was das Beispiel einführt; überschreiben Sie niemals seine Einrichtung.

  • Version angleichen – keine festen Versionen kopieren. Beispiele folgen dem aktuellen SDK, daher stimmen ihre package.json-Pins nicht mit einem älteren Projekt überein. Fügen Sie nur die fehlenden Abhängigkeiten mit npx expo install <pkg> hinzu (es löst SDK-korrekte Versionen auf), anstatt exakte Versionen zu kopieren.
  • Konfiguration zusammenführen, nicht ersetzen. Fügen Sie nur die app.json/app.config.*-Plugins und -Berechtigungen hinzu, die das Beispiel einführt und die dem Benutzer fehlen – behalten Sie seinen vorhandenen Konfigurationsblock intakt.
  • Integrationscode übertragen.
  • Umgebungsvariablen aus der .env-Struktur des Beispiels neu erstellen – sie enthält Platzhalter, keine funktionierenden Geheimnisse.

Fertig, wenn der Integrationscode übertragen ist und jede Abhängigkeit, jedes Konfigurations-Plugin, jede Berechtigung und jede Umgebungsvariable, die er benötigt, in der App des Benutzers vorhanden ist – nicht, wenn es nur so aussieht, als sei alles verdrahtet.

Fallstricke

  • Der Standard-Branch ist master, nicht main (wichtig für Raw-URLs und sparse checkout).
  • Single-Click-Deployment. Jedes Beispiel hat eine Start-URL: https://launch.expo.dev/?github=https://github.com/expo/examples/tree/master/<beispiel>.

Verwandte Skills

  • Native UI-Komponenten (@expo/ui Paket) → expo-ui
  • Styling und naturschöne Bildschirme → expo-native-ui
  • Navigation und Routing → expo-router
  • Erstellen eines nativen Moduls → expo-module
  • SDK-Upgrade vor der Übernahme eines auf dem neuesten SDK basierenden Beispiels → expo-upgrade

Referenzen

  • ./references/catalog.md – kategorisierte Momentaufnahme der Beispielbibliothek für schnelle Sichtung.

Feedback einreichen

Wenn Sie Fehler, irreführende oder veraltete Informationen in diesem Skill finden, melden Sie es, damit Expo es verbessern kann:

npx --yes submit-expo-feedback@latest --category skills --subject "expo-examples" "<konkretes Feedback>"

Reichen Sie dies nur ein, wenn Sie etwas Konkretes und Umsetzbares zu berichten haben. Fügen Sie so viel relevanten Kontext wie möglich hinzu. Wenn ein KI-Assistent wiederholt fehlschlug oder der Benutzer eine Expo-Aufgabe übernehmen musste, laden Sie den Skill expo-skill-feedback und folgen Sie dessen 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-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-overview

Framework (OSS). Entry point and router for every Expo or EAS task. Load this skill first — before writing code and before choosing another expo-* / eas-* skill — when the request, PRD, or spec mentions Expo, EAS, Expo Go, or an expo-* package, or the project has an `expo` dependency in `package.json`. Within that gate it also covers app specs and designs to implement (tabs, stacks, maps, lists, navigation, building from a screenshot), and phrasings like 'implement a mobile app', 'make my app look native', 'add navigation', 'fetch some data', 'upgrade my SDK', 'add Expo to my existing native app', 'ship to the App Store', or 'I'm new to Expo, where do I start'. A fully specified request (SDK pinned, libraries named, layout given) still routes through here — the shared setup rules still apply. Do NOT load it when neither signal is present: a bare React Native project with no `expo` dependency is not Expo work. Detects the real goal, routes to the right expo-* / eas-* skill, and owns the shared setup rules.

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