Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

TL;DR:

* React Native caused problems for AirBnB because they needed more complete and efficient support for native geolocation/mapping features than RN provides

* More generally, frameworks like RN and Flutter are a good choice if your app doesn't need extensive/precise/efficient access to native platform features and a bad choice if it does



That's accurate to the article but not accurate to modern RN or even most of Airbnb's reasoning when they switched.

With JSI now you can get efficient access to native platform features. Before you were able to bridge pretty much any native feature with a native view or extension, but you were bottlenecked by the JS bridge. Nowadays you can use JSI for anything intensive.

As far as Airbnb, it was more they were trying to mix 80% native views with 20% RN views and they found they were doing more work than pure native. If you do mostly RN though you don't have that problem.


> With JSI now you can get efficient access to native platform features. Before you were able to bridge pretty much any native feature with a native view or extension, but you were bottlenecked by the JS bridge. Nowadays you can use JSI for anything intensive.

JSI indeed makes things more efficient, but you still have to maintain code to translate between native and JS.


Yes, but only the minimal to provide that specific native functionality, instead of a full blown native app.

Unless you're doing something uncommon, there's most likely a 3rd party lib for that functionality.

But yes, if you want to use a native platform feature that the standard lib doesn't expose of course you need native code either by you or someone else, that's the flexibility of React Native.


* More generally, frameworks like RN and Flutter are a good choice if your app doesn't need extensive/precise/efficient access to native platform features and a bad choice if it does

+1, if you only ever do superficial platform features RN isn't a problem. However if you want to implement the platform features, like Widgets, Siri/Shortcuts support, Apple Watch support, Spotlight search integration now you're going to start having to maintain extensive bridges to communicate between native and JS.


I’m not familiar with RN ecosystem specifically but in the Flutter universe at least getting down deep into native code is built in with well defined and first class extension points. Not sure the point you’re making actually applies unless maybe I misunderstand something.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: