Przejdź do treści
Biblioteka skilli
Programowanie · Nauka i wyjaśnianie

rn-fundamentals

/rn-fundamentals

Ustala podstawowe wybory na początku zadania React Native lub Expo: Expo managed workflow, najnowszy SDK z nową architekturą, TypeScript i npm, oraz wyjaśnia Fabric, Hermes i JSI.

Repozytorium
dev-flow ↗
Licencja
MIT
Ostatnia zmiana repozytorium
22.10.2026

Ocena i bezpieczeństwo

90/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść25 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
7
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
4
Przestarzałość

Brak sygnałów. Repozytorium zmienione 22.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Ustala podstawowe wybory na początku zadania React Native lub Expo: Expo managed workflow, najnowszy SDK z nową architekturą, TypeScript i npm, oraz wyjaśnia Fabric, Hermes i JSI.

Wyzwalacze z opisu

starting a new RN/Expo projectwhat is the right architecture for an Expo appmanaged vs bare workflowdifferences between RN and React web
Oryginalny opis (EN)

Use at the start of any React Native or Expo task to lock in foundational choices: Expo managed workflow as default, latest Expo SDK with New Architecture ON, TypeScript, npm. Triggers on: "starting a new RN/Expo project", "what is the right architecture for an Expo app", "managed vs bare workflow", questions about Fabric/Hermes/JSI/New Architecture, "differences between RN and React web". Also triggers as a precondition when any other rn-* skill is selected and project setup is unclear. Not for: styling (rn-styling), navigation (rn-expo-router), data (rn-data-fetching).

Jak działa

  1. The 4 non-negotiables
  2. Source of truth (Expo)
  3. Quick decision tree
  4. Common anti-patterns (NEVER do)
  5. Sources
Sekcje z nagłówków SKILL.md, w oryginale · 47 linii, 730 słów
Podgląd SKILL.md
---
name: rn-fundamentals
description: 'Use at the start of any React Native or Expo task to lock in foundational choices: Expo managed workflow as default, latest Expo SDK with New Architecture ON, TypeScript, npm. Triggers on: "starting a new RN/Expo project", "what is the right architecture for an Expo app", "managed vs bare workflow", questions about Fabric/Hermes/JSI/New Architecture, "differences between RN and React web". Also triggers as a precondition when any other rn-* skill is selected and project setup is unclear. Not for: styling (rn-styling), navigation (rn-expo-router), data (rn-data-fetching).'
---

# rn-fundamentals — foundational rules for React Native + Expo

This skill is the prerequisite read for any RN/Expo work. It sets the four non-negotiables and points you to deeper concept material when needed.

## The 4 non-negotiables

1. **Expo managed workflow** is the default. Bare workflow / `react-native init` only if there is a documented native dependency Expo cannot wrap.
2. **Latest stable Expo SDK** — `58.0.14` on 2026-10-17 (`npm view expo dist-tags`; SDK 58 stable since 2026-10-15); `[VERIFY]` at bootstrap time, quarterly cadence. **New Architecture is on and not optional** from SDK 55 onward — do *not* set `newArchEnabled`: it is ignored, and **confirmed absent from `@expo/config-types@58.0.3`'s `ExpoConfig` schema** (2026-10-17) (zero occurrences), so it is not merely discouraged — there is no key to set. Hermes is the engine.
3. **TypeScript** is mandatory. `tsconfig.json` extends **`expo/tsconfig.base`** — confirmed shipping at the root of `expo@58.0.14` (2026-10-17), and it sets `moduleResolution: "bundler"` (which is why relative imports here need no `.js` extension).
   ⚠️ **`blank-typescript` is our choice, not the CLI's default.** From `create-expo-app@4.0.0`'s own help: *"NPM template to use: default, blank, blank-typescript, tabs, bare-minimum. **Default: default**"* — and `default` is the one it labels *"recommended for most app developers"*. Pass `-t blank-typescript` explicitly or you get something else.
4. **npm** is the package manager. ⚠️ This is a **house rule**, not the CLI's preference: `create-expo-app@4.0.0` *resolves* the package manager from your environment — the `--use-npm` / `--use-yarn` / `--use-pnpm` flags are **gone** (zero occurrences in the package). Invoking it with `npx` gets you npm because npx *is* npm, not because the CLI prefers it. No Yarn, no pnpm in this set.
5. ⚠️ **`create-expo-app@4` writes agent files by default** — `AGENTS.md`, `CLAUDE.md` and `.claude/settings.json`, opt out with `--no-agents-md`. On a dev-flow project decide deliberately: a scaffolded `CLAUDE.md` sitting next to `.workflow/` is a second set of instructions nobody reconciled.

## Source of truth (Expo)

This skill set (rn-fundamentals + its 6 siblings: rn-data-fetching, rn-expo-router, rn-backend, rn-push-notifications, rn-publishing-payments, rn-animations-gestures) encodes the **workflow and opinionated stack choices** — Expo managed, New Architecture on, TanStack Query, Reanimated 4, and so on. It is NOT a frozen copy of the Expo/RN API, and it goes stale every time a new SDK ships.

For anything sensitive to the current Expo SDK — exact API shapes, CLI commands and flags, config-plugin options, deprecations, EAS behavior — do not trust this skill's wording blindly. In priority order, the authoritative source is:

1. **Live Expo docs** — https://docs.expo.dev/ (always current for the installed SDK).
2. **Expo MCP server** — `https://mcp.expo.dev/mcp` — live docs/CLI/EAS reference exposed as MCP tools. **If it is connected in this session, prefer it** over anything written across this skill set for current-version details.
3. **Official `expo/skills`** — installable as a Claude Code plugin, or via `npx skills add expo/skills` — maintained by Expo directly against the SDK release cadence.

Last swept **2026-08-26** against `expo@57.0.16`, `create-expo-app@4.0.0`, `@expo/config-types@57.0.2` and `zustand@5.0.15`; the SDK, `tsconfig.base` and `newArchEnabled` claims above re-checked **2026-10-17** against `expo@58.0.14` and `@expo/config-types@58.0.3`. Any version number, CLI command, or config key in this skill set marked `[VERIFY]` above is a candidate to have drifted since — check it against the sources above before relying on it, the same way `eve-agent` defers to `node_modules/eve/docs` instead of guessing the eve API.

## Quick decision tree

- "Should I use Expo or bare RN?" → `references/decision-tree.md`
- "What versions am I targeting?" → `references/stack-defaults.md`
- "Why does X behave differently than React on the web?" → `references/concepts.md`
- "Is this an OK pattern at the foundational level?" → `references/patterns.md`
- "Where does this piece of state live?" → `references/zustand-rn.md` (Zustand as the client-state store: selectors + `useShallow`, slices, `persist` with AsyncStorage, ⚠️ the async-hydration race — and the table for what does **not** belong in it: server data → TanStack Query, form fields → the form lib, ephemeral UI → `useState`)

## Common anti-patterns (NEVER do)

- ❌ `npx react-native init` when Expo managed would have worked — Expo is the default.
- ❌ Leaving New Architecture OFF on a new project — opt out only with a written reason.
- ❌ Mixing `yarn` and `npm install` in the same project.
- ❌ Pinning Expo SDK to a version older than the current stable without justification.

## Sources

- Course: codewithbeto.dev/rnCourse — lessons 1, 2, 3, 5, 6, 12 + "Introduction" module (free).
- Official: https://reactnative.dev/architecture/landing-page
- Official: https://docs.expo.dev/get-started/introduction/
Pliki w paczce (7)
  • SKILL.md 6 KB
  • references/.gitkeep 1 KB
  • references/concepts.md 3 KB
  • references/decision-tree.md 3 KB
  • references/patterns.md 2 KB
  • references/stack-defaults.md 6 KB
  • references/zustand-rn.md 9 KB

Wersje

W bazie nie ma innych skilli o nazwie rn-fundamentals.

Migawka bazy z 28.10.2026 · wersja paczki 3783d74a8c22 (skrót SHA-256 całej paczki)

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100expo
    Obsługuje framework Expo dla React Native: workflow managed i bare, Expo Router, EAS Build, Submit i Update, config plugins i moduły SDK.
  • 100react-native-expo-performance-and-native-modules
    Wspiera produkcyjną architekturę React Native i Expo oraz wydajny interfejs (JSI, Reanimated 3, FlashList, Skia), moduły natywne Expo, Fabric i optymalizację wątku JavaScript.
  • 100analyticscli-ts-sdk
    Pomaga integrować lub aktualizować SDK TypeScript AnalyticsCLI w aplikacjach webowych, React Native i Expo.
  • 85react-native
    Pomaga pisać i przeglądać kod React Native i Expo: nową architekturę, nawigację, moduły natywne i wydajność list.
  • 80role-mobile:react-native-expert
    Pomaga w React Native: New Architecture, Expo SDK, Reanimated, FlashList i nawigacja, także przy wdrożeniach na EAS.
  • 100expo-orchestrator
    Koordynuje rozwój aplikacji mobilnej Expo i React Native: wybór workflow (managed, bare, dev-client), konfigurację projektu, profile EAS i strategię wydań.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.