CS

[React Native] Expo

크라00 2024. 11. 8. 15:01

- Expo는 React Native 앱 개발을 위한 프레임워크이자 플랫폼

- 개발 환경 설정과 빌드를 간소화해주어 빠르고 편리하게 모바일 앱을 개발

- Expo는 특히 초보자에게 유용하지만, 고급 개발자들에게도 빠른 프로토타이핑과 배포를 지원하는 유용한 도구

1. Expo Managed Workflow vs. Bare Workflow

  • Managed Workflow: Expo가 앱 개발 환경을 전적으로 관리해주며, 모든 Expo SDK 기능을 활용할 수 있습니다. 네이티브 코드 수정을 피하고자 하는 경우 적합합니다.
  • Bare Workflow: Expo와 React Native의 기본 프로젝트 구조를 그대로 사용할 수 있으며, 네이티브 코드를 직접 수정할 수 있습니다. Expo의 일부 기능을 사용할 수 있지만 자유도가 높습니다.

2. Expo CLI

  • Expo CLI는 Expo 프로젝트를 만들고 관리하기 위한 명령줄 도구입니다. 앱을 개발하는 데 필요한 모든 설정을 빠르게 적용할 수 있으며, expo init, expo start 명령어를 통해 쉽게 프로젝트를 생성하고 실행할 수 있습니다.

3. Expo Go

  • Expo Go 앱은 앱 스토어에서 설치할 수 있는 모바일 앱으로, Expo로 빌드한 앱을 디바이스에서 바로 테스트할 수 있게 해줍니다. 앱 코드를 수정할 때마다 실시간으로 업데이트된 화면을 확인할 수 있어 개발 효율을 높입니다.

4. Expo SDK

  • Expo SDK는 다양한 네이티브 기능을 포함하고 있으며, 이를 통해 별도의 네이티브 코드 작성 없이 모바일 앱에서 기기 하드웨어나 기능을 사용할 수 있습니다.
  • 주요 모듈:
    • Camera: 카메라 접근 및 사진 촬영
    • Location: 위치 정보 접근
    • Notifications: 푸시 알림
    • File System: 파일 저장 및 읽기
    • Sensors: 가속도계, 자이로스코프 등 센서 활용
    • ImagePicker: 갤러리 접근 및 이미지 선택

5. Hot Reloading 및 Live Reloading

  • Expo는 코드 수정 시 실시간으로 화면을 업데이트하는 Hot Reloading과 Live Reloading을 지원합니다. 앱을 매번 재시작하지 않고도 변경 사항을 즉각적으로 확인할 수 있어 개발 속도를 높입니다.

6. Expo Build Service

  • Expo는 앱을 쉽게 빌드하여 배포할 수 있는 서비스를 제공합니다. Android 및 iOS 앱을 빌드해주는 서비스로, 코드를 네이티브 앱 패키지로 빌드할 필요 없이 간편하게 앱 스토어에 배포할 수 있습니다.
  • eas build 명령어를 통해 빌드를 시작하며, 빌드된 파일을 다운로드해 실제 디바이스에서 테스트하거나 앱 스토어에 제출할 수 있습니다.

7. EAS (Expo Application Services)

  • EAS Build: 앱을 클라우드에서 자동으로 빌드해주는 서비스로, iOS 및 Android 패키지를 생성합니다.
  • EAS Update: 앱 스토어에 재배포하지 않고도 앱 콘텐츠를 업데이트할 수 있는 기능입니다. 코드와 자산을 실시간으로 업데이트할 수 있어 빠른 패치나 기능 추가가 가능합니다.
  • EAS Submit: 앱 스토어에 앱을 제출하는 과정도 간소화해줍니다.

8. Expo Snack

  • Expo Snack은 브라우저에서 코드를 작성하고 React Native 앱을 실시간으로 미리 볼 수 있는 웹 기반의 코드 편집기입니다. 설치나 설정 없이도 실험적인 프로젝트를 만들어 다른 사람과 공유하고, 실시간으로 피드백을 받을 수 있습니다.

9. 배포

  • Expo는 테스트와 배포 프로세스를 지원하여 앱을 테스트 사용자나 프로덕션 환경에 배포할 때 간편한 툴과 지침을 제공합니다. expo publish 명령어로 OTA(Over-The-Air) 업데이트를 지원하며, Expo의 배포 기능을 통해 앱 스토어에 제출하기 전에 빠르게 변경 사항을 배포할 수 있습니다.

10. 커뮤니티와 생태계

  • Expo는 큰 커뮤니티를 가지고 있으며, 다양한 문서와 튜토리얼이 있습니다. Expo 관련 오픈 소스 라이브러리나 모듈이 많아 앱 개발을 가속화할 수 있습니다. Expo 포럼과 GitHub 저장소에서도 유용한 자료와 최신 정보를 얻을 수 있습니다.

장점 및 단점

  • 장점: 빠른 시작과 설정, 네이티브 기능의 간편한 사용, 코드의 즉각적인 피드백, 클라우드 빌드 서비스.
  • 단점: 고급 네이티브 기능 사용 시 제한이 있을 수 있으며, Expo 지원 범위를 넘는 커스터마이징이 필요한 경우에 자유도가 낮을 수 있음.