728x90
반응형
주요 업데이트 내용 (2024년 11월 13일 출시)
1. New Architecture 도입
- 모든 새로운 프로젝트에서 New Architecture가 기본적으로 활성화됨
newArchEnabled: true
가 app.json에 기본 설정됨- 기존 프로젝트는 선택적으로 적용 가능
- SDK 53부터는 기본 활성화될 예정이며, 2025년에는 기존 아키텍처 지원 중단 예정
2. 주요 라이브러리 업데이트
- React Native 0.76 버전 포함
- iOS 최소 지원 버전이 13.4에서 15.1로 상향
- Android minSdkVersion 23에서 24로, compileSdkVersion 34에서 35로 상향
3. 새로운 라이브러리 출시
- expo-video: expo-av를 대체하는 안정화된 비디오 라이브러리
- expo-audio: 새로운 오디오 라이브러리 (베타)
- expo-file-system/next: 개선된 파일 시스템 API (베타)
- expo-live-photo: iOS Live Photos 지원
4. expo-splash-screen 개선
- Android 12+ 스플래시 스크린 API 적용
- 다크 모드 공식 지원
- 간단한 페이드 전환 효과 추가 가능
- 안드로이드에서 전체 화면 스플래시 이미지 지원 중단
5. 개발자 도구 개선
- React Native DevTools가 기존 JavaScript 디버거 대체
- DOM Components 도입으로 웹 컴포넌트의 점진적 마이그레이션 지원
- expo-image v2의 새로운 useImage 훅 도입
6. 주요 제거 및 변경사항
- Expo Go에서 JSC 지원 중단 (Hermes만 지원)
- expo-camera/legacy, expo-sqlite/legacy 제거
- expo-barcode-scanner 제거 (expo-camera로 통합)
- Expo Go 안드로이드에서 만보계(Pedometer) 지원 중단
Expo SDK 52 아키텍처 변경사항
1. 개발 클라이언트 아키텍처 개선
이전 버전의 문제점
- expo-dev-client를 별도로 설치하고 설정해야 했음
- 개발 환경과 프로덕션 환경의 차이가 컸음
- 설정 과정이 복잡하고 오류가 발생하기 쉬웠음
SDK 52의 개선사항
- Expo GO 앱에 개발 클라이언트가 통합됨
- 별도의 설정 없이 바로 개발 시작 가능
- 실제 디바이스에서 테스트가 더욱 쉬워짐
- 개발 환경과 프로덕션 환경의 일관성 향상
2. Metro 번들러 업데이트
이전 버전의 한계
- 느린 빌드 속도
- 제한적인 캐싱 시스템
- 모호한 에러 메시지
- 설정의 어려움
SDK 52의 개선사항
- Metro 번들러 0.76.x 버전으로 업그레이드
- 빌드 속도 최대 50% 향상
- 메모리 사용량 최적화
- 더 정확하고 이해하기 쉬운 에러 메시지
- 향상된 캐싱 시스템
- 증분 빌드 지원
- 더 효율적인 모듈 캐싱
- HMR(Hot Module Replacement) 성능 개선
3. 새로운 플러그인 시스템
이전 버전의 문제점
- 수동으로 플러그인을 설정해야 했음
- 네이티브 모듈 연동이 복잡했음
- 의존성 충돌이 자주 발생
SDK 52의 개선사항
- 자동화된 플러그인 설정
- 플러그인 설치만으로 자동 설정
- 의존성 충돌 자동 해결
- 네이티브 모듈 자동 링킹
- react-native link 명령어 불필요
- iOS와 Android 설정 자동화
- 플러그인 생태계 확장
- 더 많은 서드파티 플러그인 지원
- 커스텀 플러그인 개발 용이
4. 설정 시스템 개선
이전 버전의 한계
- app.json만으로 제한적인 설정
- 정적 설정만 가능
- 환경별 설정 관리의 어려움
SDK 52의 개선사항
- 통합 설정 시스템
- app.json과 app.config.js/ts 통합 지원
- JavaScript/TypeScript로 동적 설정 가능
- 환경별 설정 관리
- 개발/스테이징/프로덕션 환경 구분
- 환경변수 통합 지원
- 보안 강화
- 설정 상속과 재사용
- 공통 설정 재사용 가능
- 프로젝트별 설정 오버라이드 지원
5. 빌드 시스템 현대화
이전 버전의 한계
- 느린 빌드 프로세스
- 제한적인 커스터마이징
- 복잡한 배포 과정
SDK 52의 개선사항
- EAS (Expo Application Services) 개선
- 빌드 캐싱 시스템 강화
- 병렬 빌드 지원
- 빌드 시간 최대 40% 단축
- 커스텀 빌드 설정
- 상세한 빌드 설정 가능
- 네이티브 코드 수정 지원
- 다양한 빌드 프로필 지원
- 자동화된 배포
- 스토어 배포 자동화
- OTA 업데이트 개선
- 롤백 기능 강화
마이그레이션 가이드
준비사항
- 프로젝트 백업
- 의존성 패키지 검토
- 네이티브 코드 수정사항 확인
단계별 마이그레이션
- package.json 업데이트
- expo-dev-client 설정 제거
- Metro 설정 업데이트
- 플러그인 재설정
- 환경 설정 파일 구조 개선
주의사항
- 기존 커스텀 네이티브 코드 호환성 검토
- 사용 중인 라이브러리 호환성 확인
- 점진적 마이그레이션 권장결론SDK 52는 Expo의 가장 큰 아키텍처 변화 중 하나로, 개발자 경험을 크게 개선했습니다. 특히 개발 환경 설정의 단순화, 빌드 성능 향상, 그리고 더욱 유연해진 설정 시스템은 React Native 개발을 한층 더 효율적으로 만들었습니다.
iOS 최소 지원 버전이 13.4에서 15.1로 상향???
iOS 15.1 미만 버전을 사용하는 기기에서는 앱을 설치하거나 실행할 수 없습니다.
App Store에서 앱을 검색할 때 iOS 15.1 미만 버전의 기기에서는 앱이 표시되지 않습니다
개발자가 앱을 빌드할 때 iOS 15.1 이상의 API만 사용할 수 있습니다
참고로 2024년 3월 기준 iOS 사용자의 약 98%가 iOS 15.1 이상을 사용하고 있어서 대부분의 사용자에게는 영향이 없습니다. 하지만 매우 오래된 iOS 기기를 사용하는 소수의 사용자는 앱을 사용할 수 없게 됩니다.
이전 버전인 SDK 51에서는 iOS 13.4까지 지원했었는데, SDK 52에서 이 제한이 상향되었습니다.
반응형
'프론트엔드 개발 > ReactNative' 카테고리의 다른 글
react-native - 애니메이션과 스레드 이해 (2) | 2024.11.15 |
---|