티스토리 뷰
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 |
---|
- Total
- Today
- Yesterday
- .NET
- SCADA
- 치매 가족요양
- 깃
- rn
- 명령어
- 노인장기요양보험
- TOP
- 과천노인복지센터
- 배포
- gitlab
- react native
- Android
- 설치
- 방문요양
- HMI
- 노인요양 신청
- GIT
- 과천방문요양
- c#
- 노인복지
- SQL
- 등급상담
- Database
- Github
- 요양보호사
- db
- 단축키
- PLC
- 조회
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |