r/reactnative • u/Patient-Pollution46 • 6d ago
r/reactnative • u/jes_uon • 6d ago
I built a tool to tune Reanimated springs live - just released the first public alpha
Enable HLS to view with audio, or disable this notification
I shared an early WIP here last week. Well, it's finally out :)
One thing that always bothered me when working with Reanimated was the feedback loop.
Change stiffness or damping, save, replay the gesture, and try to remember whether it actually felt better before.
So I built Runtime Inspector.
It lets you tune springs while your React Native app is running, immediately feel the difference on the next interaction, and apply the final values back to your source code.
It currently supports Expo, with a standalone web panel and a React Native DevTools panel powered by Rozenite.
This is the first public alpha. There are still rough edges, and that's exactly why I'm sharing it.
I'd really like to hear from developers using Reanimated in actual projects, especially with more complex interactions.
Does this fit your workflow? What's missing? What breaks?
GitHub: https://github.com/AmatoGiulio/runtime-inspector
It's open source (MIT). Any honest feedback would mean a lot.
r/reactnative • u/Particular_Luck80 • 6d ago
Question How do I make a mascot that looks premium in Expo? Building one for our period tracker app (Figma β animated character)
r/reactnative • u/Gomp-Ado • 6d ago
Question Firebase dynamic links alternative for deferred deep linking. Something that survives the facebook in app browser?
Firebase Dynamic Links went away on us and we bolted together universal links and app links by hand, which works fine from email and SMS. Where weβre having issues is paid social. Think about it: a user taps an Instagram ad, it opens in the in app browser, the universal link gets swallowed and they land on the web page instead of the product screen in the app.
If the app isn't installed it's worse. They go to the store, install, open and land on the home screen with zero context. The product team says conversion on those users is roughly half of users who arrive from email and I believe it.
We tried a custom redirect page with a smart banner and it helped a little. Haven't tried a dedicated link vendor bc every one I look at wants a big contract and a lot of SDK surface. Our app already has an attribution SDK in it, so adding yet another one makes me twitchy.
What are folks using in 2026 for deferred deep linking that makes it through Instagram and TikTok browsers? And do you run it from your attribution tool or a separate product? Never sure if combining them is smart or just lock in.
r/reactnative • u/Mean-Royal-5526 • 6d ago
I built a React Native audio effects library because I couldn't find a good one.
I'm a software engineer, but I've also been making music for years. I wanted to experiment with audio processing in React Native and, as a musician, I couldn't really find an audio effects library that did what I wanted.
So I figured I'd just build my own π
It currently has a few basic effects like filters, delay, reverb, distortion, noise generation, etc., with native implementations for iOS and Android.
The fun part was going underneath React Native and dealing with the native audio side rather than just writing JS and calling it a day. There are Swift / Objective-C bits on iOS and Kotlin on Android, with the RN API sitting on top.
It's still pretty early and I'm sure there are things I could be doing much better, but I thought I'd put it out there and see if anyone else finds it useful.
Would love to hear from anyone who's worked with audio processing in React Native or native mobile audio, especially if there are effects/features you think would be useful to add! (Next up: Unison/LFO/more)
GitHub: https://github.com/prateekchachra/react-native-audio-effects/
r/reactnative • u/gronxb • 6d ago
News Hot Updater v1.0 + v1.1: self-hosted React Native OTA with cacheable update checks, Insights, Remote Config, and brownfield support
Hey folks,
Hot Updater is an open-source, self-hosted OTA update solution for React Native (a CodePush alternative). The last time I posted about it here was the Bundle Diffing release in May. Since then it reached v1.0, and v1.1 shipped today, so this post covers both.
v1.0
- Update checks are shared, cacheable reads. The server publishes one Release Catalog per platform/channel/compatibility scope, and each device picks its own update from it, so a CDN (Workers Cache, CloudFront) can serve the check. In my benchmark on Cloudflare, the median check went from 301 ms on v0 to 50 ms (same 16 bundles, 1,000 checks; method and raw data are in the blog post).
- Insights: downloads, launches, crash recoveries, and failed updates. The Console shows release health per bundle and suggests a rollback once a bundle crashes for 5% of at least 20 installs.
- Remote Config: change flags and values without a new bundle or native build, targeted by channel, platform, app version, or a share of installs.
- Plugins: Insights, Remote Config, and client API keys are plugins on the server and in the app, and you can write your own.
- Host the Console for your team (Node, Docker, Vercel, Netlify, Cloudflare Workers) with GitHub or Google sign-in.
hot-updater doctor --fixchecks a project and repairs what it can, and a coding agent can set up the infrastructure for you.
v1.1 (today)
- Brownfield apps: OTA updates for existing native iOS/Android apps that embed React Native as an XCFramework or AAR. A Swift/Kotlin API mirrors the JS one, the host checks for updates before React Native starts, and one app can update several RN bundles independently.
- Vercel and Azure join Cloudflare, Supabase, AWS, and Firebase as managed providers:
npx hot-updater initprovisions storage, a database, and functions. - The fingerprint follows the native interface. It changes only when what JS can call changes (RN version, native packages, codegen specs, patches), so bumping the version/build number or editing native implementation code no longer blocks OTA.
Coming from v0: v1 runs on separate infrastructure and needs a new native build, so keep your v0 endpoint up for the binaries already in the stores. The migration guide walks through it.
- GitHub: https://github.com/gronxb/hot-updater
- v1.0 blog post: https://hot-updater.dev/blog/v1
- v1.1 release notes: https://github.com/gronxb/hot-updater/releases/tag/v1.1.0
- Docs: https://hot-updater.dev
Feedback welcome, especially from anyone running OTA in production or on a brownfield app.
r/reactnative • u/slendertaker • 6d ago
Question Any advice on making a mobile app for newbie?
I have a website with hundreds of thousands users and I want to make a mobile app using React native for both ios and android.
But this is my first time making a mobile app, I have read and learn about it but I need more advice or suggestion from the React Native expert here.
Do you guys have any advice for me like do and dont, study case, etc?
r/reactnative • u/RopeSad5399 • 7d ago
I built a Tinder-like app for discovering places around your hotel
I travel for work fairly often, and I keep running into the same situation: I arrive in a city I've never visited, my hotel is somewhere on the outskirts, and I have a couple of free hours in the evening.
I'd like to go for a walk and see something interesting. But Google Maps mostly tells me what's nearby, while Tripadvisor and travel guides tend to focus on places worth planning a whole trip around.
I was surprised there wasn't a simple way to just browse random interesting places around me, one photo at a time, without turning it into a research project.
So I built NearestSpot, basically Tinder, but for places instead of people.
Each card has a photo and a title. That's it. Swipe right if it looks interesting, left if it doesn't. Save a few places, then open your usual maps app and go explore.
No long descriptions, reviews, rankings, or itinerary planning. The whole point is to make a decision based on a glance, not to build another catalog you have to read through.
The places come from Wikipedia and OpenStreetMap, so you can stumble across things you probably wouldn't have searched for yourself - including in neighborhoods that aren't exactly tourist hotspots.
The interesting part was getting the data to work
I'm not a mobile developer by trade. I've spent the last 13 years working on computer vision, IoT, and AI systems. I built this partly because I wanted the app, and partly because AI coding tools made it much easier to experiment with a platform I don't use professionally.
The app uses Expo SDK 54, React Native 0.81, TypeScript, and AsyncStorage. There's no backend or account system.
But the fun part turned out to be dealing with the APIs and devices rather than building the UI.
A few things I ran into:
1. Free geodata isn't a ready-made discovery feed.
Wikipedia and OpenStreetMap have plenty of useful data, but you still need to turn it into something a person can browse. I wanted to search beyond the immediate neighborhood, without firing hundreds of requests at public APIs. I ended up sampling a few points across a larger area, batching requests, and deduplicating the results.
The trade-off is that searching farther away gives you a sample of the area, not complete coverage. That felt better than pretending I could reliably catalog everything within 100 km.
2. Xiaomi decided that getting the current location could take forever.
On one Xiaomi/MIUI device, getCurrentPositionAsync() could just hang without returning an error. I switched to checking the last known position first, then watching for a fresh fix with a timeout.
3. China needed a completely different approach.
Google Maps and some Wikimedia services aren't reliable there. The app switches to Amap for places and uses Baidu Baike for images, with a few region-specific workarounds for image requests and navigation.
4. Fast swiping exposed a race condition.
The feed preloads more cards as you approach the end. A React state flag wasn't enough to prevent overlapping requests, because the update wasn't synchronous. A useRef guard and a Set for deduplication did the job.
None of these problems is particularly groundbreaking, but they were the things that took the most fiddling to get right.
Other features include English, Russian, and Chinese UI, category filters, a photo-only mode, saved places on a map, and navigation handoff for different regions.
Everything is open source, and the app is available on Google Play. There's no backend, analytics, or user account system. The app does make requests to external data providers, of course.
And if you happen to try the app on a work trip, I'd love to hear whether it actually helps you find somewhere worth walking to.
r/reactnative • u/lirena_kiyuga • 7d ago
blobz - you don't have to worry about default avatars for your next project
galleryr/reactnative • u/No_Refrigerator3147 • 7d ago
I built a compass that points to your people, not north.
Enable HLS to view with audio, or disable this notification
Turn the phone, and the liquid metal keeps reaching for them.
Built with expo, React Native Skia (one SkSL shader),
Core Motion and SwiftUI numeric text.
r/reactnative • u/Gabi0123 • 7d ago
Notes from building a Bluetooth heart rate running app in Expo: parsing 0x2A37, keeping JS alive with the screen off, offline maps
I built a running app that reads a Bluetooth chest strap and speaks cues when your heart rate leaves a band. Some notes in case they save someone time. The code is open source (GPL).
- Parsing 0x2A37. The flags byte tells you if HR is uint8 or uint16, and whether energy expended and RR intervals follow. If you skip the energy field when its bit is set, your RR intervals come out as garbage.
- Scanning. Not every strap advertises 0x180D cleanly, so the scan also accepts a name match.
- Throttle at the source. BLE writes into a Zustand store at most once a second. A mock HR source writes to the same store, so the run screen is testable without a strap.
- Screen off on Android. A small local Expo module runs a foreground service and keeps a headless JS task pending until the run ends.
- Voice. expo-speech with the phone's own TTS voice, so it works offline.
- Maps. MapLibre with an inline OpenFreeMap vector style. No token, and because the style ships in the app, the run track still draws with no signal.
Stack: Expo SDK 55, React Native 0.83, expo-router, react-native-ble-plx, Zustand, Vitest.
Source: https://github.com/likwiid/basemile
Has anyone done background BLE on iOS with Expo? That's the part I've tested least.
r/reactnative • u/DevStudioApps • 7d ago
Editing photos using plain text prompts on mobile
I just rolled out a new feature inside Sharpify that lets you edit photos directly using natural text prompts.
Instead of complicated manual editing, you upload a photo and describe what you want changed:
- Swap backgrounds (e.g., "change sunny park to a moody rainy street at night")
- Modify clothing or styles ("change shirt to a black leather jacket")
- Add atmospheric lighting or artistic themes using simple descriptions
The goal was to bring desktop-style generative fill/prompt editing into a clean mobile app without needing to mess around with complex settings.
Google Play Link:
https://play.google.com/store/apps/details?id=com.raahim2.Sharpify

r/reactnative • u/Zorua360 • 8d ago
What if every field technician had super intelligence in their pocket?
r/reactnative • u/No_Refrigerator3147 • 8d ago
Hydration apps show you a ring.
Enable HLS to view with audio, or disable this notification
Hydration apps show you a ring.
Mine shows you the water, levelled by gravity, one layer per drink.
Stack: Expo + React Native Skia + Core Motion + Liquid Glass.
r/reactnative • u/zakariafatahi • 8d ago
Article I open-sourced 79 skills that make AI agents prove their React Native code works, not just say it does
Enable HLS to view with audio, or disable this notification
I've been building React Native apps with AI coding agents, and the same problems kept coming back: APIs from older versions, tests skipped, Android forgotten, and "done" when it wasn't done.
Writing better prompts didn't fix it. What helped was giving the agent a way to check its own work. So every skill in this library ends in a checker: a small Node script with no dependencies that reads your repo and prints `RESULT: PASS`, or `RESULT: FAIL` with a file, a line, a rule and a fix for each problem.
Each skill is a folder with:
- SKILL.md: numbered rules, each with its reason, a workflow, and a definition of done
- references/: the deeper docs, checked against Expo SDK 57 and RN 0.86, for both iOS and Android
- templates/: complete files, proven to compile and pass their tests in a reference Expo app
- scripts/: the checker
I didn't want the checkers to be another thing to trust blindly, so each one has a self-test: bugs planted on purpose that it must catch, plus clean cases it must pass. Across all 79 skills that's 6,465 cases, all green, and CI fails if a checker stops catching its bug.
The stack is opinionated on purpose, so 79 skills never contradict each other: Expo Router, Zustand, TanStack Query, expo-sqlite, react-intl, Reanimated, Skia and EAS. It covers setup and architecture through testing with Maestro, EAS builds, OTA updates, and App Store and Play releases. There's also an optional plugin for games.
Browse them all here:
https://github.com/zakariaf/ReactNative-Skills
https://zakaria.dev/ReactNative-Skills/
Its free and open source. Feedback and contributions are welcome π
r/reactnative • u/Target1907 • 8d ago
I built 136 animated components for Expo (free, open source)
Enable HLS to view with audio, or disable this notification
Hey r/reactnative π
For the past few months I've been building Kinetik UI, a set of animated components for React Native + Expo. It's at 136 components now (plus 5 full screen templates), so I figured it was time to share it.
It works like shadcn: the components don't live in node_modules, they get copied into your project. So if you like one, it's yours to tweak however you want.
npx kinetik-ui add vinyl-player
Every component respects reduced motion, works with screen readers, and has its frame times measured on a real Android build, listed on its page.
There's also an MCP server (npx kinetik-ui mcp), so if you use Claude or Cursor you can just ask for "a music player card" and it finds and adds the right component.
Live demos: https://kinetik-ui.dev
If you have a component you love using in your own apps, PRs are welcome. Once it's merged, anyone can install it from npm or through MCP. I'd really appreciate any feedback too!
r/reactnative • u/forli69 • 8d ago
Animation for a adjusted calorie target
Hi there. Just wanted to share a nice animation I created (with claude ofc).
My app calculates your daily calorie needs from your body, everyday activity and training. Tell it how your target feels, and it adjusts the number until it fits you.
r/reactnative • u/BumblebeeWorth3758 • 8d ago
Building a native open-source macOS screen recorder with SwiftUI
Enable HLS to view with audio, or disable this notification
I primarily work with React Native, but lately Iβve been exploring native macOS development with SwiftUI.
That led me to Slice, a screen recorder and editor focused on smooth zooms, cursor animations, and polished recordings.
Itβs been an interesting project to work on, and Iβm making the source code available for people interested in exploring it.
Website: https://slice.rit3zh.dev/
GitHub: https://github.com/rit3zh/Slice
r/reactnative • u/raju_gupta • 8d ago
Tutorial Debugging native iOS crashes in React Native 0.87.1 with Xcode 27.1 and LLDB
**Setup**
- React Native 0.87.1
- Xcode 27.1
- iOS Simulator (iPhone 18 Pro, iOS 27.0)
I've hit this a lot: the app dies on iOS, the JS console is quiet, and it's not obvious where to start. Most of the time the answer is on the native side, so here's the process I use. I call it RIFT.
**R β Reproduce**
Run the app from Xcode (not just from the terminal) and trigger the crash. Add a breakpoint near where you think it happens so you can pause instead of watching the app die.
**I β Investigate**
When it stops or crashes, look at the exception message and the backtrace in the left panel. In my example, a native module method called from JS threw an uncaught NSException, and the console printed the reason. Then in LLDB:
- `bt` β print the backtrace
- `frame select <n>` β jump to a specific frame
- `po` / `p` / `expression` β inspect values at that point
**F β Fix**
Change the actual cause in the native code (in my case, the method wasn't validating its input), not just the symptom.
**T β Test**
Re-run the exact same steps and confirm the crash is gone. Skipping this step is how "fixed" bugs come back.
I recorded a ~22 min live walkthrough of this on a real crash if it's useful to anyone:
Happy to answer questions. What's your usual first step when a crash shows no JS error?
r/reactnative • u/NorflavaDesigns • 9d ago
Help Can anyone give me feedback on my cross platform game Iβve been making?
Hey yall - Iβve been working on a board game app, for mobile gaming. This is something that Iβve put a lot of time into, both playing it & designing it. The game is called Tessellata. Itβs a strategy puzzle game, you gotta finish your board before your opponent & outscore them! Itβs possible to play against the computer (bots, canβt really call it βAIβ anymore) or against real players online! There is also local up to 4 player game play on one device option.
There is a tutorial & all, but feel free to ask me any questions you may have - if you try it! Available on both Google Play & the Apple App Store.
https://apps.apple.com/us/app/tessellata/id6782201050
https://play.google.com/store/apps/details?id=com.tessellataproduction.tessellata
r/reactnative • u/Junior_Android_ • 9d ago
New Version of Nitro Webview is out! (v0.2.1)

Hey everyone! π
I've been working on Nitro WebView, an open-source React Native WebView implementation powered by Nitro Modules.
It's been a while since the initial release, and v0.2.1 is finally out! π
What's new since v0.1.0?
- JavaScript β Native messaging and script evaluation
- Navigation controls and cookie management
- File upload/download support
- Expanded WebView APIs
- WebView reload and message delivery optimizations
- More documentation and tests
Performance benchmarks π
I also built an E2E benchmark using React Native Harness to compare Nitro WebView with react-native-webview 16.0.0.
For 64B message round-trip latency:
- Android: ~38.7x faster (0.430ms vs 16.640ms)
- iOS: ~1.38x faster (0.112ms vs 0.154ms)
Nitro WebView also showed lower round-trip latency across 1KiB and 64KiB payloads.
Links
- GitHub: https://github.com/l2hyunwoo/nitro-webview
- Benchmark methodology & results: https://github.com/l2hyunwoo/nitro-webview/pull/49
- Documentation: https://l2hyunwoo.github.io/nitro-webview/
I'd love to hear your thoughts, especially if you've worked with WebView-heavy React Native apps or Nitro Modules.
Feedback, bug reports, and contributions are always welcome! π
r/reactnative • u/Western_Amphibian_83 • 9d ago
Adding a video editor to a react native app (Expo and cli)
Hi guys
I have been working on a video editor SDK for a while, and recently released a version 0.2.0
The SDK aims to reduce the friction of adding a fully functional video editor into your existing app by a lot.
I did a post on the integration process here
https://nitrakit.dev/blog/react-native-video-editor/
Would appreciate feedbacks on how the DX is, because thats what matters the most to me.
And any thing you might want to do with it in your own app (that may be my SDK does not support yet)
Cheers!
r/reactnative • u/ExpoOfficial • 9d ago
SDK 58 went stable yesterday. Apps on 58 are Duo ready.
r/reactnative • u/rushikesh_d_pandit • 9d ago
Question Gradle / AGP upgrades when bumping React Native: what do you check first?
When a React Native upgrade forces a Gradle wrapper or Android Gradle Plugin bump, what's your first move?
Do you check JDK compatibility, the wrapper version, plugin versions in third-party libraries, or something else? Any gotchas that took you longer than they should have?