4 ms·
I think React Native is fantastic for getting out basic applications that may need camera, map, browser, and storage, etc capabilities. However, once you need m
by cplantijn 3y ago
I think React Native is fantastic for getting out basic applications that may need camera, map, browser, and storage, etc capabilities. However, once you need more intricate functionality, I think it's best to write modules in Swift/(Kotlin/Java) and have your React Native UI communicate with your modules via the bridge.
I think React Native solves an organizational bandwidth issue. Building true native applications per platform will always outshine any results you get from React Native, both in performance and capability. However, if you have just a few developers, I think React Native is a practicable compromise.
Companies like Airbnb have the engineering bandwidth to develop bespoke platform specific applications, it's up to you and/or the company you work for to know what compromises can be made.
- nwienert 3y agoI don’t think this is so true anymore now that you have such huge investment by the likes of Shopify, with many slick libraries, or for example Reanimated which makes very bespoke and interactive animations performant. Add something like my library which uses an optimizing compiler to make things much faster on native/web when sharing code and I think you can make just about any experience you want. People like Catalin Miron do tweets replicating native UX quite successfully across many examples. You will still have to invest a lot to make a truly drop dead experience, but you have to do that anyway even in SwiftUI, which I found to be not so easy to just snap your fingers and have nice UX. There are many performance pitfalls there, and having to write your app 2-3 times means you have a lot less to invest into it.
- pedro_rtm 3y ago[dead]
- hn_throwaway_99 3y ago> I think React Native is fantastic for getting out basic applications that may need camera, map, browser, and storage, etc capabilities The thing is, though, browser-based APIs let you do all of that now, in a way that is usually a lot simpler to access. In these cases it's often a lot easier to just build a Progressive Web App for Android (Google let's you put PWAs directly in the Play Store), and wrap that with a thin native wrapper for iOS. One of the big "aha" moments I had was a couple years ago when I was trying out Stripe's Identity product, which lets you take a selfie and a picture of your ID for identity verification purposes. It's pretty amazing how Stripe was able to do the full image analysis (i.e. edge detection when you take a picture of your ID) solely with browser APIs. With the big exception of games, there are a vanishingly small number of apps that really require native functionality these days, given what you can do in the browser.
- ferahl 3y agoAgree. If you carefully program something without tons of crap 3rd party libs in something like SolidJS im sure you could get it “native feeling” too
- ferahl 3y agoI’ll add I’ve worked on large scale RN apps used by millions per month. And the performance is awful. In fact I don’t think it would be possibly to make an advanced price chart like Tradingview for example, which runs perfectly well on a mobile.
- m8s 3y agoIt doesn’t really matter what can be done natively versus in a browser. For many folks, apps are the internet. This take is very developer-centric but it doesn’t account for the real world. Many people prefer using apps, especially middle-age to older demographics. That’s what our analytics say at least.
- adamddev1 3y agoTrue, but the nice thing is now PWAs can be in the app store and indistinguishable from apps.
- hn_throwaway_99 3y agoAgree 100%, which is why I wrote "In these cases it's often a lot easier to just build a Progressive Web App for Android (Google let's you put PWAs directly in the Play Store), and wrap that with a thin native wrapper for iOS." In other words, these browser-tech-based apps show up in the app stores like any other app.
- nwienert 3y agoThe experience of said apps just doesn’t hold a candle to RN or native apps. People can tell the difference, for all but your sort of back office type apps you’ll want native views.
- neya 3y ago> I think it's best to write modules in Swift/(Kotlin/Java) and have your React Native UI communicate with your modules via the bridge. Wouldn't it be simpler to just write everything in Flutter? The react + base swift modules looks like a maintainability nightmare, and especially consultants would never touch if the employee who wrote it ever left the company.
- wredue 3y agoIt’s difficult to pick flutter because Google has 0 goodwill left. Even if flutter is good (and I don’t believe it’s all that great), you’re still taking a massive gamble adopting it, and that’s a huge leap that a significant portion of developers are not going to take. Googles reputation for randomly ending the life of stuff makes flutter an impossible choice.
- rewmie 3y agoIsn't React Native a framework that generates GUIs using native frameworks by transpiling whatever React code you have down to the native frameworks you're targeting? I get the point of reusing front-end expertise to develop other frontend code like desktop and mobile applications, but I struggle to understand the selling point of React Native. If I recall correctly React Native started as a personal project, and that's perfectly fine, but I don't understand who in their right mind would base their product on a convoluted and heterogeneous Jenga stack of technologies when all they need to do is just use the native frameworks.
- Klonoar 3y agoIt’s not transpiling - it’s talking over a bridge and instrumenting native code.