ueno-llc / react-native-starter

Professional react-native starter kit with everything you'll ever need to deploy rock solid apps
https://ueno-llc.github.io/react-native-starter
MIT License
573 stars 89 forks source link

Is possible a Expo Support? #8

Closed MichelDiz closed 6 years ago

MichelDiz commented 6 years ago

I believe that all dependencies you use are compatible. Expo is way faster to work than RN.

Cheers.

birkir commented 6 years ago

Hi Michel Expo actually does not support react-native-navigation.

Care to explain what libraries we include are supported by Expo?

We know Expo is easy, but we feel it's not something you would want to publish.

Salakar commented 6 years ago

Agree with @birkir here, expo is far from suitable for a polished performant production product, not to mention the bundle size as well. It's great though to prototype I guess.

isaachinman commented 6 years ago

@birkir @Salakar Sorry to hijack the thread but I believe it's pretty related: do you believe react-native-starter to be approachable to a React dev with ample experience developing web apps with Redux and MobX, as a first professional RN build?

I am very interested in the looks of this project as it seems incredibly sensible, but as a starter kit it's relatively under the radar and I have the feeling that once I fork this thing and start to build something of real complexity, there's going to be a huge gap in knowledge when something breaks.

I have spun up a few Expo apps and have come to the same conclusion that they're nowhere near what one would expect from a production app.

Do you characterise this repo as approachable to new RN devs coming from a React background, or something which would require previous RN experience to handle?

MichelDiz commented 6 years ago

First of all, the React-Native (Facebook) team itself is recommending first-time use of Expo by focusing on "create-react-native-app" read in https://facebook.github.io/react-native/docs/getting-started.html I believe it's a good entry aproach.

Expo does not support non-native modules. JS modules only. I did not know that the react-native-navigation had native needs. I thought it was pure JS. Anyway, but https://reactnavigation.org/ works perfectly. And it's simple to use.

All JS modules are automatically compatible. Lodash, Mobx (all you use), react-native-blur is supported internally by the EXPO. Firebase is also supported.

What do you mean "we do not want you to publish"? why?

Salakar commented 6 years ago

@MichelDiz author of react-native-firebase here - expo is most definitely not supported 😛 the Web SDK "works" in EXPO sure, but has a very limited feature set and isn't very performant:

image

birkir commented 6 years ago

@MichelDiz Actually they never state that create-react-native-app is recommended. But they do however say it's the easiest.

You could be right that react-native-navigation works perfectly, maybe for you. For others, it doesn't. There is so much gap between those two libraries in terms of performance and consistency. You should really try RNN out to see the difference.

We know that all JS modules work with Expo, and that is not the issue. The issue is native modules like @Salakar was kind enough to explain to you.

It's a great discussion for pointers where we can update the documentation for concerns like this.

Salakar commented 6 years ago

@isaachinman this project is actually a really good start and covers the most common headaches you'd find on your own i.e testing, code push etc

The main thing about developing React Native apps without expo is dealing with xcode and android studio - they can be a headache and sometimes cause random issues.

Generally though you only have to deal with the native side complications in 3 places:

So it's not all the time, just in the seemingly annoying places like the start and end :) but with persistence those easily become second nature - don't be afraid to get stuck in, you get a full picture of the whole process.

If you end up using firebase services from this starter come join our discord - more than happy to discuss / help.

Salakar commented 6 years ago

@birkir it's a constant battle for us this, welcome to the show 😄 for example

MichelDiz commented 6 years ago

@birkir , my interpretation is that it is a recommendation. If it were not they would only "quote" the Expo. And they would not create a tool that few understand that this is Expo by under the hood.

birkir I think it you get confused, I said in the name of "React Navigation" that has the "support" open the React-Native team. And it's actually easy for anyone, just evaluate for yourself if I'm wrong. It is much easier than "react-native-navigation" because you do not even need complex native configurations.

Okay, are you going to limit your starter kit in favor for just one module? As Isaachinman said, what is your target audience? yourself, your colleagues or newbies?

Maybe someone who has no interest in Firebase, just want something with "graphql" not to use your kit. So I would have thought that a kit aimed at beginners had to be simple or with a CLI for optional configurations like the Salakar RNF.

Anyway, it was just a question. If the answer is categorically a "no". There is nothing to discuss. Case closed.

And @Salakar , I know your project. I already studied it. But I gave it up for the simple fact that I did not have Expo support. And I know it's a choice of the Expo team, as it would increase the bundle size of the Expo.

My case back there with Firebase was that I wanted only one or two Firebase features and not a whole complex features out of the box. But this is irrelevant. In my opinion StarterKits should be "starter" for people to absorb in a smooth learning curve. Otherwise isn't a "Starter Kit" is a "middle advanced kit".

birkir commented 6 years ago

Few things to point out.

This starter kit is aimed at developers who want to step out of create-react-native-app and into something a little bit more concrete.

"Starter Kit" does not mean it is for beginners. It means "get started quickly" with some specific set of tools.

MichelDiz commented 6 years ago

"has the "support" open the React-Native team" isn't "created or maintained by" oO It is misinterpretation.

And What is the big deal with the Expo? What makes you guys argue so passionately? For me it's a simple and easy way to start a study. And what I see is that isn't a big deal at all because you have an official "support" from RNA team...

Anyway, whatever xD Cheers guys! I appreciate your time.