So difference between bare app and react-native app?

Hello!

I’ve read the documents about the bareworkflow.

As far as I can understand, the only difference between the bare template (created by expo init) and react-native init app is the existence of ‘react-native-unimodules’?

Expo init bare template comes with ‘react-native-unimodules’ whereas react-native init doesn’t. Are there any other differences?

I cannot use any of expo commands such as expo build, expo start, or use expo-app client when developing. Am I right?

I don’t seem to find more explanation about what bareworkflow can do and cannot do compared to the managed workflow (other than complete control).

Thank you!

In short—a lot of hard things are handled for you in the managed workflow. But there are good reasons to go with a bare app, like you say complete control.

Here’s Expo’s page about why not to use managed: https://docs.expo.io/versions/v32.0.0/introduction/why-not-expo/

I also summarized it here: https://stenbeck.io/good-reasons-to-eject-from-expo/

In bare workflow you will use Android Studio or Xcode while developing, and the managed workflow you’ll use the expo commands like you said.

Thanks for the reply!

I’ll have a look into the link.

Still need some answer to my question though.

so the only difference between the bare template (created by expo init) and react-native init app is the existence of ‘react-native-unimodules’?

Here’s the diff between two completely fresh inits: https://github.com/marcusstenbeck/expo-init-react-native-cli-init-diff/commit/ad0efd0ffe82f192de9081c11bc6adbb56457156

expo init in red, react-native-cli init in green :slight_smile:

Thanks! But lots of code I do not understand unfortunately :frowning:

so my question is,
I cannot use any of expo commands such as expo build, expo start, or use expo-app client when developing. Am I right?

Then, what are some crucials that expo bare inits can do that react native inits can’t do?

React native inits will not automatically let you use Expo components. That might be a good or a bad thing, depending on if you want to use Expo components.

You can still use Expo stuff in a React-native CLI init, but it will require that you install and configure those components yourself.

Both have the full power and complexity of regular React Native apps.

Anything you can do with React native CLI init you should be able to do with Expo init. The expo init is more convenient if you want to use the expo components.

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.