expo / create-react-native-app

Create React Native apps that run on iOS, Android, and web
BSD 3-Clause "New" or "Revised" License
13.27k stars 1.35k forks source link

Be very clear about whether you are getting a 'managed' or 'bare' app #844

Open brentvatne opened 4 years ago

brentvatne commented 4 years ago

Describe the bug

It's currently confusing to users that most templates are managed apps but the default template is a bare app. We should be more clear about this and make it easy for a user to choose the option that works for them best.

Additional context

Some more discussion on this here: https://github.com/expo/expo/issues/8563#issuecomment-650678403

mblarsen commented 4 years ago

So the 'blank' template is the managed version of the default template?

brentvatne commented 4 years ago

npx create-react-native-app -> "Default new app" -> bare minimal template

mblarsen commented 4 years ago

Thanks. What I'm trying to understand is if I want a managed app I have to select from expo and then choose 'Blank'. Is that correct?

The second part of my question is: is "Default new app" == "Blank" except that they are unmanaged and managed respectively?

byCedric commented 4 years ago

Hi @mblarsen, I think you might be confusing two tools here. This tool installs a "bare" expo project when you pick the default template. This means it's installing a plain React Native project, just like $ npx @react-native-community/cli init (another tool), but with unimodules preinstalled. Eventually, you get a project that can use all React Native modules and Expo modules without additional config!

If you want to pick an Expo-specific template, you'd have to use $ npx expo-cli init (which is another tool). With that, you can decide if you want a "managed" expo project or a "bare" one. You can also pick one with some existing components, like the tabs/navigation one.

There are some differences between managed and bare expo projects, you can see that here. Keep in mind that whatever project type you pick, you are not locked into Expo. You can always eject from managed to bare projects, and even remove the expo modules from your bare project as well.

PS. I think this issue is more related to the examples part. Most examples are written with managed expo projects, but it doesn't have to be.

leeeGreat commented 2 years ago

I want to ask a question. If I change the rootviewcontroller on IOS, for example, if the rootviewcontroller is a homecontroller, will this action make OTA unable to work?

because there are many other native module like homeController MineController on tabbar,in this case, what i want to do is when i push a PannelController in HomeController,i want to trigger ota update,how can i do PannelController:has rctrootview place the js code