ReactVision / viro

ViroReact: The AR and VR library for React Native 📳💙💛🤍💚
MIT License
1.3k stars 150 forks source link

Android Compatibility #171

Closed DorelisMarcelo closed 1 year ago

DorelisMarcelo commented 1 year ago

Hello, i am creating an app using viromedia community. The issue is that in android is only compatible with only 1000 devices.

Is there any option to maximize this number of comptaible devices?

Dependencies: "@miblanchard/react-native-slider": "^2.1.0", "@react-native-async-storage/async-storage": "^1.17.6", "@react-navigation/bottom-tabs": "^6.3.1", "@react-navigation/material-top-tabs": "^6.2.2", "@react-navigation/native": "^6.0.10", "@react-navigation/native-stack": "^6.6.2", "@react-navigation/stack": "^6.2.1", "@rneui/base": "^4.0.0-rc.4", "@rneui/themed": "^4.0.0-rc.4", "@viro-community/react-viro": "^2.23.0", "react": "17.0.2", "react-native": "0.65.1", "react-native-camera": "^3.44.3", "react-native-carousel-view": "^0.5.1", "react-native-compass-heading": "^1.4.1", "react-native-fs": "^2.20.0", "react-native-geolocation-service": "^5.3.0", "react-native-gesture-handler": "^2.4.2", "react-native-gl-model-view": "^1.6.0", "react-native-image-viewing": "^0.2.2", "react-native-image-zoom-viewer": "^3.0.1", "react-native-linear-gradient": "^2.5.6", "react-native-maps": "^1.3.0", "react-native-pager-view": "^5.4.25", "react-native-permissions": "^3.3.1", "react-native-safe-area-context": "^4.3.1", "react-native-screens": "^3.13.1", "react-native-sound-player": "^0.13.1", "react-native-tab-view": "^3.1.1", "react-native-tts": "^4.1.0", "react-native-vector-icons": "^9.2.0", "react-native-video": "^5.2.0", "react-native-web": "^0.17.7", "react-native-webview": "11.13.0"

In advance, thanks a lot!

andresteves commented 1 year ago

Since it depends on ArCore for Android it will be compatible with these: https://developers.google.com/ar/devices

skizzo commented 1 year ago

Since it depends on ArCore for Android it will be compatible with these: https://developers.google.com/ar/devices

The viro docs specifically say:

Add the following line to the node, this enables ARCore:

<meta-data android:name="com.google.ar.core" android:value="optional" />

Note: If you want to restrict your app to ARCore-only devices, set the android:value to "required"

Can I assume that when setting the value to "optional", the resulting Android app will be supported on devices independently whether they support AR Core or not? Thanks for any info.

DorelisMarcelo commented 1 year ago

Since it depends on ArCore for Android it will be compatible with these: https://developers.google.com/ar/devices

The viro docs specifically say:

Add the following line to the node, this enables ARCore: <meta-data android:name="com.google.ar.core" android:value="optional" /> Note: If you want to restrict your app to ARCore-only devices, set the android:value to "required"

Can I assume that when setting the value to "optional", the resulting Android app will be supported on devices independently whether they support AR Core or not? Thanks for any info.

Hi, I've configured the ar core as optional in Android and we increased a little bit the number of devices.

As long as Viro uses built in AR core, I don't see possible to make it better the compatibility. In case you need more compatibility, maybe is better to use other engine such as Unity.

Thanks for commenting.

skizzo commented 1 year ago

Hi @DorelisMarcelo and thanks for your quick reply.

I'm trying to get Viro running in a React Native 0.71.7 app, but it seems utterly impossible to get the configuration right (crashing on both iOS and Android on launch). May I ask which version of React Native you were using for the project you mentioned?

Thanks for some insights.

DorelisMarcelo commented 1 year ago

@skizzo, currently this are the dependencies working on the project and may be connected at some point with your issue:

"@react-navigation/bottom-tabs": "^6.3.1",
"@react-navigation/material-top-tabs": "^6.2.2",
"@react-navigation/native": "^6.0.10",
"@react-navigation/native-stack": "^6.6.2",
"@react-navigation/stack": "^6.2.1",
"@viro-community/react-viro": "^2.23.0",
"react": "17.0.2",
"react-native": "0.65.3",
"react-native-camera": "^3.44.3",
"react-native-permissions": "^3.3.1",
"react-native-screens": "^3.14.1"

I also would recommend you to write some kind of "handle screen" in order to show at least something to the list of devices that cannot support the AR implementation.

Greetings.

skizzo commented 1 year ago

Thank you once again, @DorelisMarcelo . No need for a handle screen if I can't get Viro to run in the first place.. What a shame, it doesn't seem like there's any library for Augmented Reality in RN that actually works.

DorelisMarcelo commented 1 year ago

@skizzo, Viro Works quite good, we have to count with the fact that React Native is a bridge to native, it comes with its limitations.

Depends the use case, in our project was enough. But its true that we where edging with the performance and implementations.

Good luck with your project!

skizzo commented 1 year ago

Well, it doesn't work with RN 0.71 at all, so I can't really confirm that it works quite good.. But thanks!