Creating Web Worker in React Native Android app - react-native

I am building a React Native android app. In app I want to download and parse huge amount of data from server. Since JavaScript is a single threaded language I don't want to execute this on same React Native JSC context. Is it possible to create a Web Worker inside React Native JSC context and do extensive background jobs?
I have tried to do the same, but it says function not available.

There is a library exactly for that now. Check out https://github.com/devfd/react-native-workers

AFAIK there is no WebWorker polyfill for React Native. You will probably have to write a Native Bridge Module. If you want to avoid that , check out this post where they use requestAnimationFrame to break heavy tasks. https://corbt.com/posts/2015/12/22/breaking-up-heavy-processing-in-react-native.html

Nowadays a library that tries to do something similar with JSI but that is not declared exactly as WebWorker is react-native-multithreading.
For now there is no solution within react-native but news may come in https://github.com/react-native-community/discussions-and-proposals/issues/486

Related

Add unity into React native expo

I would like to add unity into my react native expo app. Since I searched I don't find anything helpful for me and related to my requirement. Is there any Sample/Reference code available for Unity Integration with React native?
Thanks in advance!
ive been in the same place. so currently theres no way to directly communicate it with Unity. But you can always communicate with native android/ios and that in turn communicates with unity. worked with that, and it works pretty well. so your native side should launch the game rather than react native directly starting it.
Basically call a native method in android side from react native --> that in turn starts / calls the unity module .
check this once
Hope this helps. otherwise please connect with me

Will this module work in expo or react native?

I am new to react native and expo.
This is the module i am looking at: https://github.com/leesiongchan/react-native-esc-pos
I want to build an app that can print using bluetooth thermal printer. I am not sure if i should build it using react native or expo. Please advise me.
Thank you.
Expo has its own limitations and there are even some bugs there too, Its good for quick development as the documentation suggests the same that it is good to get you started with development within minutes without much hustle. In my opinion, React Native CLI is most of the time the best option even if you are new to react native development. Because of the following reasons
You will learn a lot as you will get your hands dirty in core react native app development.
You won't have to deal with expo limitations
You won't have to be dependent on expo tools
Any Library which requires linking or contains native modules will not work with the expo.
The library you mentioned uses many native modules and usually these type of libraries are not supported and that is the reason why they've built their own APIs and Native Components you can read this,
the developer has not mentioned Expo support anywhere on the docs but still You can open an issue on GitHub and ask the developer if it supports EXPO platform or not, or maybe instead of asking you can try the library yourself and you will find out if its working or not,

How can i incorporate Expo components in a non-expo React Native app?

I'd like to use Expo's barcode scanner component in a non-expo app that i've already mostly built:
https://docs.expo.io/versions/latest/sdk/bar-code-scanner.html
Is it reasonable to do this? Or is it more reasonable to create a new Expo app then migrate my existing codebase into the new expo app?
My existing app was created using react-ignite, not sure if that is relevant or does not make a difference.
Generally speaking, integrating Expo components with native dependencies (such as the camera) into a non-Expo app is possible, but is a bit tricky, as you'd have to lift the source code from the Expo codebase into your application.
The JavaScript code for these modules exists in the expo/expo-sdk module, and are quite straightforward:
CameraBasedBarCodeScanner
Camera
However, the native module that's required to make the Camera work are embedded within the expo/expo client application, and depends on other parts of the Expo codebase.
Instead, I recommend you use the react-native-camera component, which supports barcode scanning out of the box, and is easier to integrate into a plan React Native application.

How to access to current call in Android

The primary use case is:
When a phone call occurs, I would want to do certain things inside my app after call end. I need this information about call - call length, caller phone number,type of call (in / out).
How I cat do it in RN?
I believe that there is no such API available for React-Native yet. Unless I'm wrong with my previous statement, you would have to write your own Native Modules for Android and iOS and bind them to your React Native project. Writing a native module is pretty simple, especially if you are familiar with the native language and APIs of each platform. Below are the links to the official docs.
Native Modules for Android
Native Modules for iOS

How to use JavaScriptCore in React Native android apps

We are building a React Native application on Android. We have a requirement of creating a separate JSC virtual machine instance in a thread. We do not want to use same JSC context which is used by React Native.
We have searched a lot on web and also tried to figure out how React Native is using JSC, but we are not able to find the same.
It will be very helpful if anyone can suggest us directions for the same.
Perhaps you should take a look at this:
ericwlange/AndroidJSCore
or dive deep into React Native's Android source code.
https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/jni/react/JSCExecutor.cpp