최근에 리액트 네이티브로 작업중인 프로젝트가 있는데 리액트 네이티브를 처음 접해보는거라 쉬운 길을 선택(...)해야 했기 때문에 Expo CLI로 설정을 했다. 사실 그 때는 잘 모르고 핸드폰에서 바로 실행시킬 수 있다길래 고민없이 Expo를 선택했는데 이게 마냥 편하지가 않았다.
내가 느꼈던 불편함은 세 가지 였는데
- 핸드폰 배터리 문제 (se2라 배터리 몹시 빨리 닳음)
- 네트워크 문제 (네트워크 약하면 로딩이 안됨)
- 나도 시뮬레이터 써보고 싶다(?)
당연히 Expo로 설정했어도 Xcode에서 시뮬레이션을 할 수 있을 줄 알았는데 여러 번 시도해 봤으나 안되는 것 같다..(아무래도) 그래서 근본적인 의문이 든거다. 둘의 차이가 뭔데요...
Expo CLI: 일종의 프레임워크. 쉽게 개발할 수 있게끔 도와주는 툴
- 배포하기 편함
- 빠르고 간단한 환경설정
- 핸드폰으로 테스트 가능
- 자유도 낮음
- 빌드 파일 크기 큼(내장된 모듈이 많기 때문)
- native 접근 불가
간단하고 편리하지만 세세한 부분을 건들 수 없다.
React Native CLI : 툴을 사용하지 않고 React Native만을 이용
- 개발자가 원하는 기능, 모든 요소 제어 가능
- native 접근 가능
- 초기 환경설정이 어렵고 오래 걸림
자유도가 높은 만큼 숙련자가 사용하기에 좋음.
이러한 근거들을 바탕으로 Expo로 진행하는게 낫겠다는 결론이 나왔지만... 시뮬레이터를 꼭 써보고 싶거든요... 멈추지 않을 것 입니다.