트리 외부 플랫폼
React Native는 안드로이드와 iOS 기기에만 국한되지 않는다. 파트너사와 커뮤니티가 다른 플랫폼에서도 React Native를 사용할 수 있도록 다양한 프로젝트를 진행하고 있다. 그 중 일부는 다음과 같다:
파트너사 프로젝트
- React Native macOS - macOS와 Cocoa를 위한 React Native.
- React Native Windows - 마이크로소프트의 Universal Windows Platform(UWP)을 위한 React Native.
- React Native visionOS - 애플의 visionOS를 위한 React Native.
커뮤니티 프로젝트
- React Native tvOS - 애플 TV와 안드로이드 TV 기기를 위한 React Native.
- React Native Web - React DOM을 사용해 웹에서 React Native를 구현.
- React Native Skia - Skia를 렌더러로 사용하는 React Native. 현재 리눅스와 macOS를 지원.
리액트 네이티브 플랫폼 직접 만들기
현재 리액트 네이티브 플랫폼을 처음부터 만드는 과정은 잘 문서화되어 있지 않다. 다가오는 재구조화(Fabric)의 목표 중 하나는 플랫폼 유지 관리를 더 쉽게 만드는 것이다.
번들링
React Native 0.57 버전부터는 React Native의 JavaScript 번들러인 Metro에 React Native 플랫폼을 등록할 수 있다. 이제 npx react-native bundle
명령어에 --platform example
을 전달하면, .example.js
접미사가 붙은 JavaScript 파일을 찾는다.
RNPM에 플랫폼을 등록하려면, 모듈 이름이 다음 패턴 중 하나와 일치해야 한다:
react-native-example
-react-native-
로 시작하는 모든 최상위 모듈을 검색한다.@org/react-native-example
- 모든 스코프 아래에서react-native-
로 시작하는 모듈을 검색한다.@react-native-example/module
-@react-native-
로 시작하는 스코프 아래의 모든 모듈을 검색한다.
또한 package.json
파일에 다음과 같은 항목을 추가해야 한다:
json
{
"rnpm": {
"haste": {
"providesModuleNodeModules": ["react-native-example"],
"platforms": ["example"]
}
}
}
"providesModuleNodeModules"
는 Haste 모듈 검색 경로에 추가될 모듈의 배열이고, "platforms"
는 유효한 플랫폼으로 추가될 플랫폼 접미사의 배열이다.