メインコンテンツへスキップ

Out-of-Treeプラットフォーム

React Native は Android および iOS デバイスだけのものではありません。パートナーやコミュニティは、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 プラットフォームを登録できるようになりました。これは、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" は有効なプラットフォームとして追加されるプラットフォームサフィックスの配列です。