등장 배경
Expo는 React Native 개발의 복잡성 감소 및 통합 개발 환경 제공을 목표로 시작
- CRA(Create React App)처럼 빌드 설정 없이 즉시 앱 개발 가능하도록 지원
- 많은 React Native 모듈 자체 제공
eject
라는 개념을 도입해, cli 명령을 통해 ExpoKit으로 전환 가능 → 네이티브 코드 직접 접근 가능
- 단, 이 경우 Expo의 간편한 설정 및 자동 업그레이드 기능 상실
- 네이티브 개발 지식(iOS, Android) 요구, 개발자에게 부담
이후 ExpoKit 지원 중단
Workflows 개념 등장
Managed Workflow
- Expo가 빌드 및 배포 과정 대부분 관리 (Expo SDK 내장 라이브러리 활용)
- 초기 설정 불필요, Expo Go 앱으로 실시간 미리 보기, 네이티브 기능 라이브러리 쉽게 활용
- 단, Expo SDK 미포함 네이티브 기능 제한, 앱 크기 최적화 한계
Bare Workflow
- Expo 초기 설정 기반, 이후 네이티브 기능 및 라이브러리 자유롭게 활용
- 네이티브 코드 직접 접근/수정, 다양한 라이브러리 활용, 앱 최적화 가능
- 단, 개발자가 모든 부분 관리, Expo Go 앱 미리 보기 불가, 네이티브 개발 도구 숙련 필요
- Unimodules(현재 Expo Modules)를 통해 React Native CLI 환경에서 Expo 모듈 사용 가능
EAS (Expo Application Services)