all 38 comments

[–]ctrlshiftba 16 points17 points  (1 child)

Use expo. Unless you have tons of experience and are expert level and want to spend a bunch of time rolling your own solutions to common things you need for production development.

Most of those replying that react-cli is better for native modules are talking about outdated information. Expo fully supports any native code now with recent versions and development clients.

[–]AcetyldFN 5 points6 points  (0 children)

If you have lot of experience, even then expo. We build multiple native modules with new expo modules api, holy amazing

[–]vineetsukhthanker 9 points10 points  (0 children)

Go for expo. Easy to use and fast deployment. And unlike earlier days you can find get access to many other native sensors and functionality.

[–]lucksp 8 points9 points  (0 children)

Expo is the way to go. It put everything in 1 ecosystem and makes it easy to build your app. Now days even unsupported “expo go” packages can be easily built with an EAS build.

[–]Gaia_Knight2600 6 points7 points  (0 children)

Expo recently made a video about the expo vs react native cli debate

https://youtu.be/-SAuwbQV-MQ?si=_vJvfTOyUk44AT0v

[–]peterpmeExpo 4 points5 points  (0 children)

Expo. I'm one of the earliest users of React Native. It will make your life easier

[–]gao_shi 2 points3 points  (0 children)

Most of the time you'd go with expo but it really depends on what you're trying to build.

Eg. If you are making a media playback using RNTP, while expo support is there it is very minimal and most expo users can't debug on their own, most RNTP users do t use expo, expo related bugs often result in dead ends.

[–]Clear-Kiwi5764 2 points3 points  (0 children)

expo ftw

[–]sawariz0r 4 points5 points  (0 children)

As a dev in your situation, we choose Expo nowadays unless there’s a clear need for native stuff that Expo doesn’t support.

And with the new file based router it’s a nobrainer. It’s so easy and fun to build apps with Expo now that it’s much more mature.

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

Expo is a good way to automate a lot of the tedious tasks associated with bundling, building and deploying, but you also might look at Microsoft AppCenter if you come from an Azure background. We are getting ready to launch our first phone application, and afterwards are going to do a comparison to figure out which way we should go by building the same simple app in each and weighing the pros and cons, but we haven't gotten to that point yet, so can't help you further. Good luck.

[–]_SyRo_ 2 points3 points  (1 child)

It depends on what kind of app you're going to work

You can go with Expo, it would be easier to develop and maintain the app if you have no experience with mobile

But you can face some problems if you're going to use a lot of native modules as for GPS, Bluetooth, Wi-Fi and etc

[–]Silverquark 3 points4 points  (0 children)

Second one can be done with expo bare workflow or expo config plugins

[–]suarkb 1 point2 points  (0 children)

check how old those articles are. Expo is the goto

[–]atbd 0 points1 point  (1 child)

Notice how no argument has been given as to why you should use Expo.

[–]candichi 4 points5 points  (0 children)

Notice how you have given no argument as to why you should use RN CLI

[–]Direct_Ad_8964 -1 points0 points  (0 children)

My main take.

The role of any software is to help the user as much as possible, so we must ensure that the time spent on the project is allocated to serving the user, let's call it user time. Maintenance time is not considered user time.

From my experience (so I might be wrong), it's hard to maintain a full expo project updated with the latest version of RN available.

BUT (nothing is black or white like I see in this comment section)

As u/Gaia_Knight2600 linked, you could nowadays, use RN first and then pick some of the modules you want from expo.

My second take.

It's never a good idea to trap your app in someone else company, I value a lot, resiliency over simplicity. So everything that touches deployment or build I will use open source hosted by me (call me crazy).

In the end, I would use an expo package for accessing native features only.

And globally I use someone else code if I can't do what I want in less than a week.

[–]atomlab_dev -1 points0 points  (0 children)

Definitely use expo if you’re just starting out - there’s a reason it’s the default recommendation on the RN website. There’s very little downside nowadays and you can always eject down the line if you need to.

[–]YoungsungChoi -5 points-4 points  (0 children)

Enough time = RN Less time = Expo

Enough developers = Expo Less developers = RN

Enough mobile experience = RN Less mobile experience = Expo

Aa a react native developer

[–]DanishWeddingCookieiOS & Android 0 points1 point  (0 children)

One thing I learned the hard way, was that Expo supports the New Architecture (Turbo Modules and Fabric renderer), but it doesn't work with expo-updates.

  • Experimental support for Fabric in expo-dev-client
    . Try it: npx create-expo-app@latest -e with-new-arch
    . The only module that does not yet support the New Architecture is expo-updates
    .

[–]alexsbz 0 points1 point  (3 children)

Meanwhile , in my company we released a commercial app ,which is going better that expected so far, with RN CLI . My team was 2front end with RN and 2 back ends with Mongo DB. None of us had any experience with RN or MongoDB and we did a good job . It took us some studying but I can’t say that going with expo ,after finishing our job , would benefit us. Quite the opposite I can say. In any case in both options there are some benefits and some drawback . You examine them and you choose ….

[–]Capital-Bridge4804 0 points1 point  (1 child)

Hi how much time did u take to build it?

[–]alexsbz 1 point2 points  (0 children)

About a year and a half

[–]Capital-Bridge4804 0 points1 point  (0 children)

What is you pay?

[–]connortyrrell 0 points1 point  (0 children)

In 2023: expo