Community코딩 & 개발github.com

react-native-brownfield-migration

네이티브 iOS/Android 앱에서 React Native 또는 Expo로의 점진적 브라운필드 마이그레이션을 @callstack/react-native-brownfield를 사용해 구현합니다. 브라운필드 경로가 선택된 후, 통합 설정, XCFramework 또는 AAR 아티팩트 패키징, 또는 네이티브 호스트에 React Native 화면을 추가할 때 사용합니다.

react-native-brownfield-migration란 무엇인가요?

이 스킬은 기존 네이티브 iOS 또는 Android 애플리케이션에서 React Native(또는 Expo)로 점진적으로 마이그레이션하는 프로세스를 가이드합니다. '@callstack/react-native-brownfield' 라이브러리를 기반으로, 초기 설정부터 호스트 앱에 React Native 화면을 통합하고 검증하는 전 과정을 단계별로 제공합니다. 이 스킬은 Expo 트랙과 Bare React Native 트랙을 모두 지원하며, 사용자의 프로젝트 상태에 따라 적절한 경로를 선택하도록 유도합니다. 주요 작업으로는 브라운필드 CLI 설정, iOS용 XCFramework 및 Android용 AAR 아티팩트 생성, 호스트 앱 통합 및 시작/런타임 검증이 포함됩니다. 사용자는 이 스킬을 통해 네이티브 앱을 완전히 재작성하지 않고도 React Native 기능을 점진적으로 도입할 수 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/callstackincubator/agent-skills/tree/main/skills/react-native-brownfield-migration

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

React Native로 마이그레이션하기

이 스킬은 브라운필드 마이그레이션을 도입하기로 결정한 후에만 사용하십시오. 사용자가 여전히 브라운필드, 그린필드, 체크포인트 기반 경로, 연기 또는 마이그레이션 안 함 중에서 선택 중인 경우, 먼저 assess-react-native-migration을 사용하십시오.

개요

@callstack/react-native-brownfield를 사용하여 기존 네이티브 앱에 React Native를 점진적으로 도입하기 위한 규범적 워크플로우입니다. 초기 설정부터 단계별 호스트 통합까지를 다룹니다.

  • Expo 트랙
  • Bare React Native 트랙

사용자가 명시적으로 마이그레이션이나 비교를 요청하지 않는 한, 작업당 하나의 트랙을 사용하십시오.

마이그레이션 전략

브라운필드 마이그레이션 계획 및 실행을 위해 이 전략을 사용하십시오:

  1. 앱 상태를 평가하고 Expo 또는 Bare 경로를 선택합니다.
  2. @callstack/react-native-brownfield로 초기 설정을 수행합니다.
  3. RN 소스 앱에서 RN 아티팩트(XCFramework/AAR)를 패키징합니다.
  4. 하나의 RN 화면을 호스트 앱에 통합하고 시작/런타임을 검증합니다.
  5. 기능/화면별로 통합을 반복하여 점진적으로 롤아웃합니다.

에이전트 가드레일 (전역)

다음 규칙을 모든 참조 파일에 적용하십시오:

  1. 먼저 하나의 경로(Expo 또는 Bare)를 선택하고 단계를 혼합하지 마십시오.
  2. 문서의 플레이스홀더(<framework_target_name>, <android_module_name>, <registered_module_name>)를 사용하고 프로젝트 파일에서 해결하십시오.
  3. 호스트 통합으로 넘어가기 전에 각 패키징 명령을 검증하십시오.
  4. 이 참조의 플래그 테이블에 의존하기 전에 npx brownfield <command> --help를 실행하십시오. 도움말 출력이 우선합니다.
  5. 플래그를 반복하는 대신 안정적인 프로젝트 설정을 brownfield.config.*에 한 번 작성하십시오. cli-and-config.md를 참조하십시오.
  6. 긴 플랫폼 코드 조각 및 CLI 옵션 세부 정보는 공식 문서를 선호하십시오.
  7. 가능하면 호스트 앱을 직접적인 React Native API로부터 격리하십시오(퍼사드 접근법).
  8. 시작/런타임 검증을 위해 agent-device를 사용하여 호스트 앱을 열고, RN 화면으로 이동하며, 스냅샷/스크린샷을 캡처하고, 장치 증거를 수집하십시오. agent-device가 없고 검증에 필요하면, 환경의 승인된/신뢰된 경로를 통해 설치하거나 사용자에게 설치 또는 활성화를 요청하십시오.

정식 문서

경로 선택 게이트 (먼저 실행 필수)

참조 파일을 선택하기 전에 프로젝트를 분류하십시오:

  1. 아직 React Native 앱이 없는 경우, Expo 생성 경로를 사용하십시오:
  2. React Native 앱이 존재하는 경우, package.json과 app.json을 검사하십시오:
    • expo가 존재하거나 Expo 플러그인 워크플로우가 요청된 경우 Expo.
    • 네이티브 폴더와 직접 RN CLI 워크플로우가 사용되고 Expo 경로 요구사항이 없는 경우 Bare RN.
  3. 여전히 명확하지 않으면, 하나의 명확화 질문을 하십시오.
  4. 정확히 하나의 경로로 계속 진행하십시오.

적용 시점

다음 상황에서 이 패키지를 참조하십시오:

  • 네이티브 전용 앱에서 React Native 또는 Expo로의 승인된 점진적 마이그레이션을 구현할 때
  • Expo 또는 Bare React Native 프로젝트를 위한 브라운필드 통합 흐름을 생성할 때
  • @callstack/react-native-brownfield로 초기 설정을 수행할 때
  • React Native 앱에서 iOS XCFramework 아티팩트를 생성할 때
  • React Native 앱에서 Android AAR 아티팩트를 생성하고 게시할 때
  • 생성된 아티팩트를 호스트 iOS/Android 앱에 통합할 때

빠른 참조

파일설명
quick-start.md공통 사전 점검 및 필수 경로 선택 게이트
cli-and-config.mdCLI 명령어, 전체 플래그 세트, 설정 파일, 아티팩트 레이아웃, 코드 생성 부수 효과
runtime-api.md호스트 <-> RN API 표면(JS, Swift, Kotlin) 및 참조 앱
expo-create-app.mdExpo 브라운필드 설정 전에 새 Expo 앱 스캐폴딩
expo-quick-start.mdExpo 플러그인 설정 및 패키징 준비
expo-ios-integration.mdExpo iOS 패키징 및 호스트 시작 통합
expo-android-integration.mdExpo Android 패키징, 게시 및 호스트 통합
bare-quick-start.mdBare React Native 기준 설정
bare-ios-xcframework-generation.mdBare iOS XCFramework 생성
bare-android-aar-generation.mdBare Android AAR 생성 및 게시
bare-ios-native-integration.mdBare iOS 호스트 통합
bare-android-native-integration.mdBare Android 호스트 통합

문제 -> 스킬 매핑

문제시작 지점
먼저 마이그레이션 경로 결정이 필요함assess-react-native-migration
Expo 대 Bare 경로 결정이 필요함quick-start.md
CLI 플래그, 설정 파일 형태, 또는 아티팩트 경로가 필요함cli-and-config.md
호스트 <-> RN API 이름, 시그니처, 또는 작동하는 예제 앱이 필요함runtime-api.md
호스트와 RN 간 공유 상태, 또는 타입화된 RN -> 네이티브 내비게이션이 필요함brownie / brownfield-navigation 스킬
브라운필드를 위한 새 Expo 앱을 생성해야 함expo-create-app.md
Expo 브라운필드 설정 및 플러그인 연결이 필요함expo-quick-start.md
Expo iOS 브라운필드 통합이 필요함expo-ios-integration.md
Expo Android 브라운필드 통합이 필요함expo-android-integration.md
Bare RN 기준 설정이 필요함bare-quick-start.md
Bare RN iOS XCFramework 생성이 필요함bare-ios-xcframework-generation.md
Bare RN Android AAR 생성/게시가 필요함bare-android-aar-generation.md
Bare RN iOS 호스트 통합이 필요함bare-ios-native-integration.md
Bare RN Android 호스트 통합이 필요함bare-android-native-integration.md

관련 스킬

  • 마이그레이션 경로를 선택하기 전에 Assess React Native migration를 먼저 사용하십시오.
  • brownie(공유 호스트 <-> RN 상태) 및 brownfield-navigation(타입화된 RN -> 네이티브 내비게이션)은 다른 저장소에서 제공됩니다. 이름으로 호출하고, 설치되지 않은 경우 정식 문서로 대체하십시오.

Individual skills in this repo

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

agent-device

Automates interactions for Apple-platform apps (iOS, tvOS, macOS) and Android devices. Use when navigating apps, taking snapshots/screenshots, tapping, typing, scrolling, or extracting UI info across mobile, TV, and desktop targets.

assess-react-native-migration

Assesses whether and how an existing mobile product should migrate to React Native. Use when auditing one or more product repositories for migration readiness, including products whose iOS, Android, and other clients live in separate directories or repositories; choosing brownfield, greenfield, or a checkpoint-based path; defining a representative trial; or preparing a baseline and ROI decision before implementation. When product scope or material evidence is unavailable, grills the stakeholder with exactly one question per turn instead of sending a questionnaire.

callstackincubator/github

GitHub patterns using gh CLI for pull requests, stacked PRs, code review, branching strategies, and repository automation. Use when working with GitHub PRs, merging strategies, or repository management tasks.

callstackincubator/validate-skills

Validates skills in this repo against agentskills.io spec and Claude Code best practices. Use via /validate-skills command.

create-react-native-library

Scaffolds React Native libraries with create-react-native-library for standalone libraries or local native modules and views. Use when creating or working on React Native libraries or adding native functionality in an existing app.

dogfood

Systematically explore and test a mobile app on iOS/Android with agent-device to find bugs, UX issues, and other problems. Use when asked to "dogfood", "QA", "exploratory test", "find issues", "bug hunt", or "test this app" on mobile. Produces a structured report with reproducible evidence: screenshots, optional repro videos, and detailed steps for every issue.

github-actions

GitHub Actions workflow patterns for React Native iOS simulator and Android emulator cloud builds with downloadable artifacts. Use when setting up CI build pipelines or downloading GitHub Actions artifacts via gh CLI and GitHub API.

react-native-best-practices

Provides React Native performance optimization guidelines for FPS, TTI, bundle size, memory leaks, re-renders, and animations. Applies to tasks involving Hermes optimization, JS thread blocking, bridge overhead, FlashList, native modules, or debugging jank and frame drops.

react-native-testing

Write tests using React Native Testing Library (RNTL) v13 and v14 (`@testing-library/react-native`). Use when writing, reviewing, or fixing React Native component tests. Covers: render, screen, queries (getBy/getAllBy/queryBy/findBy), Jest matchers, userEvent, fireEvent, waitFor, and async patterns. Supports v13 (React 18, sync render) and v14 (React 19+, async render). Triggers on: test files for React Native components, RNTL imports, mentions of "testing library", "write tests", "component tests", or "RNTL".

react-native-tv-best-practices

Reviews React Native TV apps for focus/D-pad navigation, 10-foot UI layout, TV playback/DRM integration, low-memory TV performance, and TV accessibility. Use when building, debugging, or reviewing react-native-tvos, Expo TV, Amazon Vega/Kepler, or React Native web TV targets where the issue depends on remote input, TV focus, TV packaging, TV hardware, or TV playback constraints.

react-navigation

Provides React Navigation UI patterns for stacks, tabs, drawers etc. Use when building navigation UIs with React Navigation, configuring headers, bottom sheets or handling safe areas and insets.

upgrading-react-native

Upgrades React Native apps to newer versions by applying rn-diff-purge template diffs, updating package.json dependencies, migrating native iOS and Android configuration, resolving CocoaPods and Gradle changes, and handling breaking API updates. Use when upgrading React Native, bumping RN version, updating from RN 0.x to 0.y, or migrating Expo SDK alongside a React Native upgrade.

validate-skills

Validates skills in this repo against agentskills.io spec and Claude Code best practices. Use via /validate-skills command.

vercel-react-native-skills

React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.

writing-user-docs

House style for user-facing documentation — voice, scope, structure, and what to leave out. Use this skill whenever writing, editing, or reviewing anything a user reads to learn how to use a tool — help center articles, getting-started guides, tutorials, feature docs, README usage sections, in-app help, release notes, or FAQ entries. Trigger it even when the request is phrased plainly — "document this feature", "write docs for X", "explain this to users", "write a README for this library", "turn these notes into a guide" — and even when no style guidelines are mentioned. Also use it to review existing docs for tone, bloat, or leaked implementation detail. Do not use it for internal engineering docs, architecture write-ups, RFCs, or code comments.

관련 스킬