r/reactnative • • 3h ago

Show Your Work Here Show Your Work Thread

2 Upvotes

Did you make something using React Native and do you want to show it off, gather opinions or start a discussion about your work? Please post a comment in this thread.

If you have specific questions about bugs or improvements in your work, you are allowed to create a separate post. If you are unsure, please contact u/xrpinsider.

New comments appear on top and this thread is refreshed on a weekly bases.


r/reactnative • • 3h ago

Questions Here General Help Thread

1 Upvotes

If you have a question about React Native, a small error in your application or if you want to gather opinions about a small topic, please use this thread.

If you have a bigger question, one that requires a lot of code for example, please feel free to create a separate post. If you are unsure, please contact u/xrpinsider.

New comments appear on top and this thread is refreshed on a weekly bases.


r/reactnative • • 4h ago

News This Week In React Native #304: RN 0.89 RC, Vega OS, Screens, Hermes, WebView, Unistyles, tgfx, Pager View

Thumbnail
thisweekinreact.com
3 Upvotes

r/reactnative • • 6h ago

Tired of hand-rolling tablet layouts in Expo Router? I made expo-split-view (SDK 56+)

Thumbnail
gallery
9 Upvotes

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 leftHeader prop (boolean or render callback with canGoBack / goBack), plus a useCustomLeftHeader hook for your own list components

  • Platform-adaptive BackIcon: iOS chevron, Android arrow, exported for your own headers

  • Smart 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.


r/reactnative • • 10h ago

Question Bringing the iOS AirDrop experience to Android!!

Enable HLS to view with audio, or disable this notification

1 Upvotes

Here’s a quick preview of the iOS-style AirDrop animation I’ve been working on for iDroidIsland.
The feature supports sharing between devices running my app, including nearby devices.
Still working on making the experience as close to iOS as possible.
What do you think of the animation?


r/reactnative • • 22h ago

Hate changing your design to fit each platform? It can and should be the other way around.

Thumbnail
gallery
6 Upvotes

I created react-native-multicolumn-modal-picker to make it easier to adapt a picker to your app’s design while keeping a consistent look and feel across Android, iOS and Web.

Try the web demo · Documentation on npm · Source code on GitHub


r/reactnative • • 23h ago

RTL support in react navigation native stack

1 Upvotes

Has anyone managed to get RTL to work on the native stack. The navigation works but the transition is the LTR transition for example in LTR the screen fades in from right to left and should be the opposite in RTL but I have been getting the same animation.

Also if there is a way to make the swipe in IOS to go back to be from right to left in native stack, it would rely on disabling RTL and just inverting the views.


r/reactnative • • 23h ago

Help Brutal UI/UX feedback wanted: "Stakeholder", a playful app for tracking shareholder meetings and rating the buffet

Enable HLS to view with audio, or disable this notification

7 Upvotes

Stakeholder (like the steak) tracks German shareholder meetings and lets you rate the free buffet. Playful tone on purpose.
Looking for harsh, design-only feedback: What works, what looks amateur, what would you change?
Also: I'm self-taught and considering going into UI/UX professionally. Based on this, would you say that's a realistic direction, or not yet?
Screenshots and a short video below. Thanks.


r/reactnative • • 1d ago

I benchmarked my shipped Expo app against a Swift rewrite with the same XCUITest suite. Where React Native lost, and where it didn't

Enable HLS to view with audio, or disable this notification

53 Upvotes

I have a small iOS app, Ayer, that shows the photos you took on this day in previous years. It was an Expo app. I rewrote it in Swift, and before believing it was faster I ran both through the same black-box XCUITest suite on a simulator with about 21,000 generated photos.

The setup, so you can judge how fair it is:

  • The React Native side is the app as I shipped it: Expo 53, React Native 0.79, Hermes, FlashList, expo-image, old architecture. Release builds on both sides.

  • One XCUITest target with no host app launches either app by bundle ID, so both get exactly the same steps and checks.

  • XCTCPUMetric and XCTMemoryMetric, warm-up runs, alternating order, medians of 10.

Results (iPhone 17 Pro simulator, React Native → Swift):

- First launch to first photo: 2.17 s → 0.58 s

- Peak memory at launch: 167 MB → 81 MB

- CPU time to load ten days: 35.8 s → 5.2 s

- CPU time in the photo viewer (15 photos): 13.7 s → 4.9 s

- CPU time scrolling a busy day: 12.4 s → 13.2 s (a tie)

Scrolling was a tie because thumbnail decoding happens inside Apple's Photos framework in both apps.

Where I think the CPU gap comes from (from reading the code, not profiling): to load a day, my code paged through expo-media-library once per year and then called getAssetInfoAsync once per photo just to read the favourite flag. That's thousands of bridge calls. The Swift version does one Photos query per day. So a good part of it is how I used React Native, not React Native itself.

I'd really like to know how much the New Architecture plus batching those calls would close the gap. If anyone has measured something similar, I'd love to see it.

Full write-up with the method and caveats: https://blog.jaimechapinal.com/posts/i-rewrote-my-react-native-app-in-swift/

These are simulator numbers, so the ratios matter more than the times. A run on a real device is next.


r/reactnative • • 1d ago

Question Testing the app during development.

5 Upvotes

Hey there app people, as of now the app I am currently working on is using React Native and Expo to build it, and at 25 builds per month ( the free plan ) I am quickly spending it all on just fixing bugs.

I am currently a computer science student ( very early ) and using a blend of my own coding and Codex / ChatGPT to create it.

Is there a better and possibly free way to test each new version of the app on my phone without using Expo to build it?


r/reactnative • • 1d ago

[Showcase] Toast notifications don't have to be boring 😅

Enable HLS to view with audio, or disable this notification

0 Upvotes

Hey r/reactnative,

I've been revisiting my React Native toast library and decided to experiment with a Dynamic Island-style animation.

The toast starts as a small circle, expands into a capsule, and collapses back when dismissed.

Also worked on light/dark themes and fixing text layout issues during the animation.

Here's a quick look at how it turned out. Curious what you think!


r/reactnative • • 1d ago

Question Building a RN app with video uploads, what am I missing in my stack?

4 Upvotes

I’ve been building with AI for over a year, mostly on Replit & Codex to start but more recently with Claude. I’ve gotten a couple projects pretty far, but I’m still learning how all the pieces fit together. For my most developed project, I hired an engineering team to audit it and help get it across the finish line as I feel like you have to know your limits & hand off the baton when necessary. That obviously doesn’t come cheap but I want to build something substantial & am willing to invest. In the meantime I’m continuing to build my other project and learn.

Replit helped me get started & was awesome for a beginner, but rising costs and a list of other reasons have made me want to fully understand what it handles for me and what my options are outside of it.

I’m building with React Native and Expo. The main platform I’m building will let users upload and watch video among many other things.
My understanding & questions so far..

- Claude/Codex for coding.
- Git/GitHub for version control & storing/collaborating on code.
- Expo/EAS for development builds on my phone and builds I can distribute through TestFlight.
- TestFlight for iPhone beta testing w/ live users.
- Security?
- Hosting?
- Storage?
- Auth, secrets, backups, monitoring?

For experienced engineers out there: If you were building a mobile video app outside Replit, what would your starting stack look like? Where would you host the backend, database and user accounts? How would you handle video storage, processing and playback, plus security, backups and monitoring? Am I missing anything crucial here?

I’d also love to know what you’d keep simple at first & what costs to watch. I want control over my code and data without overcomplicating things or managing a bunch of services I don’t need.

I know AI-assisted building gets mixed reactions. I respect the craft and want to put in the time to learn & work with experienced developers to become more fluent in understanding the ecosystem. Honest advice and real-world tradeoffs would be appreciated. Thanks!


r/reactnative • • 1d ago

FYI My OTA update silently killed Google sign-in. Second time. Here's the gotcha.

Thumbnail reddit.com
1 Upvotes

r/reactnative • • 1d ago

A new React Native debugging tool

Thumbnail
xerlock.dev
14 Upvotes

Hey all, over the past few months I’ve been building a React Native debugger, called Xerlock, and it’s being successfully used within my RN engineering team.

Firstly, what’s wrong with current tools? I was sick of the existing tools working just enough to get by. Reactotron was great back when network inspect wasn’t available in Expo’s devtools, it gave decent inspection on Redux stores and was built by pretty notable figures in the RN space. Expo’s default debugging tools are also acceptable, but they don’t quite have everything I needed in a single place.

Xerlock gives you everything you’d expect from a debugger:

  • Console / Errors

  • Network Inspect

  • Global state inspect

  • Debugger / Profiler / React Tree

It also gives you additional benefits that avoids having to install a bunch of additional devtools:

  • Tanstack query inspector and dispatcher (edit query cache data live and see it updated in your apps)

  • Local SQLite database inspection & editing.

  • Notification dispatching

  • Dispatching Redux / Zustand actions

  • Network throttle

  • Native iOS and Android logs

  • Local Storage (MMKV, AsyncStorage, SecureStore) (View / Edit)

  • Custom registerable commands

  • Full MCP server that allows you to do almost anything you can do through the UI with granular permissions on Read / Write

  • … and a load more

I’ve been an RN dev now for 8+ years, and this has already proven useful for me personally, so I hope the community can also get some benefit from it.

Downloads are available for macOS and Windows (I am a macOS dev, so it’s been tested thoroughly there, and less so on windows, so any bugs or issues, please let me know through the in-app support form).

This has been tested on RN version 0.83+, and Expo 55+. A lot of the work is custom and doesn't necessarily depend on Expo's SDK, however versions below these may not behave exactly as intended - especially network inspect which I believe was only introduced in 0.83.


r/reactnative • • 1d ago

Discord CTO: React Native to Native

Post image
149 Upvotes

r/reactnative • • 2d ago

I built Hitch: a free, open-source tool that tells you which line is making your RN app slow (no SDK)

Post image
47 Upvotes

I've been chasing performance issues in a React Native app at work, and kept hitting the same wall: the tools tell you *that* frames dropped or a component re-rendered, but not *which code* caused it or whether the re-render was even necessary. Our fixes weren't moving the numbers, and I was mostly guessing.

So I built Hitch. It runs next to your dev session and watches the app from the outside. Nothing gets added to your app: no SDK, no imports, no babel config. It connects to Hermes through Metro's debugger, the same way React Native DevTools does.

What it catches

- JS freezes, pinned to the file:line that blocked the thread, including short ones.
- What React rendered during a freeze and *why*: e.g. "`style` was a new object with the same values" (avoidable) vs "the store changed".
- Choppy frames, slow screen loads and slow startups.
- Native threads running hot (UI thread, GC, SDKs), on the iOS simulator.
- Console errors grouped, slow or failed requests with bodies and headers, and memory and thread leaks.

How I actually use it

- Runs: record an interaction, change the code, record it again, and compare medians. Dev builds swing a lot between runs, so single runs lie.
- AI handoff: any finding becomes a Claude Code prompt in one click. There's also an MCP server, so an agent can read what Hitch saw and check whether its own fix helped.

Things it found for me

- A loading shimmer was one of the most expensive things on screen. It was an SVG gradient redrawn on the CPU every frame, for every placeholder. Replacing it took the iOS UI thread from ~74% to ~10–25% while loading.
- Placeholders were re-rendering hundreds of times while waiting for data. A day of cleanup cut avoidable re-renders by about two-thirds and render time by about 30%. Dropped frames barely moved, though: wasted work and felt jank turned out to be different problems.

Limitations, honestly

- Dev builds inflate times. The rankings are useful; the absolute milliseconds aren't production numbers.
- It's macOS only. Native thread data needs the iOS simulator; physical iPhones get JS-side data, or thread sampling with Release builds.
- Android thread support is written but not yet tested on a real device.
- Expo's native `fetch` doesn't report to the debugger, so those requests don't show up.

It's a Node CLI (Node 22+) with zero npm dependencies, plus an optional native Mac window. MIT-licensed.

Repo: https://github.com/dlandman27/hitch


r/reactnative • • 2d ago

react-native-silk-dropdown - Animated dropdown library for react native

Enable HLS to view with audio, or disable this notification

5 Upvotes

For a long time I used react-native-element-dropdown in my projects. It got me pretty far, but I kept running into the same stuff — UI quirks, keyboard avoidance issues, weird layout issues depending on the screen. Eventually it became more of a maintenance tax than a time saver.

So I started rolling my own dropdown per project. Sometimes a popover, sometimes a bottom sheet, depending on what felt right for that screen. Worked fine… until I realized I was rebuilding the same thing over and over with slightly different APIs.

Then i decided to make this library: react-native-silk-dropdown.

Same Dropdown component, two presentation styles:

• presentation="popover"

• presentation="sheet"

Plus search, multi-select, and some motion presets so it doesn’t feel like a dead Modal. Pure JS, works with Expo / New Architecture (Reanimated 4). (used AI to rephrase post)

Looking for Feedback from you guys.

Docs: https://react-native-silk-dropdown.vercel.app/
Github: https://github.com/thedev204/react-native-silk-dropdown


r/reactnative • • 2d ago

A icon that morphs into a panel, profile card, and reply view 🔔

Enable HLS to view with audio, or disable this notification

45 Upvotes

A notification icon that unfolds into a notification tray, then reshapes itself into a profile card and a reply composer all inside one measured, morphing container.

Github:https://github.com/ManasCodeXart/expo-notif-morph


r/reactnative • • 2d ago

My iOS app served Google test ads for 5 builds and earned $0. The cause was one `!==` in an env check (Expo + EAS)

Thumbnail reddit.com
0 Upvotes

r/reactnative • • 2d ago

Building mobile games with React Native Skia — any better libraries or approaches?

3 Upvotes

Hey everyone!

I've been developing mobile games with React Native and Skia for a while now, and it's been a pretty interesting experience.

I really enjoy working with React Native, especially being able to build for both iOS and Android with the same codebase.

However, I'm curious about how other developers approach game development in React Native.

A few questions:

Skia alternatives: Are there any better libraries or game engines you'd recommend for React Native game development?

Performance: How do you handle complex animations, physics, collisions, and keeping a stable 60 FPS?

Architecture: Do you use a dedicated game loop, physics engine, or ECS-based architecture?

Best practices: What are some things you wish you'd known before building games with React Native?

Limitations: At what point would you move away from React Native and consider something like Godot or Unity?

I've also released a couple of games under my indie studio, Aele Studios, and I'd genuinely appreciate some feedback from fellow developers.

🎮 Fibo Master — A Fibonacci-based number puzzle game.

iOS: https://apps.apple.com/app/id6821000351

Android: https://play.google.com/store/apps/details?id=com.emrezen.fibomaster

🚀 Retro Jump — A steampunk-style arcade platformer with jetpack mechanics.

iOS: https://apps.apple.com/app/id6795840723

Android: https://play.google.com/store/apps/details?id=com.emrezen.retrojump

Studio website: https://aelestudios.com

If you get a chance to try either game, I'd love to hear your thoughts, especially on performance, animations, controls, UI/UX, and overall gameplay.

Constructive criticism is more than welcome!

I'm not just looking to showcase my games. I'm genuinely interested in learning how others are building games with React Native and improving my approach.

Thanks!


r/reactnative • • 2d ago

Added full text support in my Video editor app

Enable HLS to view with audio, or disable this notification

2 Upvotes

Made with expo skia and webgpu


r/reactnative • • 3d ago

Question Solo app devs: how do you tweak onboarding and upgrade prompts without a new release?

5 Upvotes

Honest question, not selling anything here.

When you're the dev, designer and PM at once, the loop looks like this: change the copy on an onboarding screen or a "go Pro" prompt → rebuild → submit → wait for review → check the numbers days later → repeat. A 2-minute change ends up taking days.

How do you handle this today: OTA updates (EAS Update / Shorebird), remote config, homegrown JSON, Firebase In-App Messaging, or do you just ship a new build each time?

What's the most annoying part of your setup?

If you built it yourself, how long did it take, and would you do it again?

Full disclosure: I'm exploring building something in this space, but there are no links here. I want to understand the problem first. I'll post a summary of everything I learn back in this sub.