Live data from Hacker News

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

github.com

121–130 of 172 posts

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

#121
A few years ago our main concern with Expo was about security, man-in-the-middle kind of attacks because you are hardly depending on a third-party, has anything change to robust this? I understand that to general apps Expo could he a dream.

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

#122

Earlier quoted context omitted.

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 N…

I meant both Animated APIs - neither is able to perform synchronous layouts - because react native is not able to do that. That’s the issue that’s stopping the page sheet controllers being added to react native. I actually was helping getting this added, but we never managed to get the layout issues fixed - https://github.com/facebook/react-native/pull/34834

The measure function you mention isn’t co-ordinated to the layout, so you could read it while a layout is pending and get old data - but that doesn't really matter for most cases

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

#123
post #101
post #90

I’m primarily a web developer that’s long been interested in native mobile environments and after trying out many of these cross platform frameworks (all the way back to Appcelerator for those who remember!) my conclusion always ends up that they’re almost always a bad idea. The experience is inferior to native, it’s full of compromises to make cross platform work and you’re at the mercy of a company standing between…

After 4 years of doing cross-platform mobile, I loathe React and React Native by now, and I dislike Expo. But… suggesting any other alternative is tricky. True native development is, indeed, much better. But a small team will be hard-pressed for doing good work on both platforms, especially once you start fiddling with more important APIs. Configuration and getting your system to compile things to properly is almost…

I came across a standard notes blog recently about how they “migrated” to a single codebase by relegating RN to render a single component of their web view, which is the same view that’s rendered in their desktop app and website, using a native “DeviceInterface” wrapper for each OS.

Sounded like a preferable approach to dealing with the complexity and limitations of RN and multi-platform. I wonder why more teams haven’t gone with this type of approach…

https://standardnotes.com/blog/react-native-is-not-the-futur...

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

#124

I used to maintain Detox for iOS when I was at Wix, from 2017 to 2021. We ended up dropping support for Expo for plenty of reasons, some technical, some "political". The people reporting "issues" (more like asking questions) for their Expo apps, usually had very little technical understanding of any of the increasingly thick environment stack (the Expo layer, RN layer, UI framework layer, OS layer). They were basical…

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…

On the flip side, Unity is massively successful, and basically every indie game developer who has found any success eventually ends up porting their game to it anyway, precisely because of the cross platform benefits.

The problem isn’t that middlewares are bad. They are great: Unity and Unreal, your browser, Java…

The problem is mobile apps don’t make money. Games and web services do. The OP is talking about low quality users. They’re broke! They’re not incentivized to fix their own problems either! It’s all just a blub for them. So middlewares improve for the audiences where they’re at least viable, and stagnate when they support something that no one should be bothering to do in the first place.

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

#125

As a designer specialising in mobile apps, I have to say nothing still comes close to native codebase experience. Expo & RN is fantastic for MVP (and I've been a super early adopter of RN back in ~2014). But once you start building anything serious, you will very quickly start hitting the walls. As an example, some time ago, it was impossible to implement those iOS large headers that shrink to small once you start sc…

One part of Expo's approach to UI is to create native user experiences. For several years Expo has invested in React Navigation and Expo Router, which use the system navigator. For instance, in iOS apps made with Expo in 2023, your headers will resize as the user scrolls and layered modals are natively supported. Details like showing the navigation stack when long-pressing the back arrow are supported from day one because Expo apps are native apps that use the system behavior.

In contrast, 2D UI frameworks like Flutter, Silverlight, and Flash replicate the system UI. In my experience it is possible to create a replica that visually looks like a pixel-perfect match but it is very difficult to make the replica behave the same, like the rendering the subtle layer transitions you talked about, invisible boundaries around gestures, and showing the navigation history stack. It is an uphill task and using the native system UI is a tailwind for Expo.

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

#126

Earlier quoted context omitted.

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 N…

I meant both Animated APIs - neither is able to perform synchronous layouts - because react native is not able to do that. That’s the issue that’s stopping the page sheet controllers being added to react native. I actually was helping getting this added, but we never managed to get the layout issues fixed - https://github.com/facebook/react-native/pull/34834 The measure function you mention isn’t co-ordinated to the…

In that case I would stand corrected.

May I ask, does the New Architecture and Fabric not solve this problem?

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

#127
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.

Using Swift UI, or UIKit, has its own quirks. And then you need to shift mental gears with entirely different UI component paradigms.

I find most people making this argument haven't worked full time with one or the other.

If you're a larger company who can afford two teams/groups, or if you are working on something lower level like OpenGL or ML, it makes sense.

Having done both for multiple years, I can't understand when people think it would be faster to build separate apps. It's not even remotely close. You're swapping out doing bug fixes, platform specifics like push notifications, the occasional separate UI implementation, and distribution twice with doing _everything_ twice.

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

#128
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)

Building Expo apps on your own hardware is definitely supported. Specifically, run "npx expo prebuild:{android,ios}" to generate your project's "android" and "ios" directories. Open them up in Android Studio and Xcode (or use their command-line equivalents), respectively, and build.

The managed services (EAS) are optional for Expo apps. The independence between Expo, the free and open source framework, and EAS, the hosted service offering, is something the Expo team consciously works on.

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

#129
post #121

A few years ago our main concern with Expo was about security, man-in-the-middle kind of attacks because you are hardly depending on a third-party, has anything change to robust this? I understand that to general apps Expo could he a dream.

The Expo framework runs entirely on the end user's device. It's client-side software and I don't think MiTM attacks are the main part of the threat model. Like with most open source you may want to vet the supply chain and the code you include in your apps but Expo has been maintained for over seven years now and is generally trusted in this way in my experience.

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

#130

Earlier quoted context omitted.

I meant both Animated APIs - neither is able to perform synchronous layouts - because react native is not able to do that. That’s the issue that’s stopping the page sheet controllers being added to react native. I actually was helping getting this added, but we never managed to get the layout issues fixed - https://github.com/facebook/react-native/pull/34834 The measure function you mention isn’t co-ordinated to the…

In that case I would stand corrected. May I ask, does the New Architecture and Fabric not solve this problem?

They keep saying you can do it - but I can’t actually see how. I don’t do a whole lot with the new architecture at the moment - it’s still very new and a very bumpy ride if you want to adopt it
Post reply on HN