Live data from Hacker News

Expo – Open-source platform for making universal apps for Android, iOS, and web

github.com

61–70 of 172 posts

Re: Expo – Open-source platform for making universal apps for Android, iOS, and web

#61
post #57
post #6

works until you need to use a native library that hasn't been ported for Expo, then you need to eject. I would only consider Expo for POC/MVP

What does eject mean in this context?

Ejecting means turning the project in to a native project i.e. one that can be opened and edited with Xcode or Android Studio.

This is in contrast to an IPA or AAB file which can be deployed to a device or distributed to an App Store.

Re: Expo – Open-source platform for making universal apps for Android, iOS, and web

#63
post #51

Slightly off-topic: how practical is it really to build devices (iOS and Android) and web from the same code base? My poor understanding is that React Native, and hence Expo, doesn't use the same CSS frameworks as web development. I'm curious how that works from the same code base, or perhaps that's one of the major difficulties. Also I see Expo as a fancy build framework but it's still fundamentally a RN application…

I've used the same codebase for a PWA, iOS and Android app, but using Capacitor instead of Expo. Here is a blog post about the architecture: https://khromov.se/how-i-published-a-gratitude-journaling-ap...

Re: Expo – Open-source platform for making universal apps for Android, iOS, and web

#64
post #34

I've used Expo going on 3 years now, their development team is incredible. There are very few reasons to use base react-native over Expo anymore; They make upgrades to new RN versions easier, can support any custom native libraries, have an awesome build service (EAS), support OTA updates, their docs are great... I could go on and on. If you're a RN dev and haven't tried out Expo in the past year I highly recommend g…

I haven't used react native in years. Expo at the time felt like a shitty add-on trying to capture some part of the app development process but I didn't feel it added anything. Sounds like I s gotten a lot better and found an actual usecase. I'll have to check them out again.

Yea, felt the same but haven't used react native for years either. Some concrete examples:

- Generally a poorer developer experience (bugs, bad documentation).

- Couldn't use some popular/common react native packages. It needed to be compatible with Expo, and there was an expo specific version to use the camera for example. These would have different (and more) bugs. Trying to use any unsupported packages meant ejecting, a hell that might be similar to ejecting from create react app or using craco, perhaps.

- Wasn't really adding much apart from being "all-in-one", but unfortunately each piece was sub par to the original react native.

- Unfortunately the react native docs were defaulting to suggest using Expo. They still do that now: https://reactnative.dev/docs/environment-setup. And yet developers often eject from Expo, so you'd rewrite the scaffolding of your app without expo instead of ejecting. IMHO that's quite sad to see the React Native docs still suggests Expo.

Side note: I've been using Flutter for a few years now, much better developer experience. Doesn't have code push yet, but https://shorebird.dev/ is working on it. (I am not affiliated with them).

Re: Expo – Open-source platform for making universal apps for Android, iOS, and web

#65

Earlier quoted context omitted.

AFAIK using -—local still requires an eas account though.

It does. It's possible to make a patchset that lifts this restriction, though. If you're interested, I'd be willing to make it available.

Just to make sure: if the company goes bankrupt, will I be able to continue releasing updates etc.?

Re: Expo – Open-source platform for making universal apps for Android, iOS, and web

#66

Earlier quoted context omitted.

AFAIK using -—local still requires an eas account though.

It does. It's possible to make a patchset that lifts this restriction, though. If you're interested, I'd be willing to make it available.

The Expo setup that I use never calls into Expo servers at build time. For OTA updates, I've managed to get my self-hosted Expo update server working too, although I'm not using it at the moment, as its incompatible with the React Native New Architecture (it's the last expo package to lack this support - hopefully they'll add it soon).

Re: Expo – Open-source platform for making universal apps for Android, iOS, and web

#67
Expo is great. I use it.

My primary issue with it is the lack of support for in app purchases (last checked in late 2022).

The only easy way to do it is via RevenueCat, as none of the other RN IAP libraries work with Expo.

Expo also has built in support for over-the-air updates, which is great. However, it is a paid product, for $5/m per 1000 users (first 1000 free).

I believe you can run your own server for OTA updates, but it's fairly obvious that this feature will eventually be removed when they need to monetize harder.

Re: Expo – Open-source platform for making universal apps for Android, iOS, and web

#68
post #51

Slightly off-topic: how practical is it really to build devices (iOS and Android) and web from the same code base? My poor understanding is that React Native, and hence Expo, doesn't use the same CSS frameworks as web development. I'm curious how that works from the same code base, or perhaps that's one of the major difficulties. Also I see Expo as a fancy build framework but it's still fundamentally a RN application…

It has become very practical / doable in the recent year or so. In my experience, if you have lot of frontend web experience, the easiest way to ship a RN app is by using Solito [0]. Also check out Nativewind [1] which allows you to style native apps the same way like you would on web. I was able to ship the first version of our app in about 1.5 weeks with this stack. Also checkout Tamagui [2].

[0] - https://solito.dev

[1] - https://www.nativewind.dev

[2] - https://tamagui.dev

Re: Expo – Open-source platform for making universal apps for Android, iOS, and web

#69
post #51

Slightly off-topic: how practical is it really to build devices (iOS and Android) and web from the same code base? My poor understanding is that React Native, and hence Expo, doesn't use the same CSS frameworks as web development. I'm curious how that works from the same code base, or perhaps that's one of the major difficulties. Also I see Expo as a fancy build framework but it's still fundamentally a RN application…

Using Expo and React Native for web is not really practical. But simply having your mobile and web applications both in TypeScript you can share bits and parts of code, most notably the types & data models, application logic code, and assets (from simple image files, through lottie animations, to strings & their translations), but also potentially run some parts of your web application in a webview, ...

Re: Expo – Open-source platform for making universal apps for Android, iOS, and web

#70
post #15

Tbh, I liked expo, but since you cannot build locally nowdays (you can eject and build, but that won't work 99% of the time, literally didn't work for me on the hello world example), I kinda just threw it in the "cool, but won't use" bucket for time beeing :/, could change in the future, but I don't know how I feel about 3d party service (EAS) building my app and holding my signing certificates (yet)

FYI I've made a patchset that pretty much allows me to actually use the EAS --local builds offline and without an EAS account, so it's in fact possible, even though they, for obvious reasons (e.g. https://github.com/expo/eas-cli/issues/1606 ), don't encourage it.

Would you mind sharing this? I’ve only used expo for experimental non-production apps so far but it works be great to be able to do this if ever needed. Reading this thread makes me a bit more hesitant about using expo.
Post reply on HN