このリポジトリはReact Nativeそのもので、JavaScriptのReactコードから Android・iOSのネイティブUIを描画するフレームワーク本体です。単一パッケージではなく、react-native本体・babel-preset・metro-config・asset-utilsなど多数のパッケージを含むmonorepo構成になっています。CIワークフローやリリーススクリプト、フォーマットツールも同梱されており、Meta社とコミュニティが開発・運用しています。
コアの仕組みは、JavaScriptで書いたReactコンポーネントをネイティブのUIコンポーネントにマッピングして描画する点にあります。package.jsonのworkspacesにより「packages/*」以下の各サブパッケージ(asset-utils、assets-registryなど)が個別npmパッケージとして管理され、yarnで一括ビルド・テストされます。asset-utilsパッケージのAndroidPathUtils.jsを見ると、画像などのアセットをAndroidのdrawable-mdpi・drawable-xhdpiなどの解像度別リソースフォルダへ変換するロジックが実装されており、JS側のアセット参照をネイティブのリソースシステムに橋渡しする役割が確認できます。ビルドはgradlew(Android)とGemfile経由のCocoaPods(iOS)を併用し、.githubワークフロー群がAndroid/iOSのE2Eテスト・フォーマットチェック・npm公開・リリースノート生成までを自動化しています。JSテストはjestで、Flow型チェックとTypeScript型定義(.d.ts)の両方が並行して用意されている点も特徴です。
- STEP 01
READMEの案内に従い「npx create-expo-app@latest」を実行すると、Expoフレームワーク経由の新規React Nativeプロジェクトが作成されます。
- STEP 02
本リポジトリ自体をcloneしてyarn installを行うと、workspacesに定義された多数のpackages配下パッケージが一括で解決されるのが分かります。
- STEP 03
yarn testを実行すると、jest.config.jsに基づきJS側のユニットテスト(asset-utilsの__tests__など)が走ります。
- STEP 04
yarn build-androidやyarn testios相当のスクリプトを実行すると、gradlewやCocoaPods経由でネイティブビルドが走り、Android/iOSそれぞれの環境準備が必要になることを体感します。
- STEP 05
yarn format-checkを実行すると、JavaScript・C++・Kotlin・Java・Python・Swiftの6言語分のフォーマット検証が同時に走り、monorepoの多言語構成の規模を実感します。
実際に手を動かすと、単一のJSコードベースからAndroidとiOSの両方にネイティブUIを描画できる開発体験そのものと、それを支える大規模monorepoのビルド・テスト・リリース基盤一式が手に入ります。asset-utilsのような小さなユーティリティパッケージ単体を取り出して使うことも可能です。
本体のビルドにはAndroid StudioやXcode、Ruby(CocoaPods)、gradlewなど複数のネイティブ開発環境が必要で、README記載の手順だけでは完結しない部分があります。
READMEでも明言されている通り、Framework(Expoなど)なしで直接react-nativeを使う道は非推奨気味で、ドキュメントもExpo前提の記述が主です。
提供されたファイル群からはreact-native本体の中核実装(packages/react-native以下のネイティブブリッジ部分など)の詳細は確認できておらず、asset-utilsなど周辺パッケージのソースのみが根拠になっています。
すでにReact/Reactの経験があり、AndroidiOS両対応のネイティブアプリをJSベースで作りたい開発者に向いています。READMEとasset-utilsの実装、CI構成から判断すると、ドキュメント整備・テスト網・リリース自動化が揺一していない大規模プロジェクトであることは明確に読み取れます。ただしネイティブビルド環境の重さは実際に手元で組んでみないと体感しづらく、その点は本レビューの範囲外です。