Community코딩 & 개발github.com

bharath2020/expo-navigation-migration

기존 Expo 또는 React Native 저장소의 내비게이션 방식을 분석하고, Expo SDK 58 내비게이션, Expo Router (React Navigation 및 react-native-screens) 및/또는 @expo/ui (SwiftUI, Jetpack Compose)로의 점진적 마이그레이션을 계획합니다. 기능 플래그 사용 여부를 결정하고, 깔끔한 종료를 목표로 합니다. 또한 스택, 뒤로 가기 인터셉트, 탭, iPad 사이드바 및 접이식 섹션, 모달, 시트, 내비게이션 바 버튼, 오버플로 메뉴, 큰 제목, 탭 및 스크롤 시 내비게이션 바 숨기기, 하단 툴바, Surface Duo, iPhone Duo 및 폴더블과 같은 내비게이션 패턴의 검증된 상태와 알려진 격차를 갖춘 카탈로그를 제공합니다.

expo-navigation-migration란 무엇인가요?

이 스킬은 Expo 또는 React Native 앱의 내비게이션을 평가하고, Expo SDK 58 기반의 최신 내비게이션 시스템(Expo Router, React Navigation, @expo/ui)으로 마이그레이션하는 계획을 세우는 데 특화되어 있습니다. 세 가지 주요 작업(분석, 계획, 패턴 조회)을 수행하며, 기능 플래그를 통한 점진적 전환과 플래그 없는 직접 전환 모두를 지원합니다. '분석' 작업은 저장소의 내비게이션 코드를 스캔하여 현재 사용 중인 패턴(예: React Navigation, 커스텀 내비게이션)과 잠재적 문제점을 식별합니다. '계획' 작업은 분석 결과를 바탕으로 마이그레이션 대상을 추천하고(대상은 Expo Router, @expo/ui, 또는 현재 상태 유지 중 하나), 단계별 이행 계획과 깔끔한 종료 조건을 제공합니다. '패턴 조회' 작업은 스택, 탭, 모달, 시트, 사이드바, 폴더블 지원 등 20여 가지 네이티브 내비게이션 패턴에 대한 검증된 코드 예제와 플랫폼별 상태(iOS/Android), 주의사항을 카탈로그 형식으로 제공합니다. 이 스킬은 코드를 읽기만 하고 수정하지 않으며, 사용자가 별도로 요청하지 않는 한 앱 코드를 변경하지 않습니다. Expo의 SDK 변경 사항을 반영하기 위해 2026-11-02 기준 SDK 58 API를 참조하며, 신뢰하는 API는 공식 문서에서 추가로 확인하도록 권장합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bharath2020/expo-navigation-migration-skill/tree/HEAD/expo-navigation-migration

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

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

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

문서

Expo 내비게이션 마이그레이션 (SDK 58)

세 가지 작업. 요청에 따라 선택합니다. 마이그레이션 계획은 세 가지를 모두 순서대로 수행해야 합니다.

요청수행할 작업
"이 저장소에서 내비게이션이 어떻게 구현되어 있나요?"분석
"마이그레이션 계획을 세워주세요", "이걸 플래그로 관리할 수 있나요?", "React Navigation vs @expo/ui?"분석, 계획
"현재 React Navigation을 사용 중인데, 더 네이티브한 요소와 안정적인 내비게이션 및 딥링크 라이브러리를 원합니다"분석, 계획 (기존 React Navigation 시나리오 참조)
"사이드바 / 시트 / Duo 레이아웃을 어떻게 만드나요?", "X 패턴이 작동하나요?"카탈로그에서 조회

전반적으로 사용되는 대상 이름:

  • React Navigation은 react-native-screens 기반의 Expo Router를 의미합니다. SDK 56부터 expo-router는 더 이상 @react-navigation/*에 의존하지 않으며, 기반으로 삼는 부분을 포크(fork)했습니다. SDK 58은 포크된 API의 대부분을 제거했습니다.
  • Plain React Navigation은 Expo Router 없이 @react-navigation/* 7.x를 사용하는 것을 의미합니다.
  • @expo/ui는 iOS에서 SwiftUI, Android에서 Jetpack Compose를 의미합니다.

대상 저장소만 읽습니다. 이 스킬은 계획만 수립하며, 사용자가 별도로 요청하지 않는 한 애플리케이션 코드를 변경하지 않습니다.

Expo는 SDK가 변경될 때마다 업데이트됩니다. 여기에 있는 API 정보는 SDK 58 기준 2026-11-02에 확인되었습니다. 카탈로그에서 verified으로 표시되지 않은 API에 의존하려면 https://docs.expo.dev/versions/v58.0.0/를 참조하세요.

분석

  1. node <skill>/scripts/inventory-navigation.mjs <repo-root>를 실행합니다. 읽기 전용이며 path:line 위치와 함께 신호(signal)를 출력합니다. 신호에 truncated가 0보다 크게 표시되면 --max-locations 200을 추가하여 다시 실행합니다.
  2. references/analysis.md를 따릅니다. templates/analysis-report.md를 작성합니다.

보고서의 모든 행에 증거가 있는 값이 있거나, 검색했지만 찾을 수 없다고 명시되고, 모든 인벤토리 신호가 해당 코드를 읽어 확인되거나 기각되면 완료됩니다.

계획

references/migration-planning.md를 따릅니다. 다음 참조를 사용합니다:

templates/migration-plan.md를 작성합니다. 계획에는 항상 플래그를 사용한 전환, 플래그 없는 전환, 각각 배포 및 검증 가능한 순서화된 단계, 그리고 모든 플래그와 계획이 대체한 것을 제거하는 깔끔한 종료가 포함되어야 합니다. 이 저장소의 근거와 함께 하나의 추천을 명명합니다. 이 추천은 현재 내비게이션 소유자를 유지하는 것일 수도 있습니다. SDK만 이동하는 경우 플래그할 것이 없으며 그 이유를 계획에 명시합니다.

패턴 조회

references/pattern-catalog.md는 모든 시나리오와 해당 파일을 나열합니다. 각 파일은 iOS 및 Android에서 두 대상 모두에 대해 작동하는 프로토타입의 코드, 플랫폼별 상태, 주의사항 및 마이그레이션 노트를 제공합니다. 상태 단어는 그대로 인용하세요: verified는 시뮬레이터 또는 에뮬레이터에서 실행되었으며 실제 하드웨어는 사용되지 않았음을 의미합니다.

templates/는 재사용 가능한 파일을 보관합니다: 사이드바 섹션, 사이드바 배치 및 내비게이션 바 가시성을 위한 로컬 모듈, 내비게이션 헬퍼 레이어, 힌지(hinge) 및 창 분할(pane-split) 컴포넌트. 로컬 모듈은 개발 빌드(development build)가 필요합니다.

관련 스킬