React Navigation now supports native iOS & Android bottom tabs.
If youโre using bottom tabs in a React Native app, youโve likely used the JS-based version (createBottomTabNavigator). But now thereโs an experimental native-backed alternative: createNativeBottomTabNavigator.
๐ช๐ต๐ฎ๐ ๐ฑ๐ผ๐ฒ๐ ๐๐ต๐ฎ๐ ๐บ๐ฒ๐ฎ๐ป?
โก๏ธ On iOS, it uses UITabBarController
โก๏ธ On Android, it uses BottomNavigationView
โก๏ธ You still write tabs using React components โ but under the hood, the UI is rendered using actual native components.
๐ช๐ต๐ ๐๐๐ฒ ๐ถ๐?
โก๏ธ Better platform fidelity โ animations, accessibility, gestures all work as users expect
โก๏ธ No JS rendering of the tab bar = less overhead
โก๏ธ Some built-in behaviors are free: like search tabs turning into native search bars on iOS 16
๐ง๐ต๐ถ๐ป๐ด๐ ๐๐ผ ๐ป๐ผ๐๐ฒ:
โก๏ธ Still marked as ๐ฒ๐
๐ฝ๐ฒ๐ฟ๐ถ๐บ๐ฒ๐ป๐๐ฎ๐น โ APIs may change
โก๏ธ Works on ๐ถ๐ข๐ฆ ๐ฎ๐ป๐ฑ ๐๐ป๐ฑ๐ฟ๐ผ๐ถ๐ฑ ๐ผ๐ป๐น๐ (no web support)
โก๏ธ Requires ๐ฅ๐ฒ๐ฎ๐ฐ๐ ๐ก๐ฎ๐๐ถ๐๐ฒ ๐ฌ.๐ณ๐ต or ๐๐
๐ฝ๐ผ ๐ฆ๐๐ ๐ฑ๐ฏ if using Expo
โก๏ธ On Android, youโre limited to 5 tabs max (platform constraint)
If you're targeting Catalyst/macOS, tvOS, iPadOS (with proper sidebar adaptation), or visionOS, the Callstack react-native-bottom-tabs integration (recommended in the official React Navigation blog) is currently more mature and supports all these platforms out-of-the-box with beautiful native adaptations.
Would you switch to native tabs in your RN app?
Or do the JS-based ones still give you all the flexibility you need?
#ReactNative #ReactNavigation #BottomTabs #MobileDev #iOSDevelopment #AndroidDev #OpenSource #JSI #NativeComponents #Navigation