React-Native

[React-Native] Expo CLI란?

leejin_rho 2024. 7. 31. 15:57

velog에 적었던 글들을 차근차근 tistory로 옮길 예정입니다.

 

[react-native] Expo

create-react-app 처럼 react native의 앱 종류 중 하나이다. 가장 큰 장점은 안드로이드, ios 공용 웹앱 리액트앱을 만들 수 있다. 그리고 리액트 네이티브 SDK가 관리를 위해 점점 작아진 반면 Expo SDK에는

velog.io

 

앱 개발을 위해 간단하게 react-native를 공부하게 되었다.
노마드 코더의 리액트 네이티브 강의를 듣고 공부하였다.

 

 

Expo

create-react-app 처럼 react native의 앱 종류 중 하나이다. 가장 큰 장점은 안드로이드, IOS의 크로스 플랫폼, 웹앱 리액트앱을 만들 수 있다. 그리고 리액트 네이티브 SDK가 관리를 위해 점점 작아진 반면 Expo SDK에는 많은 모듈이 있다.

 

 

 Expo go 애플리케이션을 이용하면 구현하며 앱을 핸드폰에서 직접 테스트해 볼 수 있다. Over the Air Update라는 기능이 있는데 이는 새로운 버전을 앱스토어 업로드 하는 것을 스킵하고 업데이트 할 수 있게 한다. 이용자가 앱 스토어에 가서 새로운 버전의 앱을 다운받을 필요 없다.



하지만 Xcode나 Android Studio에 접근할 때 안좋다. react-native 100%로 된 앱은 별로 없기 때문에 이럴때는 접근을 위해 다 새로 다운을 받아야한다. 또한 블루투스 기능과 같은 Expo SDK에 없는 기능을 사용하고 싶을 때에도 리액트와 다르게 native library나 github등에서 찾아 install하는 것이 불가능해 react native CLI를 사용해야한다. 그리고 앱 크기도 큰 편이다. 사용하지 않는 기능까지 혹시 필요할까봐 다 최종 번들에 넣어버리기 때문이다.



대신 Expo는 ‘꺼내오기(Eject)’가 가능하다. 모든 웹팩 파일 등을 노출하는 것이다. 이를 이용하면 Expo의 기능과 react-native의 기능 모두를 사용할 수 있다. Eject를 하는 순간, xcode나 Android 파일 그리고 모든 것들이 노출되고, Expo SDK등도 사용할 수 있다. 그리고 필요없는 API를 삭제해 최종 파일의 크기가 큰 것도 해결할 수 있다.



Managed Workflow로 시작하고 마지막에 Eject를 하면 Expo와 react-native의 좋은 점을 모두 사용할 수 있다. 마지막에는 Bear Workflow로 마무리한다. Expo Go앱은 Expo SDK로만 사용가능하기 때문에 Expo SDK에 포함되지 않는 기능은 Expo go앱에 포함시키지 않도록 해야한다. 또한 Expo를 Eject했더라도 어떤 네이티브 코드도 Expo에서 돌리지 않도록 주의해야한다.

 

 

빌드 방법

게시물로 따로 정리했다.

 

[react-native] React-Native CLI / Expo EAS CLI Deploy, Build

CLI란?명령줄 인터페이스(CLI)는 키보드를 이용해 운영 체제와 상호 작용하는 방식이다. 명령줄 인터페이스를 사용하면 텍스트 명령을 입력하여 모든 서버 또는 컴퓨터 시스템에서 프로그램을 구

2wlslog.tistory.com

 

 

.

.

.

참고자료

 

Expo CLI

The Expo CLI is a command-line tool that is the primary interface between a developer and other Expo tools.

docs.expo.dev