본문 바로가기
App/React Native

React Native - 3. expo vs RN Cli & about RN

by Riverandeye 2020. 5. 11.

React Native를 처음 시작할 때, 두가지 방식이 있다.

1. Expo CLI / Tool 을 이용하여 시작하기

2. React Native CLI 를 이용하여 시작하기

 

둘에는 다음과 같은 차이가 있다.

Expo는 React Native의 무료로 사용할 수 있는 써드 파티 라이브러리로,

여러 Utility 덕분에 Native 기능을 손 쉽게 사용할 수 있는 반면

Expo에서 제공하는 Ecosystem에 제한되게 된다.

 

반면 RN에서 직접 제공하는 CLI는 Native 기능을 사용하기 위해 설정을 따로(많이) 해야하지만

자연스럽게 자유도는 높아진다. 

 

물론 Expo로 시작하고, eject 명령어를 통해 RN Cli로 갈아탈 수 있다.

 

Expo를 이용하여 앱을 개발할 때 , Expo Client 앱에서 우리의 앱을 띄우고 Hot-reload 하게 될 것이다. 

만든 앱을 Publish 하게 되면 앱을 설치하지 않아도, Expo App을 가지고 있는 사용자가 Expo Client 내에서 앱을 테스트 할 수 있다. 

물론 앱을 직접 빌드해서 앱스토어에 배포할 수 있다.

 

간단히 해보는 튜토리얼

npm install -g expo-cli
expo init rn-first-app

template는 blank (TypeScript)를 선택한다.
그 후 rn-first-app 폴더로 이동하여
npm run start를 작성하면 expo dev-tool이 뜬다

 

expo cli 화면

왼쪽에 Run in web-browser 를 누르면 웹에서 그 결과가 뜬다

 

웹 페이지에 나타난 앱 화면

 

RN은 마냥 JS라고 할 수 없다. 

JS를 아무데서나 쓴다고 하기는 힘들고, RN을 배워서 여러 플랫폼에 쓴다고 생각해야 한다. 

 

- component styling 라이브러리가 그대로 연동되지 않는다

- pre built component가 최소한으로만 제공된다

- device size와 OS에 따라 Responsive design을 직접 해야 한다.

 

React는 아직 발전하고 있다.

- 매달 새 버전이 나오고..

- 큰 변화도 종종 생기고..

- 서드 파티 라이브러리에 대한 의존성도 아직 높고.. 

- 아직 버그가 많다. 

 

그래서 대안은?

- 그냥 Native App을 공부하던지

- PWA를 하던지

- Ionic 같이 JS in all solution 을 쓰던지

 

그래도 일단 RN 해보자. 

댓글