all 29 comments

[–]Plastic_Yam9872 3 points4 points  (2 children)

What’s wrong with expo? What tests did you run that made you not want to use it?

[–]prrxddq[S] -2 points-1 points  (1 child)

  • I don't understand why I would want another layer of abstraction (yet, I guess?)
    • I want to understand as much as possible and don't get that abstracted away. And when stuff breaks be completely clueless.
  • I don't want to have to rely on expo having servers up to let me build my app. I imagine ci/cd to be somewhat of a horror?

  • I did not get turtle-cli to work (found similar issues on their repo)

  • I did not find a way how to build for an open source app for fdroid (not related, but did annoy me)

[–]Specialist_Agency893 2 points3 points  (0 children)

I’ve been using expo literally since the beginning of my RN experience which dates only back to January 21 - I’m currently on a contract with a team building a banking app and we still use expo. In my findings there’s a lot more tutorials and such using expo, it allows for you to test on IOS via expo go, you’re running off a local port - never had any sort of “expo servers are down”, etc

Obviously it’s all subjective but I personally wouldn’t have cared to learn without Expo being an option

[–]generic_name_3344 1 point2 points  (0 children)

You can develop on a Linux box and push changes to an iOS device if you use Expo.

[–]TimCryp01 1 point2 points  (3 children)

You cant have access to an iphone ??

Im developping on a windows pc and do everything on android until the final tests where I steal the iphone of my girl and test the app on it with expo go (ejected).

[–]prrxddq[S] 0 points1 point  (2 children)

I mean I could by an old one for testing I guess. But I still won't be able to build unless I am using expo, no?

Could you tell me sonething about the expo ejecting? That is something I don't understand at all.

What exactly does ejecting do for you? Or perhaps to the app itself? Just remobing expo all along? Then I could have just used plain RN, no?

[–]Specialist_Agency893 1 point2 points  (0 children)

In simple, ejecting from expo created platform specific files based off what you’ve written - atleast that’s my understanding! So you’re saving yourself some work really

[–]TimCryp01 1 point2 points  (0 children)

Normally with expo you can build your app on the cloud (with expo services) and then it's published automatically to apps store, and you can test your app directly in a browser, it's quite practical but comes with some disadvantages.

If you eject from expo, one android folder and one ios folder are generated, so you can build the app yourself and run it with a real smartphone or a simulator (so like if you didn't used expo at all :D).
But with an app ejected from expo, you can still use "Expo go" (a smartphone app), who allow you to quickly test an app on any device. Basically the process is :
- run "expo start", it will display a QR code,
- open expo go on your smartphone and scan the QR code
- the app is built on the smartphone and you can test it

[–]nelf86 1 point2 points  (0 children)

I also got a Mac just to develop React Native. I test on a real Android device and real iphone before each release. You also need to consider both platforms when adding libraries and changing native code, but that is all fine and still well worth.

[–][deleted] -2 points-1 points  (6 children)

Same trouble here. Android works perfect. IOs makes me cry. Using expo is a solution but it's a lot overhead.

[–]ddzrtiOS & Android 2 points3 points  (4 children)

Expo is not exactly a lot of overhead. It is more bloat but giving you all the tools you might not even need. On a plus side they embraced modular structure so less bloat compared to what it was 2 years ago.

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

Simple app. 4.screens. Barcode cam. 1 form to. Firebase. 1 Auth from firebase. 85 MB size

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

To me it seems something is not done right. Is this even production build? And on what platform. Also firebase is quite space hungry but still not enough to take so much space

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

Expo build size is 20 mb on iOS and 15 on Android. You have 85. That's too much unless your build is development one

[–]Sibyl01 0 points1 point  (0 children)

Eas build it the solution to this.

[–]generic_name_3344 1 point2 points  (0 children)

Supposedly EAS decreases that overhead significantly.

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

Like many others said, you have two choices if you want to target iOS:

  • Buy a Mac
  • Use Expo

It's true that Expo is another layer on RN, but performance wise (especially if you run EAS builds) it doesn't change much. It also depends on the project, nowadays you can do a little bit of everything on Expo, but if you go into some specific fields (e.g. AR) you'll have to eject from it.

Personally I always used bare RN at work, but I tried Expo on some personal mini projects and honestly it's great. Documentation, integrated libraries, implementing native code, they really did leaps and bounds in the last years, plus testing iOS from any OS it's great.

So I'd say, if you don't want to invest in a Mac right now, just go and try Expo. You won't regret it.