Building your first React Native AR Application :

In this section, we will build a simple React Native AR application and render some 3D objects in 360 degree and placed into the real world.

Creact react native project:

Befare create a project set up react native environment. To set up react native environment refer to below given line.

https://reactnative.dev/docs/environment-setup </a >

Open terminal/cmd and create new project with command ‘npx react-native init <your project name></span > ’

Install required libraries to set up Ar View:

 

1) react-native-3d-model-view

This library is use to load 3d model of object and change colors dynamically with textures.

First install this library with ‘yarn add react-native-3d-model-view’ command from terminal/cmd

After library installation open ‘ <project_name> .xcxcworkspace’ file in xcode and create empty swift for arkit swift support

Also go to build settings in xcode and change Swift Language Version to 4.2 or higher

In your app.js file add below code to load 3d model view

import ModelView from ‘react-native-3d-model-view’

< ModelView
  source={{
    model: require('../obj/object_car.obj'),
    texture: require('../obj/object_car_main_Base_Color_grey.png')
  }}
  onLoadModelStart={this.onLoadModelStart}
  onLoadModelSuccess={this.onLoadModelSuccess}
  onLoadModelError={this.onLoadModelError} 
/>

Output :

For more information of this library refer to this link: https://github.com/BonnierNews/react-native-3d-model-view

2) react-native-ar-viewer

AR viewer for react native that uses Sceneform on Android and ARKit on iOS

First install this library with ‘yarn add react-native-ar-viewer’ command from terminal/cmd

Android

Required AR features:

  • Add the following to your AndroidManifest.xml:
    < meta-data android:name=”com.google.ar.core” android:value=”required” tools:replace=”android:value” />
  • If you already have < meta-data android:name=”com.google.ar.core” android:value=”required” /> don’t forget to add the tools:replace=”android:value” attribute.
  • Check that your <manifest> tag contains xmlns:tools=”http://schemas.android.com/tools” attribute.

 

Ios
  • Remember to add NSCameraUsageDescription entry in your Info.plist with a text explaining why you request camera permission.
  • In XCode file tree, go to Pods > Development pods > react-native-ar-viewer, right-click on “Add Files to Pods”… Then select the environment.skybox folder in your node_modules/react-native-ar-viewer/ios folder. In add file window, check “react-native-ar-viewer-ARViewerBundle”. It should appear with a blue icon on the file tree. Check if res.hdr is present inside, if not, add it manually. It should look like that:
File formats :

The viewer only supports USDZ files for iOS and GLB for Android. Other formats may work, but are not officialy supported.

Example code :
import {ArViewerView} from 'react-native-ar-viewer';

<ArViewerView
         model={localModelPath}
         style={styles.arView}
         disableInstantPlacement
         manageDepth
         allowRotate
         allowScale
         allowTranslate
         onStarted={() => console.log('started')}
         onEnded={() => console.log('ended')}
         onModelPlaced={() => console.log('model displayed')}
         onModelRemoved={() => console.log('model not visible anymore')}
         ref={ref}
/>
Output :

To open ARViewer with respective native code refer to below give link

https://medium.com/@linjunghsuan/a-simple-way-to-use-native-ar-viewer-in-react-native-18304bc6c799