Framework/React Native

[RN][Expo] Expo에 관하여..

혬수 2024. 2. 21. 00:39

📍 EXPO

React Native 개발을 보다 쉽게 만들어주는 React Native 프레임워크

프로젝트를 설정하고 구성하는 것과 관련한 복잡성을 추상화함으로써 단순화된 개발 경험을 제공

 

++ React Native CLI와 차이점

 

 

 

📍 Managed Workflow   vs   Bare Workflow

Managed Workflow

Expo가 전적으로 관리하는 개발 환경에서의 작업 방식

  • 개발과 빌드가 훨씬 더 간단해지며, Expo의 많은 기능을 활용할 수 있다.
  • Expo Go 앱을 사용하여 실시간 테스트할 수 있다.
  • Expo 서버를 사용하여 iOS 및 Android 앱을 빌드할 수 있다.
  • Expo SDK를 통해 제공되는 기능만 사용할 수 있다.
  • 네이티브 코드에 접근할 수 없으므로 네이티브 모듈을 직접 추가하거나 수정할 수 없다.

 

Bare Workflow

Expo 초기 설정을 기반으로 하되, 그 이후에는 Expo 환경의 제약 없이 다양한 모바일 또는 React Native 프레임워크의 기능 및 라이브러리를 자유롭게 활용할 수 있는 개발 방식

  • 네이티브 코드에 직접 접근할 수 있어, 원하는 네이티브 모듈이나 기능을 추가하거나 수정할 수 있다.
  • 초기 설정 후에는 개발자가 앱의 모든 부분을 관리해야 한다.
  • 네이티브 코드에 접근하는 경우, React Native CLI와 네이티브 개발 도구 (예: Xcode, Android Studio)를 사용하여 앱을 개발 및 테스트한다.
  • 각 플랫폼의 네이티브 빌드 도구를 사용하여 앱을 빌드하고 배포해야 한다.

 

++ Bare Workflow와 React Native CLI 차이점

 

 

 

📍 Expo Application Services (EAS)

Expo를 사용하여 React Native 앱을 더 빠르고 효율적으로 빌드하고 배포할 수 있도록 지원

 

기능

  • EAS Build
    : 클라우드 기반의 빌드 서비스로, 로컬 환경에서 복잡한 네이티브 빌드 프로세스를 수행할 필요 없이 클라우드에서 iOS 및 Android 앱을 빌드할 수 있다.
  • EAS Submit
    : 앱 스토어 제출 프로세스를 자동화하여 앱을 Apple App Store 및 Google Play Store에 쉽게 제출할 수 있게 한다.
  • EAS Update
    : OTA(Over-The-Air) 업데이트를 제공하여 앱의 자바스크립트 코드 및 에셋을 실시간으로 업데이트 할 수 있다. 이를 통해 사용자에게 앱 스토어를 거치지 않고 즉시 업데이트를 제공할 수 있다.

 

++ 커맨드

 

 

 

📍 Expo Dev client

Expo SDK 및 다양한 Expo 서비스를 사용하여 개발하는 앱을 테스트할 수 있게 하는 도구

  • 네이티브 모듈 지원
    : 일반적인 Expo 앱에서는 지원되지 않는 기능인 네이티브 모듈을 추가할 수 있다.
  • 실시간 반영
    : Hot Reloading 및 Fast Refresh와 함께 작동하여 개발자가 앱을 빠르게 수정하고 반영할 수 있도록 도와준다
  • 맞춤형 빌드
    : 자체 네이티브 앱을 빌드하면, 해당 앱에서만 동작하는 React Native JavaScript 코드를 테스트할 수 있다.
  • EAS와의 통합
    : EAS(Build, Submit 등)와 함께 사용되도록 설계되어 있어, 빌드 및 배포 프로세스를 간소화한다.

 

Expo Development client와 EAS build의 등장으로 인해 네이티브 패키지가 필요한 경우,

expo를 걷어내지 않고 workflow를 유지할 수도 있다

 

 

 

참고

https://medium.com/crossplatformkorea/expo-역사와-현재-현황-09c8fdce0114#f17b

 

https://stackoverflow.com/questions/61723372/what-is-the-difference-between-react-native-cli-and-expo-with-bare-workflow

https://medium.com/crossplatformkorea/expo의-새로운-빌드-시스템-eas-build와-expo-dev-client-4d93f63ada18