Using Exp development workflow with a pure react-native application - react-native

Might be a duplicate, didn't find one tho.
I started a new application with the react-native-cli.
I want to use expo for development purpose:
Running on devices through Expo.
Publishing through Expo.
Is such a thing possible?

Copy pasting your 2 questions in Google and the first result...
1.
https://docs.expo.io/versions/latest/guides/testing-on-devices/
2.
https://docs.expo.io/versions/latest/workflow/publishing/
any questions left???

No, its not possible, in the docs its explicitly mentioned you can choose either the expo path or bare react native path. And if you choose expo you can eject from it to pure react native but cant go vice versa because the expo wrapper cant be implemented on the bare app.
so you have to again build an app with expo-cli to use expo publishing facilities etc.
but if you want to use expo modules in bare react native app you can do by using react-native-unimodules .
rn-unimodules
hope it helps. feel free for doubts

If anyone is ever looking for the answer it is stated here:
https://docs.expo.io/versions/v35.0.0/introduction/managed-vs-bare/#bare-workflow
It clearly states that in "bare" workflow you cant use the build services of Expo.

Related

Can I use Expo Packages (such as expo-linear-gradient or expo-mail-composer) Without actually running my app on Expo

Title sums up the question. I do not want to deal with all of the extra drama that surrounds building a full expo app, but using some of their dependencies might help
You can use Expo APIs in any React Native App. The same goes for the mentioned packages.

How to connect to an SSID from an app built with Expo and React Native?

I want my app to be able to connect to a Wifi network whose SSID and password are already gonna be hardcoded in the app. Hope there is a way to do this in expo. I know I could use something like https://www.npmjs.com/package/react-native-wifi-reborn but probably do not want to eject out of expo.
Answering my own question here for anyone who's facing the same problem.
With the latest Expo updates now we can add react-native packages to the managed expo workflow without ever ejecting. What that means is we can install https://www.npmjs.com/package/react-native-wifi-reborn to our Expo project.
We'll just be needing to install expo-dev-client to our project and then use EAS build. Consider reading this guide to follow the exact steps needed https://docs.expo.dev/development/getting-started/
Here is a little blog post I wrote discussing about the same.
https://blog.chiragsrvstv.dev/install-native-modules-with-expo

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 to measure react native (Expo) app startup time?

I have an Expo hybrid app (Managed workflow), running on Expo SDK v37 (React Native v0.61).
I'm struggling to find the best way to measure the time it takes from the moment when the user starts the app until the splash screen disappears.
How would you approach this?
PS: I would use Firebase Performance Monitoring instead, if it was available for Expo Managed apps. But it isn't yet.
Basically I see two approaches:
For pure react-native projects you can use react-native-startup-time library.
However I'm not sure, whether you can just add this library and start to use it, since it's required linking.
But in any case you can eject your project and add this library.
If you don't want to eject expo project I can suggest you to update your project to SDK 38. It has support for RN 0.62.2 and flipper integration as well. So you can setup flipper-plugin-react-native-performance and check the performance.
I hope I helped a bit.

TouchID / FingerprintScanner React-Native

I want to add TouchID / FingerprintScanner support to an app that I'm developing with React-Native#0.54+ and all packages that I use I cannot link the dependencies to it via react-native link (or even without package-name...).
I'm running it via 'create-react-native-app' and using Expo Client.
Any thoughts / help?
i think you shoud detach expo.
working with Expo gives you lots of benefit... but deeper you want to achieve, Expo will make you struggle.
I suggest you to deatch Expo and work with libraries like
https://github.com/naoufal/react-native-touch-id
or
https://github.com/hieuvp/react-native-fingerprint-scanner
Its worth pointing out that Expo supports fingerprint scanning with their LocalAuthentication module. There's an example snack available in their documentation
there is quite a good example here so have a look. It solved my problem.
You can use Expo's fingerprint reader library in ejected apps too. I explained it here https://stackoverflow.com/a/64929151/7477198
Or it is possible to use libraries like https://github.com/hieuvp/react-native-fingerprint-scanner#readme