Live data from Hacker News

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

github.com

111–120 of 172 posts

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

#111
post #77
post #52

Without a doubt, Expo is one of the worst tools I have ever used. 1. I can't get a debug build of the app without using their cloud services. 2. Latest version of Android app to preview Expo apps did not work with latest stable Expo version. 3. Random build errors all the time due to some features being deprecated without being mentioned anywhere. 4. Tries to do too much and breaks quite often

They improve a lot in the last 2 years, give it another try. The experience nowadays is pretty pleasant compare the plain RN project

The experience is from my experiments earlier this year

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

#112
My company is moving our app to React Native and evaluated Expo as an option. Our conclusion was that we needed some of the features that using Expo doesn't let you use (a lot of native modules, as we're not rewriting 100% of the app all at once).

Additionally, I think RN has come a really long way from where it was when Expo first came about. Expo sought to smooth over a lot of rough edges, some of which no longer exist.

I think Expo realizes this as well, as their main revenue generator is now their deployment tools. The framework is opinionated toward using those paid services, which my org doesn't want to use as we already have processes for building and deploying, which makes working with it cumbersome.

https://expo.dev/pricing

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

#113
I've seen so many projects like this come and go. They go, in my opinion, for a reason: Web technologies just aren't great as an app platform.

If you want a web-like platform on which to build a cross-platform application, I recommend Flutter. It's not perfect but, it's better than all the other alternatives I've tried.

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

#115

Earlier quoted context omitted.

It’s possible to do all this stuff in RN - you just need good native bindings to the features Stuff like the iOS 13 page sheet modals being broken is still an issue - but there’s a set of present/dismiss callbacks in the modal manager you can override in your code to fix it Not sure if you meant page sheet controllers for iOS 15 (the ones that let you pin it half way up). There have been implementations of this, but…

If asynchronous layout were the culprit, presumably that's the precise type of issue that react-native-reanimated solves? It seems to me that the experiences created via react-native-reanimated run quite smoothly indeed. Of course, the developer still has to reimplement interactions otherwise provided by iOS etc, but React Native should not be a reason for things like sloppy interactions.

The animated package doesn’t come into play here. When the layout needs to be recomputed in RN, it does it asynchronously - regardless of what’s calling it. Part of this can be explained because the JS can hook listen for layout updates via the onLayout prop and make changes to the layout - and could in theory cause infinite loops. But there’s no mechanism - as far as I’m aware - to say you don’t care about that detail and just do it synchronously anyway

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

#117

Earlier quoted context omitted.

If asynchronous layout were the culprit, presumably that's the precise type of issue that react-native-reanimated solves? It seems to me that the experiences created via react-native-reanimated run quite smoothly indeed. Of course, the developer still has to reimplement interactions otherwise provided by iOS etc, but React Native should not be a reason for things like sloppy interactions.

The animated package doesn’t come into play here. When the layout needs to be recomputed in RN, it does it asynchronously - regardless of what’s calling it. Part of this can be explained because the JS can hook listen for layout updates via the onLayout prop and make changes to the layout - and could in theory cause infinite loops. But there’s no mechanism - as far as I’m aware - to say you don’t care about that deta…

I believe you're confusing react-native-reanimated (https://github.com/software-mansion/react-native-reanimated) with the Animated API from React Native. react-native-reanimated allows JS code to run on a UI thread that is able to synchronously modify layout, providing alternative synchronous ways for you to hook into the layouting. For instance, as opposed to the asynchronous `measure()` method provided by React Native to measure layouts, react-native-reanimated allows one to call their version of `measure()` (https://docs.swmansion.com/react-native-reanimated/docs/api/...) to perform the same operation on the UI thread, synchronously.

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

#118

My company is moving our app to React Native and evaluated Expo as an option. Our conclusion was that we needed some of the features that using Expo doesn't let you use (a lot of native modules, as we're not rewriting 100% of the app all at once). Additionally, I think RN has come a really long way from where it was when Expo first came about. Expo sought to smooth over a lot of rough edges, some of which no longer e…

Expo supports custom native code including your existing modules. It is a much smaller step to start using Expo if you are already using React Native.

Using Expo without EAS, the paid services, is definitely supported. The Expo framework is free and open source and is designed to be generally decoupled from EAS. "npx expo prebuild:{android,ios}" will generate "android" and "ios" directories that can be built with existing build processes.

Expo: free and open source framework. Includes Expo CLI, Expo Modules, Config Plugins, Expo Router, debugging tools. EAS: hosted paid services. Includes builds, submissions, updates, credentials. Works with any React Native project whether or not it is using Expo.

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

#119
post #106

Earlier quoted context omitted.

I learned a while ago that is not worth using an abstraction layer over the official tooling (whatever Apple and Google provides you), even for small apps I was building one for each platform (as one dev). Tried at the time Xamarin and PhoneGap, and bit later RN, each one has his quirks and things that works in one platform but not in other so in the end you end up building one app for each platform more or less, but…

I’ve come to the same conclusion. I began to build a very simple app about a month ago and as a Web Dev figured React Native would be the best tool. Having completed about 60% of the app, I’m going to trash the whole thing and restart with Swift/Kotlin. I’ve encountered too many “quirks” that end up burning a huge amount of time for what should be an inconsequential component.

You might want to check out CapacitorJS - https://capacitorjs.com/

It’s more web than RN and depending on what you’re doing might not feel as native, but it’s pretty easy to make a solid app with it.

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

#120
I see a lot of comments bashing cross platform mobile development. By and large, I agree but there is one very important caveat:

RN is amazing for the business, especially small businesses.

Yes it’s full of quirks and yes it’s never perfect but if you’re a small to medium size business trying to get your app to market as cheaply as possible, there is no better option than RN right now. Maybe flutter.

Post reply on HN