[RN] Init vs. expo

김태규·2024년 2월 28일
0

React-native 학습

목록 보기
1/1
post-thumbnail

이 포스팅은 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

profile
Frontend, Mobile Developer

0개의 댓글