Recommended libraries for building an app which includes for deep linking and oauth - react-native

I have recently started to build a react-native app, which I want to build for both iOS and Android using a firebase Backend, and Branch.io/Firebase deep-linking services. I want to include in it both OAuth provided by Google and some kind of invitation link by using deep-linking. I have encountered problems in finding a way of supporting both.
It is worth mentioning that I am new to React and javascript, and have no experience in it.
I have tried using react-native-cli and tried to add OAuth to Google using firebase. I couldn't find enough documentation, so I followed a tutorial on youtube, and only managed to make it work by switching to Expo instead of react-native-cli.
Then I tried implementing some kind of invitation to groups in my app, using deep linking. I tried firebase's Dynamic links but got an error that firebase.links() is not a function and couldn't solve it due to lack of docs about it.
I then found out about react-native-branch library. It is in Alpha version in Expo so in order to use the native module I found out that I had to detach from Expo, and I wonder if there's an easier way to do it.
I've spent several days, as expected, in order to try and solve those issues. Is there a relatively simple way to do it?

Related

How can I monitoring errors in React Native?

I'm trying to get errors from my React Native app, just now the app it's in production so I need a free way to get the users errors to fix it and know what happened. I am using React Native with Expo.
Abstract / Answer
Generally speaking, Expo offers great error detection for debugging purposes when running it in local development mode. But since you weren't specific, I'm going to assume you meant production not development. Your best bet would be using Sentry. If you would have asked me before then I would have suggested building your own module based on native events and report back using Firebase or something similar. But since Sentry is now well integrated into Expo, then your best bet is using it. It's a great platform with many features, it's definitely worth it.

Expo integration with Google Sign In

I am trying to add login via Google account to my application. I have encountered a problem. Expo offers two solutions.
Google (https://docs.expo.dev/versions/latest/sdk/google/) - This can only be used in a development environment. I have used it but it does not work in a standalone application, in my case it throws the error "redirect_uri_mismatch" /
GoogleSignIn (https://docs.expo.dev/versions/latest/sdk/google-sign-in/) - Doesn't work in the emulator so I can't add it to the application because I can't fix potential errors.
My question is what the hell library should I use?
I have already tried expo eject and use Google Sign In from React Native. However I got an error that Expo does not support custom native modules. Help!
Thanks in advance.
Edit: SDK 44 Release
With the release of SDK 44, expo-google-sign-in has now been deprecated in favour of expo-auth-session OR #react-native-google-signin/google-signin packages. If you want to use the latter, you will need to follow the custom development client path.
Pre SDK 44
We've implemented Google-Sign-In using the expo-google-sign-in library. Implementation is easy enough, but you will have to test using a standalone build of your application which is the only slightly annoying piece of the puzzle.
Building a standalone build is now even easier with EAS (not sure if you have an account - but if you don't, I would highly recommend it.)
I've used a GoogleSignIn library, but I also have pro tip for everyone who will implement it.
Instead of building a project every time when you will need to test it, you can build it once and then just use upadate OTA, it's much faster.

Using Baidu Map for react native/expo

I'm building a React Native App for a Chinese Company. I'm using Expo.
I really would love to use Google Maps, but it is not allowed there...
The best solution I found was to use Baidu Map,
I searched for SDKs and found some of them in GitHub.
I decided to use this one: https://github.com/qiuxiang/react-native-baidumap-sdk
which provides great documentation.
Although, I'm having some trouble implementing it to the app. I think that they don't support expo.
Does anyone here ever have a similar problem?
Or used another map...
Would really save my life!
This library uses native (Android & iOS) SDKs and provides a React Native API on top of them. Expo does not yet support custom native modules, which means you'll have to eject from it to use this package (or any other that uses BaiduMap or other native code).
I'm guessing they probably have a web based JS SDK instead which you could try to integrate into your app via a <WebView /> instead?

How to create react-native app for route like uber, with the use of HERE-MAP?

installed 'npm install react-native-heremaps --save'
This is for react-native init android, I tried some application using ios concept.
Error
Loading dependency graph, done. Error: Unable to resolve module ./index
Referrence:
Github ios sample
this question is a bit vague for SO, something that would require an entire course to answer. Currently it looks like you should learn how to do react-native android before attempting to add on top HERE. There are many great tutorials to get that started and working.
For the here portion you will have to use the Here-Maps-SDK. Since there isn't a react version of this SDK, you will need to link it using a react bridge.
It's not that easy of a process, and will take a decent amount of work to get right.
Here are some examples to help get started: https://hackernoon.com/react-native-bridge-for-ios-and-android-43feb9712fcb
https://facebook.github.io/react-native/docs/native-modules-ios

How to disable/remove IDFA tool(s) from Expo project

I am submitting react native(expo) project to app store. I got to the step where I am told that my app uses IDFA and I had to tick some boxes so that I can confirm that I am using them which in fact is not true.
From research I found out that expo uses analytics tools like Segment and Amplitude which is built in.
I would really prefer to say that I am not using the IDFA and I do not plan to use it in at all. How can I disable IDFA usage in my binary?
I was running into the same problem and I found this issue on the expo repository. It seems that right now it isn't possible to do that, so the easiest thing to do is check those boxes when submitting the app.