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.
Make Your React (Native) App Feel Native
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.
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.
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.
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
- built
“I've created ... React Native Bottom Tabs”
0:18inTips & Tricks From the Ultimate Guide to RN Optimization 2025YouTube Verified2 sources· Talk
- role atOskar Kwaśniewski is core contributor at React Native
“I'm a React Native core contributor.”
YouTube Verified2 sources· Talk
- works atOskar Kwaśniewski works at
Callstack“I'm a senior software engineer at Callstack.”
YouTube Unverified1 source· Talk
- built
“I've created React Native for visionOS.”
YouTube Unverified1 source· Talk
- featureReact Native Bottom Tabs: Supports different appearances across platforms, including iPadOS, visionOS, tvOS, and macOS
“Because it's native, it supports different appearances on each platform.”
YouTube Unverified1 source· Talk
- uses
“It uses ... the navigation bar from Material Components.”
YouTube Unverified1 source· Talk
- uses
“It uses native navigation primitives: UITabBarController.”
YouTube Unverified1 source· Talk
- featureReact Native Bottom Tabs: Supports icons from a static file or remote URL, including SVG
“The icon can be any image, including SVG.”
YouTube Unverified1 source· Talk
- integrates withReact Native Bottom Tabs integrates with Expo Router
“The library supports both React Navigation and Expo Router.”
YouTube Unverified1 source· Talk
- integrates withReact Native Bottom Tabs integrates with React Navigation
“The library supports both React Navigation and Expo Router.”
YouTube Unverified1 source· Talk
- featureZeego: Exposes native menus for Android, iOS, and web
“It exposes native menus for Android, iOS, and web.”
YouTube Unverified1 source· Talk
- uses
“The Gorhom library uses Reanimated to implement the sheet.”
YouTube Unverified1 source· Talk





