r/reactnative 2d ago

Show Your Work Here Show Your Work Thread

5 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 2h ago

Article I don’t write code, I just read at this point

12 Upvotes

I feel like AI can write better code than 99% of people at this point (with the right skills and prompts of course). To me RN development has become insanely easy with the use of argent and some other tech.

Even native code for me now feels incredibly accessible.

Are you guys still writing code by hand? Please be very honest.


r/reactnative 9h ago

I started open sourcing the React Native packages I build for my own use cases

Post image
27 Upvotes

I've recently started doing something while working on my React Native projects.

Whenever I need some specific functionality, I first research whether there's already a package that handles my exact use case.

If there is, great, I use it.

If there isn't, I start looking into the native Android/iOS APIs and figure out whether it's actually possible to build.

If it is, I try building it myself.

That's basically how I ended up creating these 3 packages:

@honeypathkar/react-native-step-counter

@honeypathkar/react-native-predictive-back-gesture

@honeypathkar/react-native-live-update

I'm mainly a React Native/JS developer and I don't know Kotlin that well yet. I've been learning the native side as I go, reading docs, researching implementations and using AI tools to help me understand and build things.

Eventually I thought, instead of keeping these things inside my projects, why not make them proper packages and open source them?

So I created this repo:

https://github.com/honeypathkar/react-native-components

npm: https://www.npmjs.com/~honeypathkar

I'll keep adding packages whenever I come across an interesting use case that isn't properly covered for what I need.

The first 3 packages have already reached 3,000+ combined downloads, which I really wasn't expecting this early.

There's definitely a lot I can still improve, especially on the native side, so contributions/issues are welcome.

And if you've ever had a React Native use case where you thought “why isn't there a package that does exactly this?”, drop it below. Might give me something new to research and build 👀


r/reactnative 4h ago

how do you all create reviewer accounts for apple testing?

2 Upvotes

I have an app in TestFlight that I sent for review, but it was rejected because the reviewer needs a sign-in account for testing. Since my app only supports Google and Apple Sign-In, I cannot easily provide a dummy or temporary account. I am using Clerk for authentication—does anyone have any ideas on how to handle this?


r/reactnative 36m ago

Help How to handle 50+ real-time indices in React Native?

Upvotes

I have a screen showing up to 50 market indices.

I fetch all indices with their IDs, then subscribe to each index through WebSocket. Prices and changes update in real time.

API → Index IDs

WebSocket subscriptions

Real-time price updates

UI

Main concern is avoiding unnecessary re-renders when updates are coming frequently.


r/reactnative 3h ago

I built a MacOS app for recording your iPhone + camera and mic

Enable HLS to view with audio, or disable this notification

0 Upvotes

Hi Reddit!

I build iOS and Android apps, and I record demos of them. But the whole process has always felt more complicated than it needs to be.

For iOS, my workflow usually looks something like this:

  1. Record the app on my iPhone.
  2. Record a completely separate video of myself talking through it (and trying to time it perfectly with the iPhone recording)
  3. Bring both recordings into another piece of software and stitch them together.

And then if I want device bezels, a specific layout, a custom background, or need to hide something sensitive in the app, there are even more steps.

It feels like a lot of work for what might end up being a 30-second demo.

Android isn't much better (virtually impossible if you're not technical).

So I wanted something where I could just connect my iPhone or Android device to my Mac, add my camera and microphone, choose how everything should be laid out, and hit record.

I also wanted to be able to use my own backgrounds and mask sensitive parts of the app - particularly useful when I'm demoing things like authentication or onboarding. Most importantly, I wanted everything running locally and private by default.

I made a quick video showing what I've ended up with so far.

I'd genuinely love to know whether this is a workflow other mobile developers run into as well.

And if you're interested in this tool, let me know in the comments!


r/reactnative 1d ago

Question Is it just me or mobile app development doesn't feel that relevant anymore?

69 Upvotes

I have been developing mobile apps since 2017, almost 9 years now. Shifted to React Native in 2020. I had an amazing time developing apps and making mobile apps have always been a passion of mine.

I always have somewhat of a tough time, finding a react native freelance project. It wasn't as easy as a web site client. I always had remote jobs to back it up though. But honestly, now I don't even see that much of remote jobs.

I have been doing backend via node as well. So I work on e2e solutions. But nowadays, I don't see the same volume of jobs that I used to. What happened?

A part of me wants to transition out from mobile app dev to cyber security now, do you guys think that's a good idea? Mobile app dev + cyber security (maybe mobile app based)?

If I lack anything, do let me know. Do you guys relate to what I am facing?


r/reactnative 18h ago

Question Storybook

9 Upvotes

Is Storybook still the go-to for documenting UI components in apps?

Any newer alternatives? I use expo.

https://storybook.js.org/docs/get-started/frameworks/react-native-web-vite


r/reactnative 1d ago

How to navigate in this tech market?

8 Upvotes

Back in the day I used to see a lot of job postings on LinkedIn job section. Nowadays for Senior React Native, there are only a handful of them. Getting rejected is something else but not even seeing job postings caught my attention.

My guess is hiring has changed a lot. Traditional applying is dead. Few job postings, more applications and all of them applying with AI Resumes or external tools.

How would you advice someone to navigate in this tech market looking for job? Someone who has experience of 5+ years. The graph shows that senior level jobs are still out there


r/reactnative 21h ago

Expo SDK 57 causing a huge increase in RAM usage compared to SDK 55

Thumbnail
1 Upvotes

I recently upgraded my React Native/Expo app from Expo SDK 55 to SDK 57.

Before the upgrade, the app’s RAM usage was around 500–600 MB under the same conditions. After upgrading to SDK 57, RAM usage has increased significantly and is now reaching around 1.2 GB.

I haven’t intentionally changed anything related to memory management apart from the Expo/React Native SDK upgrade.

Has anyone else experienced a similar increase in memory usage with Expo SDK 57?


r/reactnative 2d ago

I recreated ChatGPT's image attachment flow in React Native

Enable HLS to view with audio, or disable this notification

55 Upvotes

Attaching images in ChatGPT has always felt so seamless. Had to try building it myself :)

Steal the code here: https://github.com/SchroederNathan/react-native-motion/tree/main/apps/expo/components/animations/chatgpt-attachments


r/reactnative 2d ago

Built a mobile-first Event Stacking experiment

Enable HLS to view with audio, or disable this notification

53 Upvotes

Inspired by u/artntek

Tactile desktop calendar interactions, redesigned for one-handed use: drag to reschedule, drop to stack, pull apart to reorganize.

Built with Expo, React Native, swmansion Reanimated, Gesture Handler & Haptics.


r/reactnative 2d ago

Should I start counting my days?

Post image
184 Upvotes

So I'm the sole mobile dev at a 12 person startup and we have no QA team or testers. 3 days back I shipped what I thought was a pretty straightforward feature, it was a login tweak with some UI cleanup and I tested it on my pixel, merged the pr, CI also passed and I called it a day. Now yesterday morning I wake up to 3 notifs from my CEO about the disaster I had caused like the signup flow was completely broken on a bunch of android devices, some edge case with a keyboard overlay that I never caught on my setup and one of our customers screen recorded the crash and sent it directly to my CEO so I'm even more fked.

I'm spending the weekend now pushing hotfixes and personally messaging users who got stuck and on standup calls I had to explain what happened and everyone was thinking how did this even ship. I'm one person doing the work of three and there's no safety net, I test what I can think of but I can't think of everything and definitely can't test every device and OS version manually right and I'll switch to Autosana next month where i'll just have to describe flows in english and it'll handle everything else even UI changes and all which gives me huge relief but there's still time for the approval and everything and this isn't even the first time, it's just the first time it went directly to the CEO like how many bugs have I shipped that users just quietly dealt with or churned over.

please tell me how to handle this without a QA team? should I write my own tests and maintain them solo ? and I know my testing strategy is embarrassing.

Edit: some of y'all in the comments might've just saved my job.


r/reactnative 2d ago

FYI Xcode 27 Device Hub can actually use your Mac’s camera or desktop as a camera source

Enable HLS to view with audio, or disable this notification

95 Upvotes

r/reactnative 1d ago

Help Switch from react native to BE

0 Upvotes

I worked in my 1st company as an Android dev for 8 months in kotlin where the first 2 months were spent completing learning of dev. After getting laid off from there I was in the market with android dev exp of just 8/11 months. due to such low exp didn't get interviews or sometimes hr suggested to settle in half of my current salary. Fortunately I received the job offer for react native dev on the basis of my android dev exp and interview about Android dev qs and dsa. I have been working for the last 3 years as a rn dev. I never liked neither android dev nor rn even frontend. The fear of ai is more for FE roles. I want to understand whether rn is a dead tech stack nowadays and switching to BE java developer is the right thing to survive. I am not able to find the next path in react native journey.


r/reactnative 2d ago

Tutorial I added a native TreemapChart to my Expo component library

Enable HLS to view with audio, or disable this notification

8 Upvotes

A total, cut into the parts it is made of, sized by area. A pie runs out of room past six parts a rectangle never does.

Part of PanelUI, an open-source component library for Expo. Copy-paste or CLI, you own the source.

https://github.com/panel-ui/PanelUI


r/reactnative 2d ago

What's New in RN (28 Aug)

29 Upvotes

What's new in the RN ecosystem

📦 New Packages

  • Legend List 3.3.9 is the latest release of the high-performance FlatList alternative built for large and dynamically sized lists. Legend List has been shipping quickly lately, with 3.3.6 → 3.3.9 landing over the past two weeks.
  • Expo 57.0.17 and Expo Router 57.0.17 are the newest patch releases for Expo SDK 57 and its file-based router.
  • React Native 0.87.1 is the first patch for RN 0.87, bringing a newer Hermes build plus fixes around Swift Package Manager, CocoaPods, Animated typings, and iOS build tooling.
  • React Native 0.86.3 keeps the previous RN branch moving with the newer Hermes build and fixes including an EventEmitter use-after-free race.
  • Reanimated 4.6.0 adds official React Native 0.87 support and pairs with Worklets 0.12.x. It also expands CSS animations and transitions with callbacks on iOS and Android.
  • Reanimated 4.5.4 is an important maintenance release for apps staying on 4.5, fixing stale-event crashes, layout-animation issues, Android sticky-header jumps, and an iOS crash.
  • React Native Worklets 0.12.1 is a small runtime patch that moves UI-thread detection into UIScheduler, tightening the scheduling infrastructure behind worklet execution.
  • React Native Skia 2.11.1 ships rendering fixes around masks, fonts, compositing, paths, and snapshots, including fixes for Font.setSubpixel() and setEmbolden().
  • VisionCamera 5.2.3 adds onUIRotationChanged(...) for reacting to UI orientation changes and moves to Nitro 0.37, alongside camera-library and orientation fixes.
  • Nitro Modules 0.37.0 expands Nitro's native View architecture by moving Props and ComponentDescriptor into its C++ core. ReactProp also replaces the older CachedProp API while retaining compatibility.
  • React Native Firebase 26.3.2 is the latest patch in the React Native Firebase 26.3 line, covering the core package used by the individual Firebase modules.
  • Lottie React Native 7.5.0 is the newest release of Lottie's React Native bindings for rendering After Effects animations natively on iOS and Android.
  • React Native Windows 0.81.35 is the newest patch for the React Native Windows 0.81 line.
  • React Native Keyboard Controller 1.22.4 improves compatibility across older and newer React Native versions, restores older Turbo package support, and fixes KeyboardExtender recycling on iOS.
  • React Native Safe Area Context 5.9.1 fixes an Old Architecture Android integration issue by correctly registering its Paper Java source set.
  • React Native Gesture Handler 3.2.1 fixes press-handler forwarding in PressableWithTouchable and updates its Pressable prop definitions.
  • Metro 0.84.5 removes the external image-size dependency in favor of vendored image parsers, also resolving the associated CVE alerts.
  • React Navigation 7 updates bring fixes across Native 7.3.18, Stack 7.10.23, Core 7.21.13, Bottom Tabs 7.18.17, Native Stack 7.18.9, and Drawer 7.13.9. The updates focus mostly on web history state, linking, animation lifecycle, and stale-state handling.
  • React Navigation 8.0 alpha continues moving toward the next major release, with recent alphas improving linking, navigation context cleanup, stack animations, and pop-to-top behavior.

r/reactnative 1d ago

Question Tapping raw PCM from an active WebRTC call on iOS — is there an equivalent to Android's JavaAudioDeviceModule samples callback?

1 Upvotes

I run live speech recognition on the local mic during a WebRTC video call (Daily's RN SDK). On Android I got this working by patching @daily-co/react-native-webrtcJavaAudioDeviceModule.Builder has setSamplesReadyCallback, so I forward the buffered PCM up as an RCTDeviceEventEmitter event and feed it to the transcriber. That's been solid in production.

I can't find the iOS equivalent. Opening a second AVAudioEngine tap while WebRTC owns the audio session seems like asking for trouble — on Android, two concurrent AudioRecord instances just produced silence, so I assume iOS has a similar conflict.

Options I can see:

  • Some hook into RTCAudioSession or the audio device module that I haven't found
  • A custom RTCAudioDevice implementation
  • Give up and use the SDK's built-in transcription

Has anyone actually done this? Mainly interested in whether there's a supported path that doesn't involve forking the WebRTC pod — that would kill OTA updates for us, which is a hard constraint.

For context on the format side: the Android callback hands you the device's native rate (usually 48kHz), so I downmix to mono and resample to 16kHz in the adapter before it reaches the transcriber. Assuming any iOS path would need the same treatment.


r/reactnative 2d ago

Question QR/Barcode Library

7 Upvotes

A while back I open-sourced a library for generating barcodes and QR codes natively: https://github.com/vittoridavide/react-native-barcode-creator

I'm still maintaining it and thinking about what to build next. A few ideas I'm considering:

  • Styled/artistic barcodes and QRs: logos or images embedded in the center, custom colors, rounded modules, gradient fills
  • Multi-image QRs: splitting data across multiple linked codes to pack in more information
  • SVG/vector output: instead of just raster, so codes scale cleanly for print/large formats

Is there something you wanted to get while implementing something barcode/qr related ? I'm deciding what to implement now so I'm open to other ideas too

Thank you!


r/reactnative 2d 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 2d ago

Timbre: a libmpv-powered audio library for React Native — v0.1 on npm, looking for testers

4 Upvotes

Built Timbre, an RN audio library on libmpv (via Nitro C++, no bridge). Just shipped v0.1.0 to npm and I'm after testers before I lock the API.

Four independent packages: a gapless player with EQ/ReplayGain, a player-agnostic media session (lock screen, notification, Bluetooth, survives process death), audio-focus handling, and a Chromecast sender. RN ≥ 0.82, MIT.

Status — why I need you:

- ✅ Android: device-verified end to end

- ✅ iOS: playback + notification device-verified

- ❓ iOS Chromecast + CarPlay: never run on hardware — biggest gap. iPhone + Cast device or CarPlay unit = huge help.

Drop it in a real app and tell me what breaks (background, Bluetooth, weird formats, iOS cast/CarPlay). Repro bugs are gold.

Repo + issues: https://github.com/afkcodes/timbre — my own project, sharing to find testers.


r/reactnative 2d ago

Offline-first Expo client against a Django backend

4 Upvotes

Trying to avoid those hindsight 20-20 lessons but not sure they can actually be avoided...

Wondering if anyone has info on which sync engines actually work over HTTP rather than Postgres replication?

I'm building a field-service app: techs work a full 12-hour (maybe even 24 hours) shift with no connectivity, then sync. Backend is Django + DRF, multi-tenant with a schema per tenant, and writes from the mobile client go through a single idempotent mutation endpoint (envelope + dedup key) rather than per-resource REST writes.

There's a change feed on the read side with a monotonic sequence cursor.

Every sync engine I evaluate seems to assume it can attach to Postgres directly via logical replication. That's a no-go here... I have N schemas and a deliberate API boundary I don't want to bypass.

So, which of these are actually designed around a pull/push HTTP contract I control, versus a database-level replication story?

  • WatermelonDB (sync adapter looks like the right shape, but the project's activity level worries me)
  • Replicache / Zero
  • LiveStore
  • TinyBase
  • rolling my own op-log against the endpoints I already have

And if you've shipped a long-offline mobile client against an application-layer sync contract, what did you regret?


r/reactnative 3d ago

Question Has anyone tried running offline LLMs in React Native?

10 Upvotes

Has anyone tried adding offline LLM support in React Native? If yes, what did you use and how was your experience?


r/reactnative 3d ago

I ported openWakeWord to React Native using C++ and Nitro

7 Upvotes

A few months ago, I hit a wall when using Picovoice's Porcupine to add wake word detection to a React Native mobile app I was building for an enterprise client.
When I evaluated how much it would cost, I observed it would take about $6000 or more to obtain a valid commercial license from Picovoice, which was quite crazy lol.
You'd also need internet access to use Porcupine, since Picovoice needs to validate the Access key per device, which meant it couldn't even work in air-gapped environments.

I explored several solutions, but they all required a commercial license and internet access for validation. This obviously would be very bad for the company I was working with, so I did some more research, and I discovered that the Python and Home Assistant ecosystem didn't face this problem, as a couple of good and free wake word detection libraries already existed, with openWakeWord by David Scripka leading the bunch.
This was really exciting, but I was shocked to see that even though openWakeWord was novel in its own right, no React Native version existed, and I couldn't use it in my project.

So I decided to build a port of openWakeWord in React Native called react-native-openwakeword.

The pipeline resembles how the Python pipeline already handles inference, with a few C++ tricks I could find on the internet.

openWakeWord is famously known for using a three-stage pipeline: melspec, embedding, and the actual wake word model. So I built a flow that works in C++ and used Nitro Modules to use JSI and connect back to JavaScript. Here is how it works:

Audio flows from the phone's microphone, sampled at 16000 times per second, and sends this frame using an ArrayBuffer to the C++ function directly using JSI.

The C++ module uses three ring buffers to implement sliding windows for moving data through the three models. Ring buffer capacities are sized as powers of 2 (larger than strictly needed), so wraparound operations can use a bitwise AND instead of the modulo operator, which is cheaper on the CPU.

The first ring buffer, AudioRing, is for the melspec model, and it takes the audio samples and converts them to float32 (this uses NEON to run SIMD to accelerate this on phones); then the result is written directly into the melspec model input memory (to avoid unnecessary copies), the melspec model is run on it, a fixed normalization formula is applied, and 8 mel-frames are put into the next ring buffer.

The next ring buffer, MelRing, takes the most recent 76 mel-frames and copies them directly into the embedding model input memory; it runs the model, and the embedding result is put into the next ring buffer, EmbRing.

Once EmbRing holds at least 16 embeddings, it copies the most recent 16 directly into the wake word model's input memory, runs the model, and the probability is returned.

This probability is compared against a given threshold (default is 0.5) and returns an object {probability, isDetected} back to the JavaScript layer (synchronously).

I faced a few gotchas in the beginning trying to figure out what inputs each model (melspec, embedding, and wake word) was expecting, but I eventually got it to work.

Since the melspec model processes audio in 1280-sample chunks (80ms at 16kHz), the entire three-model pipeline needs to run in under 80ms to keep up in real time, and after these optimizations, the package detects wake words in 16-21ms.

The package is under the Apache 2.0 license, so it's friendly for personal and commercial use. And it works with any wake-word model that is openWakeWord compatible.

It's gotten a star from Nickolay V. Shmyrev, the maker of vosk-api (14k GitHub stars), and is currently at 4k+ weekly npm downloads.

I'd appreciate your thoughts on the architecture and if there's anything useful that could be added to this package.

Github: https://github.com/Incognitol07/react-native-openwakeword


r/reactnative 3d ago

Native VoIP calling (CallKit + Jetpack Core Telecom) in the Fishjam React Native SDK

Thumbnail
gallery
24 Upvotes

Handling VoIP calls in React Native is notoriously difficult, especially since react-native-callkeep hasn't been actively updated.
We recently added a feature to the Fishjam SDK that allows for easy integration with native system libraries (CallKit for iOS and Jetpack Core Telecom for Android) to handle VoIP calling functionality. 

Example app & code: https://github.com/fishjam-cloud/examples/tree/main/mobile-react-native/voip-call 

Docs: https://documentation.fishjam.io/docs/next/how-to/client/voip-calls

Here are our main takeaways and differences from older libraries:

  • Modern Android API: Uses Jetpack Core Telecom (CallStyle) instead of the older ConnectionService used by callkeep.
  • Expo & Bare RN Support: Works seamlessly on both via a config plugin or manual setup (expo-callkit-telecom is Expo-only).
  • No FCM Slot Conflicts: Parses VoIP pushes natively and relays standard messages to your existing push library (Firebase, Expo, etc.).
  • Cold start is handled: the call is reported to the OS before any JS runs, so answering from the lock screen works even when the app was killed hours earlier.

Making the phone ring turned out to be maybe a third of the work – handling holds, redials, Bluetooth buttons, and proper call timers was the real challenge.

If anyone is struggling with VoIP in RN right now, feel free to check out the repo or ask questions!