[react-native] Expo

binary_rho·2023년 6월 18일

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할 수 있지만 Expo SDK에서는 불가능하다. 그럴때는 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에서 돌리지 않도록 주의해야한다.

profile
tistory로 옮겨갔어요 .. ! https://2wlslog.tistory.com/

0개의 댓글