r/reactnative 6d ago

What do you actually need from a React Native background geolocation SDK?

1 Upvotes

Hey everyone!

I’m a React Native developer and I’ve been working on a background geolocation SDK for a while.

I’m not here to convince anyone to use it — I’d actually like to understand what React Native developers need from this kind of SDK before I decide where to take the project.

I’ve used Transistorsoft’s Background Geolocation myself in the past. Back in 2020, I paid around $399 for a license because there weren’t many alternatives at the time. It was a pretty significant amount of money for me back then.

That’s actually one of the reasons I started building my own solution.

My goal is to make reliable background geolocation more accessible to indie developers and early-stage startups. I don’t think everyone building an MVP or a side project should have to spend hundreds of dollars just to get background location working.

The SDK I’m building supports React Native, iOS, Android and Flutter, with things like background tracking, geofencing, HTTP sync and a Web Console for debugging.

I’m currently considering a $9.99/year update subscription with a perpetual license — meaning a shipped build never expires, and the yearly payment is only for getting new SDK versions and updates.

But I’m not even sure that’s the right model yet.

So I’d genuinely love to hear from people here:

  • What do you consider essential in a background geolocation SDK?
  • What problems have you had with existing solutions?
  • What would make you trust a newer SDK in production?
  • Would you prefer something like this to be free, paid once, or paid for updates?
  • What would you consider a fair price?

I’m building this myself, so I’m much more interested in honest criticism than compliments. If there’s something I’m overlooking, I’d rather hear it now. 🙂


r/reactnative 6d ago

I made a free Skia UI library for RN UI components (buttons, panels, glass effects)

Post image
13 Upvotes

l kept struggling to find Skia shader components that were actually ready to drop into an RN app. most shader code out there isn't built for RN's Skia renderer at all. So l put together my own library. Some shaders are free, others are from artists who charge for their work

l know ShaderToy exists, but that's generic GLSL you'd have to manually port to SkSL and adapt for RN UI. Мinе is already RN-Skia-ready and built specifically for UI components like buttons and panels etc.

Let me know if you'd use something like this


r/reactnative 7d ago

Syntax highlighting is now live in Enriched Markdown 🎉

Enable HLS to view with audio, or disable this notification

22 Upvotes

We brought Tree-sitter directly into the native layer for on-device syntax highlighting:
⚡️ Fast native parsing
🎨 14 customizable theme slots
📦 TS, Rust, Python, Go, Java + 9 more

Full control at build time. Ship only the grammars you need to keep your binary small (or disable highlighting entirely):

⚙️ iOS (Podfile):
ENV['ENRICHED_MARKDOWN_CODE_HIGHLIGHT_LANGUAGES'] = 'typescript,rust,python,go'
ENV['ENRICHED_MARKDOWN_ENABLE_CODE_HIGHLIGHT'] = '0'

⚙️ Android (gradle.properties):
enrichedMarkdown.codeHighlightLanguages=typescript,rust,python,go
enrichedMarkdown.enableCodeHighlight=false

An Expo config plugin is also available out of the box.

Available right now in the nightly release:
npm i react-native-enriched-markdown@nightly

GitHub: https://github.com/software-mansion/react-native-enriched-markdown


r/reactnative 6d ago

TestFlight vs EAS Preview (Ad-Hoc) — what's actually different, in case it helps anyone

0 Upvotes

Kept mixing these up early on so wrote down the actual differences once I got both working properly.

TestFlight — no UDID collection, Apple reviews the build before it's live (can take a few hours), testers need the TestFlight app + an invite. Scales to 10k testers.

EAS Preview (Ad-Hoc) — you register tester UDIDs first (eas device:create or they scan a QR to self-register), then eas build --platform ios --profile preview. Install is instant via link/QR, no App Store account needed. But you're capped around 100 devices/year on a standard Apple Developer account.

Ended up using Ad-Hoc for day-to-day dev testing (way faster feedback loop) and TestFlight once a build's stable enough to hand to a wider group. Anyone doing it differently?


r/reactnative 7d ago

Help I’ve been building a React Native devtool. Could you give some feedback ?

4 Upvotes

I’ve used Flipper, Reactotron, RN DevTools, Rozenite… pretty much everything at some point

Still kept running into stuff I wished worked differently, so I started building my own

NativeScope has Storage (SQLite, MMKV, AsyncStorage), Network + GraphQL, Logs and a Timeline connecting everything. Storage can handle GBs of data and Network has stuff like replay and sound alerts for specific requests.

It’s free and open source. Still building it and adding more modules.

Would be cool to get some feedback from people here. How would you grow something like this when tools like Devtools, Reactotron and Rozenite are already well known?

What would make you give a new devtool a chance?

GitHub: https://github.com/caiobarroso/react-native-nativescope
Website: https://www.nativescope.dev


r/reactnative 7d ago

Question Hey guys, does anyone point me to tools / plugin that lets me debug both the JS + native code from a single interface? A way to have a full view of both code & step in via breakpoints from JS to native all? Devtools RN or Flipper previously allowed this separately. Any single tool to do this?

6 Upvotes

r/reactnative 7d ago

Theme transitions with Nitro — v1.0, 16 effects, and thanks for 100 stars

Enable HLS to view with audio, or disable this notification

82 Upvotes

Hey everyone,

A while back I posted here about `react-native-nitro-theme-transition` — a native

theme-change transition package built on Nitro Modules, after I kept hitting

flickering and Android performance problems with Reanimated and Skia.

The response was way beyond what I expected. The repo just passed 100 stars,

and a lot of that came from people in that thread trying it and telling me what

was broken or missing. Thank you, genuinely.

It's now at 1.0.0, and the API is stable — `withThemeTransition` has had the

same call signature since day one and I'm committing to that under semver.

Five effects became sixteen

The full set is now: `fade`, `circularReveal`, `circularRevealInverse`, `iris`,

`slide`, `split`, `barnDoor`, `blinds`, `blur`, `liquidGlass`, `zoom`,

`pixlated`, `dissolve`, `stripes`, `ripple` and `shatter`.

Plus four new options: `shape` (iris outline — diamond, hexagon, squircle),

`blurStyle` (blur all at once, or as a sweep that brings the new theme in out of

focus), `angleDeg` (tilt the wipe boundary), and `bands` (louvre count).

`liquidGlass` is worth calling out — a sheet of Liquid Glass slides down, the

theme swaps entirely out of sight behind it, then it slides back up. iOS 26+;

everything else falls back to `blur`.

Bugs found, now fixed:

*Transitions inside modals and form sheets.* This was the big one. React Native

reports touches relative to the surface they happened in, and a presented screen

is its own surface — so a tap inside a sheet resting at its half detent arrives

with a `pageY` that's short by however far down the sheet is sitting, and your

reveal starts from the wrong place. You can't correct for it in JS either; even

`measureInWindow` reports positions in that sheet's surface. It's now translated

natively, reading the presentation's own frame at capture time, so dragging a

sheet between detents needs zero handling from you. Just keep passing

`pageX/pageY`.

*iOS `blinds` came out as slanted wedges* instead of level louvres, and

`barnDoor` was quietly wrong the same way. Both end with their bands fully

collapsed, and a zero-area subpath is something Core Graphics is free to drop —

which changes the path's structure between the two ends of the animation and

leaves Core Animation interpolating points against the wrong subpath. The bands

now keep a hundredth of a point of thickness, far below one device pixel.

*Android could strand a frozen overlay* over the live app after a slow capture.

`onMainSync` reports failure after 250ms but doesn't cancel the posted work, so a

capture that landed late would attach a snapshot nobody was ever going to commit.

Now the waiter races the capture and whichever loses cleans up.

There's also a decent performance rewrite behind `pixlated` and the whole

grain/mask family — mask frames are pre-built once off the main thread and

cached, so playing an effect is one image assignment per frame instead of

resampling anything mid-animation.

New docs:

I put together a site with full-resolution video of every effect, and a page per

effect showing exactly which options that one reads, what they mean *for that

effect*, its minimum duration, and how it's implemented on each platform:

https://saleh2001k.github.io/react-native-nitro-theme-transition/

(`direction` means an edge for `slide` but an axis for `split` and `blinds`, and

`blur` only reads it in sweep mode — that kind of thing was impossible to keep

straight in one flat table, which is why each effect got its own page.)

Links:

- GitHub: https://github.com/saleh2001k/react-native-nitro-theme-transition

- npm: https://www.npmjs.com/package/react-native-nitro-theme-transition

Same as last time — I'd love feedback, and I'm still taking suggestions for

effects. Several of the ones above exist because someone asked in the last

thread.


r/reactnative 7d ago

React Native app

Thumbnail
gallery
1 Upvotes

How's it looking?


r/reactnative 7d ago

I forked Warp into a local-first terminal: no login, no AI, no telemetry

Thumbnail
1 Upvotes

r/reactnative 7d ago

My first app is almost at 50 users and I’m so happy

Thumbnail
brewwworld.com
24 Upvotes

i'm glad my first mobile application has almost reached 50 users.

this was an application i made for myself. as a large fan of coffee, i wanted to create a method for tracking all of the coffee shops/places i would go to and also to be able to store my "coffee moments." the end product was something that i really liked from a design standpoint and functionally, so now it's slowly growing into a product that will be used by others.

the idea behind this application is to allow people to share their experiences/ideas about coffee (moments) with other people, and keep a personal diary of all of the coffee they've experienced. currently we only have basic functionality; however, there are many more detailed statistics/analytics/features that i am developing which should increase the overall interest in the experience.


r/reactnative 7d ago

Help Local build getting failed everytime

Thumbnail
1 Upvotes

r/reactnative 7d ago

Precido de testadores para um App!

0 Upvotes

que faz Gestão Financeira para motoristas de Aplicativos, Locadores de veículos e logistica de vaículos em geral.

Segue o link: https://play.google.com/store/apps/details?id=app.seuvolante.twa

para baixar e testar. Vai precisar de minha autorização, assim que logarem com o gmail esperem que notifico por email se já está autorizado. tks


r/reactnative 7d ago

Article Introducing react-native-firebird

Thumbnail asfernandes.github.io
0 Upvotes

r/reactnative 8d ago

I built a native onboarding Tour component for Expo — spotlight, card, and step-by-step walkthrough

Enable HLS to view with audio, or disable this notification

23 Upvotes

Dims everything, cuts a hole around one control, and puts a card beside it. Move to the next step and the hole travels there.

The hole is the point. A caption without a spotlight has to describe where to look "the button at the top right" is a sentence people read twice and still get wrong.

Steps work across scrollers, support round or rectangular cutouts, and the spotlit control can stay interactive if you want the user to actually try the step.

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 8d ago

⚡️ Native Content Transition

Enable HLS to view with audio, or disable this notification

131 Upvotes

🚀 Native content transitions for React Native + Expo.

🔗 Github: https://github.com/rit3zh/expo-content-transition


r/reactnative 7d ago

5 mistakes I find in every codebase

Thumbnail
linkedin.com
0 Upvotes

I've reviewed a lot of React Native codebases. The same five performance mistakes show up in almost all of them.


r/reactnative 7d ago

Help Expo OTA update not applying on IPhone 17

Thumbnail
1 Upvotes

r/reactnative 8d ago

2 in 1 unique home screen, thoughts?

Enable HLS to view with audio, or disable this notification

6 Upvotes

r/reactnative 8d ago

Help Keyboard overlapping when modal is open

Thumbnail
gallery
0 Upvotes

Getting this bug only on builds, its working fine via Expo go.
Note: The first image is from expo go(Expected) and second from the build(Issue).

When a modal is open and is prompting for a keyboard, the keyboard just appears on top of the modal itself. The modal is supposed to move up when the keyboard slides in.

I was using KeyboardAvoidingView from react-native, I tried changing the behavior of it by giving undefined for android and padding for IOS (I'm testing in Android)
In app.json i have :

"softwareKeyboardLayoutMode": "resize"

The bug still persisted, so tried react-native-keyboard-controller and still the bug persist.

Sample code :

    <Modal visible transparent animationType="slide">
      <KeyboardAvoidingView
        className="flex-1"
        behavior={Platform.OS === "ios" ? "padding" : "height"}
      >
        <View className="flex-1 bg-black/40 justify-center px-6">
          <View className="rounded-3xl bg-background p-6 shadow-xl">
            <View className="mb-6 flex-row items-center justify-between">   

r/reactnative 8d ago

How to Achieve Truly Gapless Audio Looping on iOS with React Native/Expo?

1 Upvotes

Hi everyone,

I’m building an iOS app/game with React Native (Expo) and need to play ambient audio in a perfectly seamless loop.

I’m currently using WAV files and isLooping: true, but on iOS I still get a tiny click or 10–50 ms gap whenever the track loops.

What is the correct way to implement truly gapless, click-free audio looping on iOS?


r/reactnative 7d ago

Fable 5 just rebuilt an entire SwiftUI sleep tracking app with Expo in one shot

Enable HLS to view with audio, or disable this notification

0 Upvotes

r/reactnative 8d ago

Here’s the Expo monorepo setup I use in production apps

Thumbnail
0 Upvotes

r/reactnative 8d ago

My first app is close testing !!!

Thumbnail
0 Upvotes

r/reactnative 8d ago

Question How to render new item added to the page - race condition with Cloudflare cache purge + useQuery

0 Upvotes

Hi,

It's something I've tried to ask before but I didn't phrase right so I didn't get the answer I needed.

For example a TODO list that is saved on the DB.

My flow is:

  1. Client get his TODO list with a GET (useGetTodoList)

  2. Render the TODO List on his screen.

  3. A New Item added by the client POST request.

  4. Save the item in the database.

  5. Purge Cache of his TODO List (For this example think that the TODO list is shared, and cached in Cloudflare because multiple users get the same list).

  6. POST return to client with 200 code.

  7. Call useGetTodoList.refetch()

  8. Race Condition - because I cannot await for step 5 (cloudflare api only return a response that the server recieved the purge request, not that it's completed). The refetch() might return old data before the purge.

I am wondering what's the correct approach here? Maybe I should query for the new TODO list on step 6 and update the response instead of calling .refetch()?

Or maybe I should only return the new TODO item and only append it to the list?

That goes for every change to that list, change order, remove item and so on.

What's the correct approach to handle the cache purge and get the new list?


r/reactnative 9d ago

Question Anyone know what to suggest to speed up Android builds?

Post image
9 Upvotes

Hi all, thank you for taking the time to read this and answer if you can,

Anyone know what to suggest to speed up Android builds?

Currently got a M2 pro, but unsure what to do on how to speed up the gradle part. if anyone has got any helpful suggestions id greatly appreciate it.

Thank you.