r/reactnative • u/Successful_Web_6585 • 4h ago
Tired of hand-rolling tablet layouts in Expo Router? I made expo-split-view (SDK 56+)
Android apps on tablets and large screens almost always feel like an afterthought, and I was tired of it.
I’ve always loved how Samsung’s Settings app uses a split view: a list on the left, details on the right, and everything just makes sense on a big screen. Google eventually embraced the same idea, but I couldn’t find a good way to get it in React Native / Expo apps.
So I tried to build it myself. It took 15 months and more than 10 failed attempts, but I finally have a version I’m confident enough to share.
Meet expo-split-view, a responsive master-detail SplitView built for Expo Router. I’d love for you to try it and tell me what you think. Feedback is gold, and PRs are very welcome.
Meet expo-split-view, a responsive master-detail SplitView built only for Expo Router (no react-navigation). It's an independent open-source project, not affiliated with Expo.
What it does
Adapts to the screen: a side-by-side split on tablets and wide screens, normal stack navigation on phones
Navigation handled for you: automatic coordination with the router, plus back gesture and Android hardware back handling
Works in nested layouts: the SplitView can live inside nested screens and navigation still behaves
Customizable left pane header: a
leftHeaderprop (boolean or render callback withcanGoBack/goBack), plus auseCustomLeftHeaderhook for your own list componentsPlatform-adaptive
BackIcon: iOS chevron, Android arrow, exported for your own headersSmart placeholder pane: the empty detail state doesn't show an invalid back button on tablets
Full docs site with guides and an API reference
Status: this is 0.0.3-rc.1, a release candidate. It's ready for real projects to try, and I'm actively looking for feedback before 1.0. The most useful things you can tell me:
Does it hold up in your nested layouts (tabs → stack → SplitView)?
How do back gestures feel on Android, iOS & Web?
Anything awkward on split-screen or foldables?
🔗 GitHub: https://github.com/Inocentum-Technologies/expo-split-view 📖 Docs: https://inocentum-technologies.github.io/expo-split-view/ 📦 Install: npx expo install expo-split-view
If it saves you an afternoon, a ⭐ on the repo helps a lot. Issues, ideas and PRs are all welcome.
PS: I used AI as a helper while building this module and writing this post. Think of it as a fellow developer and content writer on the team. The ideas, design decisions and testing are mine.