React Native 0.68 발표
안녕하세요, 여러분! 오늘 우리는 React Native 0.68.0 버전을 발표합니다. 이번 릴리스에는 새로운 React Native 아키텍처의 옵트인(opt-in), 버그 수정 등이 포함되어 있습니다.
섹션
0.68 버전 주요 변경 사항
Andrei Calazans가 0.68 버전에서 가장 중요한 변경 사항을 선별해 도움을 주었다:
주요 변경 사항 및 버전 업데이트
이번 버전에는 몇 가지 주요 변경 사항이 포함되어 있다:
- React Native가 최신 LTS인 Node 16으로 업데이트되었다. CI에서 LTS와 이전 LTS를 테스트하기 때문에, 이제 사용자는 Node >= 14 버전을 사용해야 한다.
- Android Gradle Plugin이 7.0.1로 업데이트되었으며, Android 빌드에 JDK 11을 강제한다. 따라서 설정을 업그레이드해야 한다(Intel과 M1 Mac 모두
zulu11
JDK 버전을 사용할 것을 권장한다). - iOS의
RCTBundleURLProvider
API에서fallbackResource
가 제거되었다. 이 매개변수는 대체 없이 안전하게 제거할 수 있다.
툴링도 업데이트되었으며, 주요 버전 업데이트는 다음과 같다:
- @react-native-community/cli to 7.0.3
- Metro to 0.67
- react-devtools-core dependency to 4.23.0
- Flipper to 0.125.0
- react-native-codegen to 0.0.9
- Kotlin to 1.6.10
- Soloader to 0.10.3
- Gradle to 7.3
- Android compile and target SDK to 31
또한, Nicola Corti의 이 커밋 덕분에, Android Gradle Plugin이 기본 NDK 버전을 자동으로 다운로드한다. 따라서 더 이상 별도로 지정하거나 설치할 필요가 없다.
기타 개선 사항
이번 릴리스에는 다양한 변경 사항과 수정이 반영되었다. 그중 주목할 만한 몇 가지를 소개한다:
- Gijs Weterings는 RCTModalHostView에 testID 전달 문제를 수정해 모달의 E2E 테스트 타겟팅을 더 쉽게 만들었다.
- Liam Jones는
console.error
호출 시 RedBox가 LogBox와 함께 나타나는 문제를 해결했다. - Sam Kline는 Android 개발 모드에서 BundleDownloader 실패 후 빈 화면이 나타나는 문제를 수정했다.
- Jeffrey Hyer는
onLayout
prop과 함께 사용할 때 KeyboardAvoidingView가 예상대로 동작하지 않는 문제를 해결했다.
전체 변경 사항을 확인하려면 이 링크에서 체인지로그를 확인할 수 있다.
감사의 말
이번 릴리스에는 68명의 기여자가 참여해 총 614개의 커밋이 포함되었습니다. 모든 분들께 깊은 감사를 드립니다.
또한, 안정적인 0.68.0 릴리스 전에 회귀 버그를 찾는 데 도움을 준 릴리스 테스터와 지원자 분들께도 특별히 감사드립니다. 여러분의 기여가 이번 릴리스의 성공에 큰 힘이 되었습니다.
여러분이나 여러분의 앱, 회사가 "릴리스 테스터" 프로그램에 참여하고 싶다면, 여기에서 신청할 수 있습니다.
새로운 아키텍처 선택 적용
앞서 간략히 언급했듯이, React Native 0.68은 Fabric 렌더러와 TurboModule 시스템을 선택적으로 지원하는 첫 번째 버전이다. 이는 새로운 React Native 아키텍처의 전개에서 중요한 이정표가 된다. 여러분이 이 변화에 빠르게 적응할 수 있도록, 우리는 웹사이트에 아키텍처 섹션을 추가했다. 이곳에서 새로운 시스템의 내부 구조에 대한 심도 있는 가이드를 확인할 수 있다.
동시에, 문서에 마이그레이션 가이드를 추가하고, 새로운 아키텍처를 위한 실무 그룹을 출범시켰다. 선택 적용 방법을 포함한 더 많은 정보는 이전 블로그 포스트에서 찾을 수 있다.
새로운 아키텍처는 아직 미세 조정이 필요한 상태다. 여러분이 사용 중인 일부 서드파티 라이브러리는 아직 마이그레이션되지 않았을 수 있으며, 우리가 아직 발견하지 못한 문제가 발생할 수도 있다. 만약 문제를 발견한다면, 새로운 아키텍처 실무 그룹에 보고해 주길 바란다.
React 18 관련: React 18의 새로운 렌더링 엔진은 React Native 0.68에서 지원되지 않는다. 이 기능은 향후 버전에서 지원될 예정이다. React 18은 React 18 발표 블로그 포스트에서 소개된 새로운 기능을 활용하기 위해 새로운 아키텍처에 의존하기 때문이다. 더 자세한 내용은 React Conf 키노트를 참고하길 바란다.
웹사이트 업데이트
메인 코드베이스 개선과 함께, Simek, Megatron4537, slorber의 도움으로 웹사이트에도 상당한 개선이 이루어졌다. 특히, 상단 툴바에 새로운 섹션이 추가되어 React Native에 기여하는 방법을 배울 수 있게 되었다. 또한, "기여하기" 섹션과 새로운 "아키텍처" 섹션은 이제 버전별로 구분되지 않는다. 이제 이 섹션들은 각 React Native 버전별로 하나씩 있던 것이 아니라 단일 버전으로 통합되었다.