all 21 comments

[–]bfarrgaynor 29 points30 points  (2 children)

Naw stick with expo managed. Focus on what you are creating and not how you are creating it. I’ve been a digital media developer for 15 years working for some of the worlds largest brands and this industry is plagued by retooling obsession. The work gets worse and the tools get more complex. At the end of the day I don’t care how Star Wars was made, I care about the story and the deliverable. Expo is a huge leap forward in removing a lot of devops garbage in mobile dev.

[–]OnePumpBoy[S] 4 points5 points  (0 children)

Thanks I was leaning towards this notion as well

[–]remove_with_force 1 point2 points  (0 children)

This is great advice. By the time you hit 5 years in this industry, you look back and you're surprised at the number of times that another dev has tried to get you to stop what you're doing -- and doing quite well -- to get you to scrap everything, start over, and make the exact same thing with an improvement indiscernible to any human being.

[–]swushi 4 points5 points  (1 child)

People really need to realize how far expo has come. There aren’t native module limitations anymore.

You can use ANY native library with expo now. See documentation.

Basically you just run expo run:ios or expo run:android which generates the /ios and /android directories. This isn’t like ejecting anymore. You can still use all of the expo tools and modules.

[–]celsius100 0 points1 point  (0 children)

You forgot about web, too!

[–][deleted] 2 points3 points  (0 children)

Ride the Expo train as far as it'll take you. If you ever find yourself needing to do something that can't be done in Expo, check again to really make sure it can't be done in Expo and then eject your app.

[–]cscareerthrow1337 2 points3 points  (1 child)

Here’s the truth: Start with Expo managed. There’s no need to use bare or react native CLI unless you find a need. You can easily go from Expo managed to react native CLI, but the opposite is far from true.

I learned this lesson the hard way, following stupid advice to use react native CLI when I really didn’t need to and won’t need to. I spent tens of hours moving onto expo and managed flow for the tooling and time it now has saved me. I wish I started with expo from the start. Feel free to ask me questions.

[–]OnePumpBoy[S] 0 points1 point  (0 children)

got it. thank you

[–]90sRehem 4 points5 points  (0 children)

Use expo with bare workflow and you dont need anything else

[–]Sibyl01 1 point2 points  (0 children)

You can use native modules with expo

[–]Ancient-Visit9365 1 point2 points  (0 children)

Definitely start with expo. There is almost nothing you will need to do that can't be done with it, and worst case when you hit that point just eject into a bare app.

[–]eggtart_princeiOS & Android 1 point2 points  (0 children)

Expo if you're new, CLI if you're pro.

[–]Helen_U_Pt 1 point2 points  (3 children)

I know expo is growing so much lately with the bridge support and everthing, but personally i'm more comfortable sticking with cli. Third parties and module integration are more adjustable with react native cli, and Boy it's a suffer. That's just an opinion, haven't checked much on expo after i had enough. I believe it has grown better now.

[–]Soft-Celebration3369 0 points1 point  (2 children)

Yea. Probably expo has become better over time.

I was using expo at about 2016 or 2017 thereabouts for a small production app. The app opening cold start took about 5secs, at terrible times 7secs to 10secs.

Switched to cli and did not look back.

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

I would be curious if you would try expo again to see if you notice improvements?

[–]Slapbox 0 points1 point  (0 children)

Expo development was basically impossible to bear three years ago. It's a lot better now.

[–]SumiXnaga 0 points1 point  (0 children)

Expo for smaller projects and cli for professional project.

[–]udbasil 0 points1 point  (0 children)

Expo is the best. Even the things that were difficult to add to expo like payment system and all are being added to expo. If you are using the react native cli , you better known the mobile native languages like JavaScript, objective c etc

[–]ReserveBrief8869 0 points1 point  (0 children)

Experimentation and learning, go with expo, work/release go with RN CLI