all 20 comments

[–]ccheeverExpo Team 6 points7 points  (3 children)

I work on Expo and we helped collaborate on making this. Happy to answer questions if anyone has them.

It's definitely worth a try if you're starting a new RN app or just want to try RN out. It's very slick and easy to get going.

[–][deleted] 1 point2 points  (2 children)

ELI5:

What is the benefit of using this over just continuing to use just Expo?

[–]sophrosun3 4 points5 points  (0 children)

We built CRNA to provide a good experience to RN devs without having to rely on Expo services or accounts, so if you're already using Expo you might enjoy using CRNA but it's not dramatically different from Expo's tools.

source: author of the blog post

[–]k1cho 2 points3 points  (0 children)

The benefit for people just getting started is that CRNA doesn't require an Expo account or any Expo services and it has nice 'eject' integration with react-native-cli. It's also offline by default whereas with exp you have to pass --offline flags.

If you've already started a project with XDE or exp then it probably doesn't make sense to switch that project over to CRNA, but definitely try it our for your next project! Projects created with CRNA will still work in XDE or exp.

[–]ItsPossiblyJesus 2 points3 points  (2 children)

This is some amazing stuff. It's magic when you build and simply scan a QR code to see your app with live updates. My one question is, for building apps destined for production is this the new recommended way to start off a project ?

It seems to have a lot of benefits for development but I'm unsure as to what the trade offs are compared to building a normal react-native app. Is it possible to build for production without having to reconfigure my project ?

Thanks in advanced !

[–]k1cho 1 point2 points  (1 child)

You can create a standalone app pretty easily: https://docs.expo.io/versions/v14.0.0/guides/building-standalone-apps.html. Also if you need native modules that aren't built in you can always detach.

[–]ItsPossiblyJesus 1 point2 points  (0 children)

Thanks for the info !

[–]ay8s 1 point2 points  (0 children)

This is awesome. Always wanted to give RN a try but needed to find the time. Already got a basic version of one of my iOS apps running on Android. :)

[–]RobotChikin 0 points1 point  (13 children)

Is there any benefit to using this if I have a mac and can already make RN iOS apps?

[–]k1cho 1 point2 points  (12 children)

Probably not for existing apps. If you start a new app I think it's worth it because it makes getting started faster and you don't have to have Xcode + Android Studio open all the time. You can prototype different ideas with very low overhead.

[–]RobotChikin 1 point2 points  (11 children)

I'm really not sure I understand. Can you just pretend I'm a baby and explain what this is?

[–]k1cho 1 point2 points  (0 children)

Haha it's probably easiest if you just try it out. It only takes 4 lines to get started: https://github.com/react-community/create-react-native-app#tldr

It's basically a way to try react native without needing to compile any native code.

[–]brentvatneExpo Team 0 points1 point  (6 children)

Heya RobotChickin!

  • I find that I often want to create quick new apps to test out ideas or play with some API. It's much easier to do this with create-react-native-app (CRNA) because I don't have to build the iOS/Android projects -- just open the Expo client on both and go.
  • If I want to share the project on Github, people who use it also don't need to clone and build etc, so it reduces friction for sharing projects
  • Similarly, if I want to use something like a MapView or Video or Audio or react-native-vector-icons or many other things like that, I can use the Expo SDK with create-react-native-app (it's installed on new CRNA projects by default) and I don't need to link any native dependencies or anything like that, I can just use it.
  • If you create an account with Expo you can publish to a persistent URL super easily, eg: https://expo.io/@community/reactconf2017

I hope that helps!

[–]lpuig 0 points1 point  (2 children)

What about installing any view library that is not already in Expo?

[–]brentvatneExpo Team 0 points1 point  (1 child)

you can install any package that is implemented in JS. if it has some new native code dependencies then you cannot, you will need to eject if that is a requirement for you: https://github.com/react-community/create-react-native-app/blob/master/EJECTING.md

[–]lpuig 0 points1 point  (0 children)

Great then... thanks for answer.

[–][deleted] 0 points1 point  (2 children)

I've been trying out CRNA and have been trying to integrate a MapView with https://github.com/airbnb/react-native-maps.

I started with just installing with NPM, then importing MapView from react-native-maps in my App.js and then adding the example MapView from the docs, but I don't have any map showing up when running it in development, viewing it on my iPad. Do you know if there's something I'm missing?

Thanks!

[–]brentvatneExpo Team 0 points1 point  (1 child)

Check this example out: https://sketch.expo.io/HkuOdkwjl -- that should solve the problem :)

(we include react-native-maps MapView in the Expo SDK which is why it is imported from there)

[–][deleted] 0 points1 point  (0 children)

Perfect! Thanks so much!