React와 React Native
React와 React Native를 같이 사용하면 React Native를 기반으로 한 iOS와 Android용 모바일 애플리케이션을 구축할 수 있습니다.
React는 인터페이스 구축을 위한 자바스크립트 라이브러리로 기본적으로 react-dom 라이브러리와 함께 웹 애플리케이션을 개발할 때 사용됩니다. 주의할 점은 React는 상태를 관리하고 가상의 컴포넌트를 구축하는 도구일 뿐 플랫폼에 구애받지 않습니다.
React Native는 모바일 애플리케이션을 구축하기 위한 react-dom의 대안입니다. 컴파일 시 iOS 및 Android 네이티브 UI 요소로 변환되는 특별한 컴포넌트를 제공하고 자바스크립트 코드에서 카메라 등 네이티브 플랫폼 API를 사용할 수 있도록 지원합니다.
즉, React 코드에서 React Native 컴포넌트와 API를 추가로 사용해 iOS 및 Android의 네이티브 모바일 앱을 제작할 수 있습니다.
React Native 원리
React와 React Native로 구축된 앱은 컴파일 시 Real Native App으로 변환됩니다.
- <View />, <Text /> 등 특별한 컴포넌트는 컴파일 시 각 플랫폼의 네이티브 요소로 컴파일된다.
- 자바스크립트 로직은 컴파일 되지 않고 React Native가 호스트한대로 자바스크립트 스레드에서 실행된다.
Expo
React Native 프로젝트를 생성하고 테스트 기기 및 에뮬레이터에서 앱을 실행할 수 있도록 합니다. 또한, 앱스토어에 앱을 배포할 수 있도록 지원합니다.
- 서드 파티 서비스
- Managed Workflow 제공
- 언제든지 Expo 환경에서 다른 환경으로 마이그레이션할 수 있다.
설치
npx create-expo-app@latest
실제 기기 실행
- npm start
- 실제 기기에 Expo Go 설치
- QR 코드 스캔
에뮬레이터
- Android Studio
- Xcode