Expo CLI와 React Native CLI 차이점( 사용시 개인적으로 느낀점 포함 )

Jayden ·2024년 3월 22일

1. Expo CLI

1) 설치 방법

  • node 설치

https://nodejs.org/en

  • Expo CLI 설치

npm install -g expo-cli

  • 프로젝트 init

expo init "프로젝트 명"

  • 프로젝트 실행

npx expo start 또는 npm start

2) 사용 후 느낀점

(1) 장점

  • Android Studio, XCode 설치 불필요.

  • 안드로이드 앱, ios 앱 동시 개발 가능

  • npm start 실행 후 a키를 클릭하여 내 실제 디바이스로 개발 과정을 바로 확인할 수 있다.
    (QR코드 스캔)

  • eas build --profile development --platform android로 빌드한 결과물이 내 Expo계정에 올라오는데(internal distribution build) 플레이스토어에 빌드 정보를 연동하여 배포 할 수 있다.
    https://docs.expo.dev/develop/development-builds/create-a-build/

  • 체크박스와 같은 일부 UI를 지원한다.
    https://docs.expo.dev/versions/latest/sdk/checkbox/

(2) 단점

  • 빌드 시간이 길다. (제 프로젝트 기준 10분 이상)
  • 프리티어로 1개월 기준 "최대 30회" 빌드만 가능하다.

(빌드 제한 횟수 초과 메시지)

  • 빌드 시 본인 빌드 순서를 기다려야 한다.(Waiting Queue.)

  • apk 파일을 자유롭게 추출하기가 어렵다.
    (apk 생성 명령 expo build:android
    후 app-debug.apk 실행 시 앱이 바로 실행되는 것이 아니라 expo 프로젝트 선택 화면이 실행)

  • package.json에서 스플래시 화면을 적용할 수 있으나, 내가 원하는 방식으로 디테일하게 조작하기가 어려움

2. React Native CLI

1) 설치 방법

  • node 설치
  • RN CLI 설치
    npm install -g react-native-cli

  • RN 프로젝트 생성
    npx react-native init "프로젝트 명"

  • Android Studio 설치

https://developer.android.com/studio?hl=ko

안드로이드 시스템 변수 설정

  • JDK 설치

https://jdk.java.net/java-se-ri/17 (open JDK)
https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html (Oracle)

android/gradle/wrapper/gradle-wrapper.propeties

제 프로젝트에서는 다음과 같이 gradle이 8.3 버전으로 적용이 되었네요. 그래서 gradle과 호환되도록 jdk 17버전으로
설치를 진행하였습니다.

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

JDK 환경 변수 설정

  • 프로젝트 실행

npm run android

2) 사용 후 느낀점

(1) 장점

  • 자유롭게 apk 파일 생성을 할 수 있다.(android 폴더에서 gradlew ./assembleDebug, gradlew ./assembleRelease 로 빌드)

  • 빌드 시간이 상대적으로 짧다.

  • 네이티브 코드로 RN 환경에서 자바스크립트로 할 수 없는 디테일한 코드 구현을 할 수 있다.
    (저는 스플래시 스크린 중앙에 나오는 이미지 크기 맞추기 위해서 네이티브로 구현)

(2) 단점

  • Window 환경에서는 안드로이드 개발만 가능하다.
  • Android Studio, XCode를 설치해야 한다.
profile
프론트엔드 개발자

0개의 댓글