Redux-firestore with React-native - react-native

Can redux-firestore be used with react-native (expo)? Any special setup to take note if can?
I plan to use react-redux-firebase n understand react-redux-firebase can be used with react native. I like to find out if the same goes for redux-firestore.

Yes, redux-firestore can absolutely be used with react-native. I mostly think of redux-firestore as a "subproject" to react-redux-firebase (RRF), providing the same capabilities you have in RRF for Firebase Realtime Database, but instead using Firestore database (it's not 100% accurate, but good enough :) ).
I mostly follow the RRF documentation, including the stuff that describes using RRF with React Native.
Both the Web/JS and Native Modules instructions point to sample configuration that include code you can uncomment to enable Firestore.

Related

What is the best solution for Local Notifications in IOS for react native?

As the React Native website informs us PushNotificationsIOS is now deprecated. What is recommended is using https://github.com/react-native-community/react-native-push-notification-ios. However, this project does not seem to be maintained or commonly utilized. Frustratingly, it lacks Typescript support.
I am having problems using a Notification Content Extention for some nice custom iOS notifications. I suspect this has something to do with react-native-push-notification-ios's use of now deprecated UILocalNotification. Like many projects in the elephant graveyard that is the RN ecosystem, it seems painfully out of date. I'm reluctant to further troubleshoot my issues because it seems like a lonely, time consuming and potentially fruitless effort. Additionally, I'm trying to avoid writing a lot of native code.
Is there a solution I am missing here? Or am I asking for too much native support from React Native?
I always use firebase for my notifications. It works really well in my opinion. https://rnfirebase.io/docs/v5.x.x/notifications/introduction

Use GeckoView in react native

I'm working on a react native project that requires GeckoView as the browser for the WebView. However, since it's a native android library I'm not sure if I can use it in react native.
Is there any way to integrate Geckoview to a react native project or is there any possible alternative for this situation?
Any help is much appreciated!
Yes, you can integrate it. Take a look at sunnylqm/react-native-geckoview.
Be sure to look and run the Example provided in the ./example directory. (Saved me lots of time)
This is a very basic implementation that I only used as a model.
It was done in Java. If you need the Kotlin version I can provide that too.
Good Luck!

Targeting both .ios.js and .android.js with a single platform-specific extension

I use react-native-web and share code between ios, android and web.
Is there any technique to target both iOS and Android platform with a single file, and at the same time not target web?
I know that the code below doesn't work, but serves as an example of what I have in mind:
Container.native.js
Container.web.js
so there two ways of having platform specific code in React Native as mentioned here. The method that you are referring to is mentioned here.
Remember that react-native-web is designed firstly to make react native code run on the web, so your designing Mobile first.
It's very easy. For the same example you have given, this is how you can do it:
Container.js // For mobile
Container.web.js // For Web
Also, you can always use Platform.OS for specific Platform specifications.
Hope it helps.

Is it possible to use tenserflow.js with react native?

I am trying to add offline support to an AI-based app I am building on React Native, The app is similar to Not Hotdog of Silicon Valley. I recently found out Tenserflow.js and tried to implement it with React native and even outputted my python model to the one that is supported by Tenserflow.js but when I try to import Tenserflow.js inside one of the React Native components using import * as tf from '#tensorflow/tfjs'; this syntax but React Native throws the error, the error screenshot is attached with the question.
Thank You !!!
The short answer is no as stated in the description of the project.
A WebGL accelerated, browser based JavaScript library
The error you are getting shows that it's trying to use window which is part of the DOM API in browsers. React Native has no such API as it's not a browser. You can see that they use window in multiple places in their Core API.
The long answer is a maybe but is out of scope for a StackOverflow answer as it would be akin to asking for a tutorial. To elaborate, I can see two approaches to possibly getting TensorFlow.js to work:
Polyfill everything that is missing:
This might be possible but it probably won't work as you'd expect because it leverages WebGL. I'm not familiar with TensorFlow.js, but I would believe that WebGL is used because it would allow access to GPU acceleration making the workload feasible in the browser. You would need to do something similar in order for it to work well on a mobile device.
Leverage a WebView. However, you may again run into WebGL/performance issues as indicated in older questions such as this.
Since you didn't post any code whatsoever, there is no other guidance that I can give you on this question. One suggestion would be to look at maybe a native module such as react-native-tensorflow and the discussions people had around it.
#tensorflow/tfjs-react-native has been available on npm (in alpha) since late August 2019.

Speech-to-text in react native [duplicate]

I am making a language app that records any new vocabulary a user is trying to learn. It would be great if users can add their words via a speech to text program, instead of having to enter it manually. I am having trouble achieving this task. I am aware that there is an API for apple but not android. Is there anyway possible of doing this, using an API? Like for instance, google speech to text API? But I guess I would first have to be able to access the device's microphone. I am a beginner and this would be very easy using the web. Is React Native still too young for this task?
You might wanna look at react-native-android-voice, a React Native module that supports speech-to-text for Android.
As #delkant mentioned, there's now also react-native-voice that supports both Android and iOS.
Alternatively, you can always write your custom native module using Android's SpeechRecognizer API. Here's a summary of all the classes and interfaces you might need for this task. If you are familiar with developing native Android apps, it's pretty easy to create a native module and bind it to your React Native project. Here's the official documentation of how to achieve this.
You also have react-native-voice
A speech-to-text library for React Native.
It supports android and iOS
The react-native-bluemix module provides both SpeechToText and TextToSpeech for React Native: https://github.com/pwcremin/react-native-bluemix
It wraps the Watson tools for both ios and android: https://github.com/watson-developer-cloud
React Native uses SFSpeechRecognizer under the hood for iOS which have various limitations : https://developer.apple.com/documentation/speech/sfspeechrecognizer
Be prepared to handle failures caused by speech recognition limits. Because speech recognition is a network-based service, limits are enforced so that the service can remain freely available to all apps. Individual devices may be limited in the number of recognitions that can be performed per day, and each app may be throttled globally based on the number of requests it makes per day. If a recognition request fails quickly (within a second or two of starting), check to see if the recognition service became unavailable. If it is, you may want to ask users to try again later.