ツリー外プラットフォーム
React NativeはAndroidおよびiOSデバイスだけではありません - パートナーとコミュニティは、次のような他のプラットフォームにもReact Nativeをもたらすプロジェクトを維持しています。
パートナー提供
- React Native macOS - macOSおよびCocoa向けのReact Native。
- React Native Windows - MicrosoftのユニバーサルWindowsプラットフォーム(UWP)向けのReact Native。
- React Native visionOS - AppleのvisionOS向けのReact Native。
コミュニティ提供
- React Native tvOS - Apple TVおよびAndroid TVデバイス向けのReact Native。
- React Native Web - React DOMを使用したWeb上のReact Native。
- React Native Skia - レンダラーとしてSkiaを使用するReact Native。現在、LinuxとmacOSをサポートしています。
独自のReact Nativeプラットフォームの作成
現在、React Nativeプラットフォームをゼロから作成するプロセスはあまり文書化されていません。今後の再アーキテクチャ(Fabric)の目標の1つは、プラットフォームの保守を容易にすることです。
バンドル
React Native 0.57以降、React NativeのJavaScriptバンドラーであるMetroにReact Nativeプラットフォームを登録できるようになりました。つまり、--platform example
をnpx react-native bundle
に渡すと、.example.js
サフィックスを持つJavaScriptファイルが検索されます。
RNPMにプラットフォームを登録するには、モジュールの名前が次のパターンのいずれかに一致する必要があります。
react-native-example
-react-native-
で始まるすべてのトップレベルモジュールを検索します。@org/react-native-example
- 任意のスコープの下でreact-native-
で始まるモジュールを検索します。@react-native-example/module
-@react-native-
で始まる名前のスコープの下にあるすべてのモジュールを検索します。
また、package.json
に次のようなエントリが必要です。
{
"rnpm": {
"haste": {
"providesModuleNodeModules": ["react-native-example"],
"platforms": ["example"]
}
}
}
"providesModuleNodeModules"
は、Hasteモジュール検索パスに追加されるモジュールの配列であり、"platforms"
は有効なプラットフォームとして追加されるプラットフォームサフィックスの配列です。