Hacker News new | ask | show | jobs
by javiercr 3382 days ago
I'm a bit confused. From this library's README:

> If you are investigating navigation solutions and you are okay with JavaScript-based solutions, we also encourage you to check out React Navigation.

However if you go to React Navigation home page [1] you find this:

> Navigation views that deliver 60fps animations, and utilize native components to deliver a great look and feel.

It looks like every RN navigation library claims to be more "native" than the previous ones.

[1] https://github.com/airbnb/native-navigation/

[2] https://reactnavigation.org/

2 comments

Everything in React Native is "native" views. The issue is that the RN community seems to be pretty heavily divided with respect to exactly where the API boundary should be.

AirBnB's native-navigation library literally has native iOS and Android code to create views, transitions etc.

react-navigation on the other hand is mostly JS driven, instead using the core functionality of React Native, which does generate native views.

The problem with react-navigation (and many libraries using a similar approach) is that you don't get a true native feel once you start interacting with the UI. This is because the JS -> native bridge is async, meaning you literally can't handle events as quickly as they're dispatched in native code - particularly if the events are synchronous.

I'm a huge fan of AirBnb's approach. Doing things in JS just because you "can" is inherently broken (as described above). Checkout the following Github issue for a demonstration of the issue: https://github.com/react-community/react-navigation/issues/1...

I was also confused regarding this. But a good indicator is always if you need to add native components when installing the library, or if it's just a simple npm install