Requirement

Structure

- 코드는 자바스크립트 / 마크업 스타일링으로 똑같이 씀
- 이걸 React Native JS Module이 감싸고 인터프리터로 보냄
- JS Interpreter가 해석함
- 이걸 감싸고 있는게 React Native
- React Native는 native 모듈들과 통신함
- 네이티브 플랫폼이 알아들을 수 있는 언어로 변환해줌
앱이 되는 과정
- 코드를 만들면, 컴파일하고 이 모든 구조들을 Java와 XCode를 이용하여 apk, 혹은 ipa 파일로 변환
- 변환된 파일은 앱스토어로 갈 수 있음
앱을 받는 사용자 입장에서는,
- Platform APIs, React Native native modules, React Native, JS Interpreter, React Native JS Modules 이 모든 걸 다운 받고 여기에 추가적으로 개발자가 쓴 JS 코드와 CSS를 받는 것임
EXPO
- 이 모든 인프라를 JS와 마크업 스타일링 빼고 모두 컴파일된 앱이 앱스토어에 있어서 그걸로 테스트할 예정
- 그 앱을 통해 즉각적인 테스트가 가능한데,
- 그 앱이 바로
Expo
- Expo vs React Native cli
Expo: 별도의 배포 없이 바로바로 테스트 가능, non-expo로의 전환가능. 네이티브 코드 사용 불가능. 블루투스 등 일부 기능 미지원
RN Cli: Swift, Kotlin, Object-C등 네이티브 코드 사용 가능. 모든 기능 지원. Android Studio, XCode에서 빌드, 배포 가능