Hacker News new | ask | show | jobs
by petekp 2830 days ago
While React Native doesn't fully support native navigation components out of the box, there are third party libraries that interface directly with native navigation modules, e.g. https://wix.github.io/react-native-navigation. Moreover, React Native makes it easy for developers to 'drop down to' native code at any point to fully leverage native SDKs and APIs alongside their Javascript code using the NativeModules API.

Example of native modules with React Native wrappers: https://facebook.github.io/react-native/docs/components-and-...

NativeModules API: https://facebook.github.io/react-native/docs/native-modules-...

2 comments

It's easy to get trivial examples of native integration working, but as soon as you try more complex things it starts to break down. Code push? Oops, your native integration in old app versions just broke. Share an existing native UI library? Sorry, Yoga has its own (incompatible) thing going on. Yes, there are workarounds for all these things, but at what point does the overhead defeat the purpose?

Also, the security and performance implications of the Javascript dependency ecosystem should not be ignored.

Small greenfield app on a shoestring budget? It's perfect for that.

It still doesn't give you native look & feel.

Although much as it pains me, I think that is a lost cause. And it was lost through attrition - devs kept throwing non-native (often, JS-based) apps at users, and users got conditioned to each app having its own look, much like websites.

I feel you. In most cases, Android and iOS's native components are superior to custom-rolled UI elements. Easier to use, more performant, and they leverage our platform muscle memory.

Fortunately, it does seem like these platforms are beginning to converge on a set of common UI patterns, e.g. Android adopting the tab bar, and iOS apps beginning to adopt Android's horizontal-paging navigation. The colors, iconography, and typography shifting can disorient somewhat, but I'd argue it's the navigation model that's most disruptive when using different apps.

It's much worse on the desktop, where we already had very detailed GUI standards, with decades of polish - and it's all getting thrown out because of the latest Electron etc fad. The upside is that Linux sees some great apps (like VS Code), but I'm not sure that's worth the cost.