React Native CLI 사용과 Expo CLI의 한계
Post

React Native CLI 사용과 Expo CLI의 한계

Expo CLI의 한계점

  • expo sdk 미지원시 불편함
    • 지원하지 않는 sdk를 사용하면 eject해서 사용해야함
    • 공유하기,카카오 로그인,네이버 로그인 등 네이티브 모듈을 사용할때 발생 → bare workfolw로 변환해야함
  • eas build system의 빌드시간
    • 빌드를 걸어두게 되면 eas에서 빌드가 진행됨
    • 클라우드 리소스를 사용하다보니 아무래도 대기시간이 필요
    • 빌드서버 구축, 유료플랜을 사용하지 않는다면 발생(주로 15~20분 정도의 시간이 소모됨)
  • 빌드 결과물의 size
    • expo sdk에 해당하는것들이 모두 들어가기 때문에 빌드 결과물의 용량이 큰편(20mb이상)

React Native CLI

개념

  • React-Native에 필요한 모듈만 탑재되어 있음
  • 앱에서 필요한 라이브러리를 그때마다 추가해야함
  • eas와 다르게 빌드를 직접해주어야함
  • 제한없는 Third party Library이용가능
  • 새로운 dependency manager
    • Gradle
      • android dependency manager
      • android폴더 하위에 build.gradle 이라는 이름으로 존재
        • android/build.gradle : 전체 라이브러리에서 사용하는 dependency의 버전을 종합적으로 관리
        • android/app/build.gradle : 작성하는 app module의 dependency들을 관리
    • cocoapods
      • ios프로젝트 내부에서 dependency관리를 위한 tool
      • ios 폴더 하위 Podfile
      • npm install하면 pod install 같이해주어야함.
    • Auto-linking
      • react-native 0.6.0 버전부터가능
      • 별도로 설정하지 않더라도 build time에 라이브러리를 link할 수 있는 기능
      • cocoapod이나 build.gradle파일을 많이 열어보지않아도됨
  • Flipper
    • 2020년도에 발표된 모바일 디버깅 툴
    • rn 0.62 버전부터 기본으로 내장되어 사용
    • Layout Inspector : 이를 통해 현재 view의 상태를 바로 알수있는 기능제공
    • React Dev Tools : 이 플러그인은 layout inspector에서 제공하는 기능에 state까지 확인할 수 있음
    • Images : 현재화면에 보이고 있는 이미지가 나열됨(android제공)
    • databases : mobile환경에서의 database가 어떻게 구성되어있는지 제공
    • setup doctor : 동작을 제대로 안할경우 setup doctor tool로 점검가능
  • React-Native-Debugger
    • react native에서만 사용가능
    • redux action이 발생되는것을 알 수 있음

기능

  • react-native init [projectName] —template templateName
    • 최초 프로젝트 생성을 도와주는 init command
    • templateName에 주로 typescript관련 template넣음
  • react-native run-ios / react-native run-android
    • 앱을 실행 시켜주는 커맨드
  • react-native start / react-native start —- -—reset-cache (남은 캐시가 있을때)
    • metro bundler를 실행시켜주는 커맨드
    • webpack과 비슷하게 javascript를 하나의 파일로 만들기 위한 역할
  • react-native log-android / react-native log-ios
    • android / ios native log를 보기위한 것

react-native CLI setting

여기를 참고하여 ios, android 를 각각 설정해주어야 한다.

node, watchman, ruby 등을 설치해야하고, ios를 사용하기 위해서는 xcode를, android를 사용하기 위해서는 android studio도 설정해주어야 한다.