티스토리 뷰

반응형

 

 

react native 는 크로스 컴파일이 가능한 프레임워크다

 

시작하게되면 아래와 같이 3가지 프레임워크가 있고 어떤걸 사용해야할지 정말 난해하다.

expo managed

expo bareflow

react natvie cli

 

우선 위 3가지에 대해 이해한 내용을 적어보겠다.

 

expo managed 는 아주 심플한 기능만 제공되어 그냥 간단한 프로토타입을 만들거나 다른 모듈과 연동하지않고

자체적으로 소화해낼수있는 앱을 만들때 유용하다고 생각된다.

(*다른 모듈이란 google map, 디바이스의 센서, 카메라 기기 등등 휴대폰에서 자체적으로 갖고있거나 js로 건드릴수 없는 부분들을 이야기한다)

 

expo bareflow 는 managed 보다 더 많은 기능을 제공한다.

프로젝트 파일을 보면 android/ios 파일이 생겨있을거고 android/ios 네이티브 파일들을 어느정도 다룰수있게된다.

그래서 좀 더 많은 기능을 쓸수 있다고 보면된다.

 

react native cli 는 expo 보다 더 많은 네이티브 모듈을 제공한다? 라고 만 이해하고있다.

결국 처음에 어느걸 쓰던 3가지 중 react native cli 를 사용하게 된다고 한다.

왜냐하면 서비스에 들어가야하는 기능들이 expo 만으로 구현되지않기 때문이다.

 

그래서 개발 방법론은 2가지가 있다고 보는데

1. expo 로 70~80% 정도 개발을 시작한 후 eject(내보내기) 를 한 후 나머지 20~30% 의 기능은 react native cli로 구현하는 방법이다.

(eject 은 expo에서 개발한걸 전부 내보내고 react native cli 파일로 만들어준다. 이 순간 부턴 expo의 자동 빌드/배포 기능을 사용할수 없고 전부 수동으로 컨트롤하게 된다.)

 

2. 처음부터 어려운 react native cli로 시작해버린다. 그리고 개발 시 최대한 expo와 관련된 component를 사용하지 않고 react native cli에서 제공하는 component를 사용하도록 한다.

 

개발한 코드를 build 후 애뮬레이터/디바이스에서 테스트를 하게될텐데 주의해야할 점은

1. 애뮬레이터로

2. apk 를 만들어서 디바이스에 직접 깔아서 테스트

3. apk bundle로 만들어서 마켓에 출시

 

위 3가지 방식으로 테스트할 경우 1번에서는 대부분의 기능이 되는데 2번 3번에서는 안될수도있다.

그 이유는 빌드/배포될때 1번은 애뮬레이터에서 갖고있는것과 expo에서 제공하는 api 등을 통해서 정상 동작한거지만

apk로 내보내서 진행했을때는 또 다른 이야기다. apk 배포시 설정해줘야하는것들이 있을수 있다.

 

그러다 보면 어떤 문제부터 해결해야할지 난해하다...(실제로 해결이안되고있음)

 

그래서 디버그(Log)에 대해서 이해한걸 적겠다.

 

우선 expo start 를 통해서 진행할 경우 vsCode터미널에 log도 찍히고 expo에서 제공하는 localhost:19002(web)에서 log도 볼수있다.

 

그런데 expo build:android 를 실행한 후 expo go 홈페이지에서 apk 파일을 다운받고 휴대폰에서 실행 시 어떤 log가 찍히는지 볼수가없다.

 

왜냐하면 휴대폰은 이미 빌드되어있는 apk를 깔았기 때문에 그 안에서 어떤 error와 log가 있는지 파악할수 없는거다.

 

그래서 PC <-> USB <-> 휴대폰 과 연결을 한 후

cmd에서 adb devices 를 입력해서 devices가 연결되었는지 확인한다.

연결 되었을 경우 

$ adb -s emulator-5555 reverse tcp:8081 tcp:8081 

명령어를 입력해서 8081 Port로 변경해준다. (8081을 쓴다고함?)

 

그 후 vsCode에서 npx react-native run-android 을 입력 후 기다리면

휴대폰으로 바로 빌드->배포가 된다.

 

이 상태에서 android studio로 project를 아무거나 하나 만들어서 debug app(무당벌레) 표시를 누르면 logcat을 볼수있다.

 

이렇게되면 휴대폰에 빌드/배포된 apk파일의 log를 볼 수 있는것이다.

 

일단 이정도만 적고 나중에 2차를 적겠다..

 

(위에 적은게 정답이 아닐수있습니다.)

 

 

 

 

 

 

반응형

'Framework > React Native' 카테고리의 다른 글

[ React Native ] SQLite 적용하기  (2) 2023.10.18