Migrando para React Native
Use esta skill apenas após a decisão de adotar a migração brownfield ter sido tomada. Quando o usuário ainda estiver escolhendo entre brownfield, greenfield, um caminho baseado em checkpoint, adiar ou não migrar, use assess-react-native-migration primeiro.
Visão Geral
Fluxo de trabalho prescritivo para a adoção incremental do React Native em aplicativos nativos existentes usando @callstack/react-native-brownfield, desde a configuração inicial até a integração faseada no host.
- Trilha Expo
- Trilha React Native puro
Use uma trilha por tarefa, a menos que o usuário peça explicitamente por migração ou comparação.
Estratégia de Migração
Use esta estratégia para planejamento e execução da migração brownfield:
- Avalie o estado do aplicativo e selecione o caminho Expo ou puro.
- Realize a configuração inicial com
@callstack/react-native-brownfield. - Empacote artefatos RN (
XCFramework/AAR) do aplicativo fonte RN. - Integre uma superfície RN no aplicativo host e valide a inicialização/tempo de execução.
- Repita a integração por funcionalidade/tela para uma implantação incremental.
Salvaguardas do Agente (Globais)
Aplique estas regras em todos os arquivos de referência:
- Selecione primeiro um caminho (Expo ou puro) e não misture etapas.
- Use placeholders da documentação (
<framework_target_name>,<android_module_name>,<registered_module_name>) e resolva a partir dos arquivos do projeto. - Valide cada comando de empacotamento antes de prosseguir para a integração no host.
- Execute
npx brownfield <comando> --helpantes de confiar em qualquer tabela de flags nestas referências; a saída do help é soberana. - Escreva configurações estáveis do projeto uma vez em
brownfield.config.*em vez de repetir flags — veja cli-and-config.md. - Prefira a documentação oficial para trechos longos de plataforma e detalhes de opções da CLI.
- Mantenha os aplicativos host isolados das APIs diretas do React Native quando possível (abordagem de fachada).
- Para verificação de inicialização/tempo de execução, use
agent-devicepara abrir o aplicativo host, navegar até a superfície RN, capturar snapshots/screenshots e coletar evidências do dispositivo. Se estiver faltando e a verificação precisar dele, instale-o pelo caminho aprovado/confiável do ambiente ou peça ao usuário para instalá-lo ou ativá-lo.
Documentação Canônica
- Quick Start
- Integração Expo
- Integração iOS
- Integração Android
- CLI Brownfield
- Configuração
- Diretrizes
- Solução de Problemas
Portão de Seleção de Caminho (Deve Ser Executado Primeiro)
Antes de selecionar qualquer arquivo de referência, classifique o projeto:
- Se ainda não existir um aplicativo React Native, use o caminho de criação Expo:
- Se existir um aplicativo React Native, inspecione
package.jsoneapp.json:- Expo se
expoestiver presente ou o fluxo de trabalho de plugin Expo for solicitado. - RN puro se as pastas nativas e o fluxo de trabalho direto da CLI RN forem usados sem requisitos de caminho Expo.
- Expo se
- Se ainda não estiver claro, faça uma pergunta de desambiguação.
- Continue com exatamente um caminho.
Quando Aplicar
Consulte este pacote quando:
- Implementar uma migração incremental aceita de aplicativos puramente nativos para React Native ou Expo
- Criar fluxos de integração brownfield para projetos Expo ou React Native puro
- Realizar a configuração inicial com
@callstack/react-native-brownfield - Gerar artefatos iOS XCFramework a partir de um aplicativo React Native
- Gerar e publicar artefatos Android AAR a partir de um aplicativo React Native
- Integrar artefatos gerados em aplicativos host iOS/Android
Referência Rápida
| Arquivo | Descrição |
|---|---|
| quick-start.md | Pré-verificação compartilhada e portão de seleção de caminho obrigatório |
| cli-and-config.md | Comandos da CLI, conjunto completo de flags, arquivo de configuração, layout de artefatos, efeitos colaterais de codegen |
| runtime-api.md | Superfície de API Host <-> RN (JS, Swift, Kotlin) e aplicativos de referência |
| expo-create-app.md | Estruturar um novo aplicativo Expo antes da configuração brownfield Expo |
| expo-quick-start.md | Configuração de plugin Expo e prontidão para empacotamento |
| expo-ios-integration.md | Empacotamento iOS Expo e integração de inicialização do host |
| expo-android-integration.md | Empacotamento Android Expo, publicação e integração no host |
| bare-quick-start.md | Configuração de base do React Native puro |
| bare-ios-xcframework-generation.md | Geração de XCFramework iOS puro |
| bare-android-aar-generation.md | Geração e publicação de AAR Android puro |
| bare-ios-native-integration.md | Integração no host iOS puro |
| bare-android-native-integration.md | Integração no host Android puro |
Mapeamento Problema -> Skill
| Problema | Comece Com |
|---|---|
| Precisa de decisão sobre o caminho de migração primeiro | assess-react-native-migration |
| Precisa decidir entre caminho Expo ou puro | quick-start.md |
| Precisa de uma flag da CLI, a forma do arquivo de configuração ou os caminhos dos artefatos | cli-and-config.md |
| Precisa de um nome de API host <-> RN, assinatura ou um aplicativo de exemplo funcional | runtime-api.md |
| Precisa de estado compartilhado entre host e RN, ou navegação tipada RN -> nativa | Skills brownie / brownfield-navigation |
| Precisa criar um novo aplicativo Expo para brownfield | expo-create-app.md |
| Precisa de configuração brownfield Expo e conexão de plugin | expo-quick-start.md |
| Precisa de integração brownfield Expo iOS | expo-ios-integration.md |
| Precisa de integração brownfield Expo Android | expo-android-integration.md |
| Precisa de configuração de base RN puro | bare-quick-start.md |
| Precisa de geração de XCFramework iOS RN puro | bare-ios-xcframework-generation.md |
| Precisa de geração/publicação de AAR Android RN puro | bare-android-aar-generation.md |
| Precisa de integração no host iOS RN puro | bare-ios-native-integration.md |
| Precisa de integração no host Android RN puro | bare-android-native-integration.md |
Skills Relacionadas
- Avaliar migração para React Native antes de selecionar o caminho de migração.
brownie(estado compartilhado host <-> RN) ebrownfield-navigation(navegação tipada RN -> nativa) são enviadas de outro repositório: invoque-as pelo nome e recorra à documentação canônica se não estiverem instaladas.