WhoBuilt

Make Your React (Native) App Feel Native

May 5, 2025· 17 min· 2.3K views·Watch on YouTube

Speaker

Oskar Kwaśniewski, senior software engineer at Callstack and React Native core contributor, explains how to make React Native apps feel native at the React Universe Meetup.

What makes an app feel native

Kwaśniewski defines native feeling as how closely an app’s experience follows a platform’s design patterns, behaviors, and interactions. iOS users may expect swipe-to-go-back, while Android users may expect the Back button; iPad and TV users have their own expectations too.

Platform guidelines and native components

Apple’s Human Interface Guidelines and Google’s Material Design documentation describe platform-specific patterns and component use. Kwaśniewski recommends following those guidelines and using libraries that expose native UI elements. React Navigation with React Native Screens can provide native navigation primitives, while React Native Bottom Tabs uses UITabBarController on Apple platforms and Material Components on Android.

Examples across platforms

React Native Bottom Tabs gives tabs platform-specific appearances, including a sidebar on macOS, a floating tab bar on visionOS, and remote navigation on tvOS. Kwaśniewski says native tabs can also respect system behavior: they account for picture-in-picture and can reflect Android’s Material You color settings. He also points to Zeego for native menus and True Sheet or React Native Screens for native bottom sheets.

Keep the JavaScript thread responsive

A long-running loop on the JavaScript thread prevents other JavaScript work from running, so React Navigation cannot process a back action until the loop finishes. Native navigation primitives do not remove that dependency. For work that needs it, moving computation to a native thread can keep the app interactive while JavaScript awaits the result.

Takeaways

  • Follow each platform’s guidelines instead of assuming one design fits iOS and Android.
  • Use native UI components when platform behavior, accessibility, or system integration matters.
  • Check how an app behaves on iPad, visionOS, tvOS, and macOS when targeting those platforms.
  • Keep long-running work off the JavaScript thread so navigation and other interactions stay responsive.

Mentioned in this talk

Search inside this talk

What was claimed 12

Related talks