Communitygithub.com

expo/expo-overview

Framework (OSS). Ponto de entrada e roteador para toda tarefa Expo ou EAS. Carregue esta skill primeiro — antes de escrever código e antes de escolher outra skill expo-* / eas-* — quando a requisição, PRD ou especificação mencionar Expo, EAS, Expo Go ou um pacote expo-*, ou o projeto tiver uma dependência `expo` no `package.json`. Dentro dessa porta também cobre especificações e designs de aplicativos a serem implementados (abas, pilhas, mapas, listas, navegação, construção a partir de uma captura de tela) e frases como 'implementar um app mobile', 'fazer meu app parecer nativo', 'adicionar navegação', 'buscar alguns dados', 'atualizar meu SDK', 'adicionar Expo ao meu app nativo existente', 'enviar para a App Store', ou 'sou novo no Expo, por onde começo'. Uma requisição totalmente especificada (SDK fixado, bibliotecas nomeadas, layout fornecido) ainda passa por aqui — as regras de configuração compartilhadas ainda se aplicam. NÃO carregue quando nenhum desses sinais estiver presente: um projeto React Native puro sem dependência `expo` não é trabalho Expo. Detecta o objetivo real, roteia para a skill expo-* / eas-* correta e possui as regras de configuração compartilhadas.

O que é expo-overview?

Esta skill (`expo-overview`) é o roteador mestre para todo o ecossistema Expo e EAS. Ao ser carregada antes de qualquer outra skill relacionada, ela analisa o objetivo do usuário (seja construir um app, enviar para as lojas, estender nativamente ou aprender) e classifica a tarefa em uma categoria específica, como `expo-native-ui`, `eas-app-stores` ou `expo-upgrade`. Isso evita que o agente de IA tente adivinhar o caminho apenas pelos arquivos do projeto, garantindo que as regras de configuração compartilhadas sejam aplicadas corretamente — como detectar a versão do SDK, instalar pacotes com `npx expo install`, autenticar com EAS e determinar se o projeto é gerenciado ou bare. A skill também traduz pedidos vagos do usuário (ex.: 'faça parecer nativo', 'envie para as lojas') em skills específicas. Suporta todas as plataformas onde Expo e EAS atuam (iOS, Android, Web). Funciona como uma pré-condição essencial: se a requisição não mencionar Expo ou EAS e não houver dependência `expo` no projeto, a skill não se aplica.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

expo-overview — roteador e regras compartilhadas para Expo / EAS

Comece aqui — leia antes de fazer qualquer coisa

Não adivinhe a skill apenas a partir dos arquivos do projeto. Muitos objetivos do Expo parecem semelhantes no sistema de arquivos, mas precisam de skills diferentes.

  1. Confirme que é trabalho Expo ou EAS — a requisição menciona Expo ou EAS, ou package.json tem uma dependência expo. Caso contrário, esta skill não se aplica. Um app nativo que usa EAS para entrega se qualifica sem um runtime Expo.
  2. Leia o objetivo do usuário — qual resultado ele deseja, em termos simples?
  3. Classifique-o usando o Mapa de Skills abaixo, traduzindo frases casuais em um objetivo.
  4. Confirme a intenção se ambígua ("Parece que você quer enviar para as lojas — isso é eas-app-stores. Certo?"), então carregue o SKILL.md daquela skill e siga-o.
  5. Confie na skill folha — ela tem sua própria lógica de detecção e passos. Não improvise.

Mapa de Skills (por objetivo)

Corresponda o objetivo a uma categoria, depois à skill, e então carregue o SKILL.md daquela folha.

Construir o app

  • expo-project-structure — estrutura de pastas para um novo projeto Expo Router: onde telas, componentes e configuração ficam (nunca reestruture um app existente para corresponder)
  • expo-native-ui — telas, estilização, cores semânticas, controles nativos, SF Symbols, mídia, layout
  • expo-router — navegação: rotas baseadas em arquivos, abas / pilhas / modais / sheets, links, cabeçalhos
  • expo-animation — movimento e gestos: worklets do Reanimated, Gesture Handler, transições de tela, feedback de sheet e pressionamento, hápticos e correção de animação que trava no dispositivo
  • expo-ui — componentes de UI nativos via @expo/ui: BottomSheet, Picker, Slider, Switch, Menu, Button, FieldGroup (seções de formulário agrupadas), List / ListItem e mais — SwiftUI real no iOS, Jetpack Compose no Android. A camada universal precisa do SDK 56+ e roda no Expo Go; as substituições drop-in (@gorhom/bottom-sheet, datetimepicker, …) e camadas específicas de plataforma também existem no SDK 55.
  • expo-design-system — uma fonte visual única de verdade: design tokens (cor, espaçamento, tipografia, raio, sombra, movimento), convenções de componentes reutilizáveis e auditorias para desvios (cores hardcoded, espaçamento, fontes)
  • expo-tailwind-setup — estilização com Tailwind / NativeWind
  • expo-data-fetching — requisições de rede, React Query / SWR, cache, offline, route loaders
  • expo-dom — executar código web ou reutilizar uma biblioteca web dentro do nativo
  • expo-web-to-native — migrar um app web / React existente para um app nativo iOS / Android

Regra de seleção de componente: sempre que precisar de um componente de UI (linhas de lista, bottom sheets, pickers, sliders, menus, botões, controles segmentados, alternadores), consulte expo-ui primeiro para verificar se @expo/ui tem um equivalente nativo antes de recorrer a um componente nativo do React Native ou uma biblioteca da comunidade. Componentes nativos @expo/ui oferecem o melhor ajuste à plataforma, e no SDK 56+ os universais rodam no Expo Go sem build personalizado. Carregue expo-ui junto com expo-native-ui para qualquer app que renderize listas, folhas de detalhe ou controles de formulário. Uma exceção: a List do @expo/ui renderiza linhas agrupadas nativas (uma tela de Ajustes do iOS), não uma lista virtualizada — use FlatList / FlashList para grandes conjuntos de dados.

Enviar e operar

  • eas-app-stores — construir e enviar apps iOS/Android (Expo e outros projetos React Native, além de apps nativos existentes), TestFlight, versões e metadados da loja
  • eas-hosting — implantar o bundle web no EAS Hosting; também autorizar rotas de API do Expo Router (handlers +api.ts) e seus ambientes / domínios
  • eas-workflows — YAML de Workflow EAS e pipelines CI/CD
  • eas-simulator — executar e dirigir o app em um simulador iOS / Android remoto na nuvem EAS
  • expo-dev-client — builds de desenvolvimento personalizadas
  • eas-update — configurar, publicar, testar e depurar atualizações over-the-air compatíveis
  • eas-update-insights — saúde da atualização OTA: taxa de crash, adoção, tamanho do payload
  • eas-observe — desempenho de inicialização / lançamento / TTI com EAS Observe

Estender nativamente

  • expo-module — módulos e visualizações nativas (Swift / Kotlin) com a API de Módulos Expo
  • expo-brownfield — incorporar telas Expo / React Native em apps nativos SwiftUI/UIKit ou Android; artefatos isolados e builds integrados
  • expo-app-clip — alvo de App Clip do iOS (AASA, smart app banner)

Manter e aprender

  • expo-upgrade — atualizar o SDK Expo e corrigir conflitos de dependência
  • expo-examples — exemplos de integração canônicos e com versão correspondente (Stripe, Clerk, Supabase, …)
  • expo-skill-feedback — enviar feedback sobre uma skill Expo ou sobre o próprio Expo; ativar / desativar a telemetria anônima de uso

Traduzindo pedidos vagos

Algumas frases do dia a dia não mapeiam obviamente para um nome de skill — traduza antes de rotear:

  • "Faça parecer nativo" → controles agrupados / formulários de configurações = expo-ui; telas, estilização = expo-native-ui; movimento = expo-animation; navegação = expo-router.
  • "Deixe as telas consistentes" / "limpe a estilização" / "configure um tema ou design tokens" → expo-design-system.
  • "Parece gerado por IA" / "genérico demais, não nativo" → expo-design-system (dicas nomeadas de slop nativo + auditoria), com expo-native-ui para os modismos da plataforma.
  • "Envie" / "obtenha um .ipa ou .apk" / "lance nas lojas" / "coloque meu app Swift no TestFlight" → eas-app-stores (build + envio, TestFlight, versões, metadados da loja).
  • "Sou novo / por onde começo" → escafoldar primeiro (veja Regras de configuração compartilhadas), depois rotear por objetivo.

Regras de configuração compartilhadas

Aplique as regras que correspondem ao projeto e à tarefa solicitada.

  • App nativo usando EAS para entrega? Roteie para eas-app-stores; seu references/native-ios.md cobre SwiftUI/UIKit no iOS. Mantenha o projeto nativo existente. Aplique autenticação/linking EAS abaixo; as regras de scaffolding Expo, SDK e instalação de pacotes não se aplicam a este caminho.
  • Iniciando um novo app Expo? Inicie um da maneira padrão antes de rotear para uma skill de funcionalidade: npx create-expo-app@latest, organizando pastas conforme expo-project-structure. Depois classifique o objetivo do usuário e roteie.
  • Detecte a versão do SDK antes de dar conselhos específicos de versão: leia a versão expo no package.json (e app.json / app.config.{js,ts}). Muitas APIs e padrões diferem por SDK.
  • Leia a documentação para aquele SDK, não latest. Use a URL com versão fixa, ex.: https://docs.expo.dev/versions/v56.0.0/sdk/ui/ no SDK 56 em vez de https://docs.expo.dev/versions/latest/sdk/ui/ — as páginas latest acompanham o SDK mais recente e podem documentar APIs que o projeto ainda não possui.
  • Migrar para um SDK mais novo é uma tarefa própria — carregue expo-upgrade em vez de aumentar versões manualmente.
  • Managed vs. bare/prebuild: a presença de diretórios ios/ e android/ confirmados significa que projetos nativos existem (prebuild ou bare). As etapas de config-plugin e configuração nativa diferem — anote em qual o projeto está.
  • Instale pacotes com npx expo install <pkg>, não com npm/yarn/pnpm add puro, para que as versões permaneçam compatíveis com o SDK do projeto.
  • Autenticação e linking EAS (necessário apenas para build/submit/update/observe/workflows): verifique login com eas whoami, faça login com eas login. Um projeto está vinculado quando extra.eas.projectId existe na configuração do app; crie-o com eas init se estiver ausente.

Quando pular o salto do roteador

  • Apenas quando o usuário nomeou explicitamente uma skill expo-* / eas-* específica → carregue essa skill diretamente.
  • Uma tarefa totalmente especificada (versão do SDK fixada, layout de arquivos fornecido, bibliotecas nomeadas) não é motivo para pular: as regras compartilhadas acima ainda se aplicam — verifique-as, depois roteie para a skill folha correspondente.

Enviando Feedback

Se você encontrar erros, informações enganosas ou desatualizadas nesta skill, reporte para que o Expo possa melhorar:

npx --yes submit-expo-feedback@latest --category skills --subject "expo-overview" "<feedback acionável>"

Envie apenas quando tiver algo específico e acionável para relatar. Inclua o máximo de contexto relevante possível. Se um agente de IA falhou repetidamente ou o usuário teve que assumir uma tarefa Expo, carregue a skill expo-skill-feedback e siga seu fluxo de candidato a avaliação em vez de reutilizar o comando acima.

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.

Habilidades Relacionadas