이 포스팅은 React-native 프로젝트를 시작할 때 자주 사용하는 빌딩 방법에 관한 내용이다. 이 포스팅을 토대로 RN 빌드 도구에 대한 이해도를 높이고 프로젝트에 따라 도구 선택에 도움이 되었으면 한다.
목차
1. RN Init
React Native 는 JS 를 이용한 크로스 플랫폼 앱을 만드는 프레임워크이다. 주요 장점은 크로스 플랫폼 앱을 만들 수 있는 능력과, 현재 마켓에 있는 하이브리드 옵션보다 네이티브 앱에 더 가까운 더 나은 UI 를 제공한다는 점이다. 즉, React 기초 요소가 네이티브 플랫폼 UI 에 렌더링 된다. 따라서 다른 앱이 그렇듯, 개발하는 앱이 같은 네이티브 플랫폼 API를 사용하게 된다.
React-native 의 장잠은 iOS 와 Android 모두 코드 적용이 가능하다는 점이다.
일반적인 사용 방법
- 프로토타입 작업
- 간소화된 UI 를 갖춘 앱
- 기본 크로스 플랫폼 앱
- 네이티브 API 를 많이 사용하지 않는 앱
- 복잡한 UI 를 갖는 앱
- 배터리 모니터와 같은 유틸리티를 빌드할 때
- 단일 OS 용으로 특별히 제작된 앱
- 애니메이션이 많지 않은 앱
장점
- Java 나 Objective-C 로 작성된 네이티브 모듈을 포함시킬 수 있다.
- .apk 와 .ipa 파일을 Expo 보다 쉽게 개발할 수 있다.
- 재사용성이 높다.
- 미리 빌드된 컴포넌트가 있다.
- UI 가 간단하다.
- 서드파티 플러그인을 지원한다.
- 모듈화된 구조를 가진다.
단점
- Android Studio 와 XCode 가 있어야 프로젝트를 구동할 수 있다.
- Mac 이 없다면, iOS를 위한 앱을 빌드할 수 없다.
- 장치를 통해 테스트 하기 위해서는 반드시 USB 를 연결해야 한다.
- XCode 와 다르게 폰트를 직접 import 한다.
- 다른 사용자에게 앱을 전달하기 위해서 .apk 나 .ipa 파일을 통으로 전달해야 한다.
- npm Push-Notifications 와 같은 Asset Manage 를 설치하고 연동해야 한다.
- 시간을 들여서 작업중인 프로젝트를 설정해 주어야 한다.
- 구성을 잘 해야 한다.
- Android 와 iOS 폴더 구조에 대한 기초 지식이 필요하다.
2. Expo
Expo 는 React-native 의 빌드를 위한 도구와 서비스로 이루어져 있으며, 손쉽게 빌드하도록 도와주는 프레임워크이다. Expo는 더 편리하고 유연한 개발 환경을 제공한다.
사용 예시
- Fulcrum Rocks 에서는 MVP 프로젝트를 개발할 때 사용
장점
- React link 혹은 CocoaPods 를 이용해 설치할 필요가 없다.
- 다양한 라이브러리가 설치되어 있다.
- 패키저 동작 속도가 빠르다.
- 와이파이를 통해 앱을 테스트해 볼 수 있다.
- 서로 다른 휴대폰 사이에 동기화가 가능하다.
- 새로운 버전으로 업그레이드가 용이하다.
- 스토어 배포가 쉽다.
- 무선 업데이트가 가능하다.
- Deep linking 설정이 쉽다.
- BarcodeScanner, MapView, ImagePicker 등을 제공하는 Expo SDK 를 사용할 수 있다.
- .apk, .ipa 파일 생성이 과정이 있다.
- ejcecting
단점
3. 참고 링크
1. Expo 공식문서: 한계점
https://docs.expo.dev/faq/#limitations?redirected
2. Expo 공식문서: 가능한 기능들
https://expo.canny.io/feature-requests
3. RN Cli 와 Expo 비교 포스팅
https://fulcrum.rocks/blog/react-native-init-vs-expo