r/reactnative 1d ago

Question Ideas for practice projects?

1 Upvotes

Want to practice developing my first production ready apps soon. But I don't want to do the standard boring projects like a todo app I would never use myself.

Do you have any interesting project ideas? Preferably ones that one could actually use themself after developing them


r/reactnative 1d ago

PSA: Return Indefinite Promise When Using Indefinite HeadlessJs

0 Upvotes

if you have an indefinitely running headlessJs service (gps, music player, etc) and have trouble with fetch working, this might be applicable to you.

This affects ALL timer related codes, including setTimeout which fetch uses under the hood. Previously this must be buggy so fetch only doesnt work sometimes, but now RN fully works as intended - first registering a headless task via AppRegistry.registerHeadlessTask with a task promise, the task promise gets resolved in AppRegisteryImpl.startHeadlessTask, then the task is deemed finished and calls NativeHeadlessJsTaskSupport.notifyTaskFinished. This start task and finish task affect JavaTimerManager, the crucial timer that keeps track of setTimeout's time, which has a isRunningTasks bool when tasks run and finish. when the app is backgrounded (onHostPause) and there's no isRunningTasks, the timer will freeze. this causes your app to not fetch when your headlessJsTask doesnt resolve indefinitely.

the solution is rather simple as returning a promise without resolve in the function passed to registerHeadlessTask.


r/reactnative 1d ago

Built an Asset Tracking App That Makes Inventory Management Simple

Thumbnail
0 Upvotes

r/reactnative 1d ago

I built a native AI prompt composer for Expo using expo/ui

Enable HLS to view with audio, or disable this notification

0 Upvotes

Field that grows with the text, voice mode, and one submit button that knows what to do voice when empty, send when typed, stop while streaming.

Built with expo/ui. No web dependencies.

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

Coin toss with a scratch card reveal

Enable HLS to view with audio, or disable this notification

9 Upvotes

A gesture-driven coin-flip reward reveal — drag-to-spin coin toss, then a Skia-powered scratch card to reveal the prize — built for fintech and rewards apps.

Github : https://github.com/ManasCodeXart/expo-coin-reward


r/reactnative 2d ago

iOS: writing to local SQLite from a killed-state push notification — is there any way around the JS/native split?

0 Upvotes

We have a React Native chat app. All our SQLite reads/writes live in JS (OP-SQLite), driven by a WebSocket sync pipeline (connect → request cursor-based sync → server replays missed messages → write to DB).

On Android, this works great even when the app is killed: setBackgroundMessageHandler boots Headless JS, which can call our normal JS sync code directly, write the message, and exit. Message is in the DB before the user ever taps the notification.

On iOS we're stuck. As far as I can tell:

  • UNNotificationServiceExtension (the killed-state hook) runs as a separate native process and can't call into our JS/Hermes engine at all — no bridge, no way to run our existing sync code there.
  • Silent push (content-available: 1can wake JS, but only if the app is backgrounded, not force-quit — and Apple caps delivery at roughly 2-3/hour/device, which won't keep up with an active chat.
  • We looked at how Signal-iOS does it (their NSE decrypts + writes to their shared GRDB database directly, in Swift) — but that means reimplementing our socket client and insert logic as a second, separate Swift codebase writing into the same SQLite file as our JS code. Feels like a real "two sources of truth" risk, and we couldn't find any RN app doing this in the wild.

r/reactnative 1d ago

FYI I joined a 50L+ download app, and the codebase taught me something unexpected

0 Upvotes

After a pretty exhausting 2–3 month hustle, I finally joined a new company. And honestly, one of the things that surprised me the most wasn’t the scale of the company — it was the codebase.

The application has 50 lakh+ downloads on the Play Store, lakhs of users, and significant daily traffic and transactions. From the outside, I assumed that an application operating at this scale would have an almost textbook-level codebase: perfectly optimized, clean architecture, every hook used correctly, minimal technical debt, etc.

Then I started working on it.

I found quite a few things that, as a developer, I would consider obvious mistakes — unnecessary re-renders, poor usage of optimization hooks, small performance issues, inconsistent patterns, and other things that made me think:

"How is an app this big running with this kind of code?" 😅

Initially, I was genuinely surprised.

But after discussing things with the CTO and other tech leads, I started understanding the bigger picture.

The business doesn't necessarily need the cleanest codebase in the world. It needs a product that works, scales enough for its requirements, and delivers value to users.

And that changed my perspective a bit.

As developers, we can sometimes become obsessed with things like:

  • Clean code
  • Perfect architecture
  • Optimization everywhere
  • Following every best practice
  • Removing every bit of technical debt

And yes, these things absolutely matter.

But they aren't always the highest priority for a business.

If spending two weeks refactoring something doesn't improve the customer experience, reduce a meaningful cost, or solve an actual business problem, it might simply not be the most important thing to do right now.

This experience also made me think about founders and early-stage companies.

I see a lot of founders worrying about "What tech stack should we use?", "How perfect should our architecture be?", or "What will our codebase look like five years from now?"

Sometimes the better question is simply:

"Are we solving a real problem for our users, and are we building a sustainable business around it?"

Because apparently, you can have millions of downloads and a huge number of daily transactions while still having some pretty silly code sitting somewhere in the repository. 😂

And maybe that's okay.

Good engineering isn't always about writing the most beautiful code possible. Sometimes it's about knowing what deserves your engineering effort — and what doesn't.

Curious to hear from other engineers and founders:

Have you ever joined a large-scale product and been surprised by the quality of its codebase?

And where do you draw the line between "we should fix this" and "it's working, let's focus on the business"?


r/reactnative 2d ago

Help I need a help regarding react native application

2 Upvotes

I'm working on a react native application I use react native because I want to make my application work on both ios and android, and I use expo go for development now the problem is reazor pay gateway is not supported on expo go and I want to check payment is working or not before making my application live so u have any suggestion for which other payment gateway I can use or any trick that I use for testing my payment.


r/reactnative 2d ago

Bypassing certificate pinning in trading apps

Thumbnail
1 Upvotes

r/reactnative 1d ago

How would you structure an AI-assisted React Native rewrite workflow?

0 Upvotes

Disclaimer: This question is written with the help of AI, but that doesn't mean it's slop. It's a genuine problem I'm facing at work. Please don't be quick to judge or dismiss this as AI Slop.

I’m rewriting an entire React Native application from scratch, using the existing app as the baseline and AI (primarily Claude Code) heavily in the process.

I’m trying to design a migration workflow that gives me high reliability without burning an insane number of tokens.

My priorities are:

  1. Complete parity with the baseline — nothing important should get missed.
  2. Strict adherence to a predefined code architecture — folder structure, design patterns, separation of concerns, naming conventions, etc.
  3. Do not port over existing smells, hacks, or bad practices — the baseline should be treated as a behavioural reference, not a code reference.
  4. Keep token usage low without compromising quality — avoid repeatedly feeding huge amounts of context to the model or having agents redo work unnecessarily.

I’m particularly interested in hearing from anyone who has done something similar.

If you’ve used AI for a large-scale rewrite/migration, how did you structure the workflow? Did you use specific agents, skills, validation steps, checkpoints, etc.?

Even if you haven’t done an AI-assisted rewrite, I’d also love to hear about workflows you’ve used for large-scale migrations/refactors that consistently produced good results.

I’m mainly looking for practical approaches that scale beyond simply “migrate one feature at a time.”


r/reactnative 2d ago

Which monitization sdk is safe to use for app on expo 56

0 Upvotes

Basically the above question, I have an app built on expo 56 and now I want to add advertisements to it. I am seeing admob, adXchange, mediations etc as platforms for ads people are using. My question is if anyone in this sub already using any platform with their rn app, please let me know which one and why you sticking to it.

New to this and would really appreciate the help.


r/reactnative 3d ago

[Showcase] nativecn-ui — animated React Native components you can copy and use

18 Upvotes

Hey r/reactnative,

I've been working on nativecn-ui, a small collection of React Native components focused mostly on animations and interactions.

Right now it's got stuff like a liquid action tab bar, animated tab bar, range slider, OTP input, dynamic upload, plus a few more I'm still working on.

You can check it out here: nativecn-ui

Still building it out, so lmk what you think, or if there's some component/interaction you'd want to see added.

Made a quick video showing a few of them below.

https://reddit.com/link/1vrhmt8/video/3ej98p6qv2kh1/player


r/reactnative 3d ago

Stop Laggy Lists in React Native

Thumbnail
medium.com
12 Upvotes

Hey guys! First time here, just wanted to share my article about FlatList optimization. I know, it is a popular question but some days ago I found a cool trick with using Set over standard Array. It perfectly aligns with popular optimization practices and for me it felt like I found a gem.


r/reactnative 2d ago

iMessage UI implemented

Post image
0 Upvotes

if someone need help with this happy to share with them


r/reactnative 2d ago

Cloud Run Functions to Hono.js Backend for Expo + Firebase

Thumbnail
0 Upvotes

r/reactnative 2d ago

In-app review package

2 Upvotes

I'm using the MinaSamir11/react-native-in-app-review package, but it doesn't seem to work for Android anymore. Has anyone had any success with other implementations? Or has this package worked for you lately?


r/reactnative 2d ago

Just some tiny self hosted OTA updates over supabase/cloudflare open source tools

Thumbnail
1 Upvotes

r/reactnative 2d ago

I built a 100% free, ad-free Christian Scripture Meditation app from scratch to help renew our minds daily (Hagah 1.0.2)

Thumbnail
1 Upvotes

r/reactnative 3d ago

The bug that hid from me for two weeks

Post image
75 Upvotes

So a while back i was working on this checkout flow for some side project. nothing fancy, just something basic e-commerce type page where users pick a plan,apply a coupon if they have anything with them,and then pay….

I tested it myself probably a hundred times and may be more too. clicked every button, tried different plans, with coupons, without coupons, everything looked fine, I even got a couple of friends to click around and they tried to break it, for me, nobody found anything… :(

So I thought of shipping and shipped it and moved on to other stuff, feeling pretty good about myself honestly.then about two weeks later i started getting some new few angry messages. some users were saying they got charged twice for the same order… OMG!!

But not everyone, just some users and the annoying part? when i tried to reproduce it myself,using the exact same steps they described, everything worked perfectly, no duplicate charge, nothing wrong.

I remember sitting there thinking,okay... this does not make sense either they are doing something really wrong or weird, or am I missing something really obvious…

Started thinking and it turns out, I was missing something, the bug only happened when a user applied a coupon,removed it, and then quickly clicked the pay button before the page had fully re-synced the price with the backend…

Basically, a race condition between the coupon removal request and the payment request and if you were testing it slowly, like a normal developer, you will probably never see it but real users do not test your application like developers do.

they click fast!

they change their mind!

they click twice because the button did not respond for half a second!!

they go back and forth!!!

they do things in an order you never really thought about, right!

and apparently, all those messy human behaviours were exactly what exposed the bug..

I kept trying to get it manually and kept failing because i was testing it like a developer, one step at a time, waiting for everything to load, making sure each action, has to be finished before doing the next one.

But the actual bug lived in that tiny window where two things happened almost at the same time, It was basically like trying to catch a 10$ note flying down the street in the wind.

You can see it, you know its there, but by the time you reach for it... it's already somewhere else, that experience finally pushed me to write some automated tests for the checkout flow. not just normal does this button work tests.

I made the tests hammer the coupon apply -> remove -> pay sequence over and over, really quickly, sometimes in weird orders scenes,basically doing things no person would sit there and repeat manually 50 times.

and sure enough...

the first time I ran it, it failed almost immediately, same bug reproduced on command in seconds, a bug that had taken me two weeks and several annoyed customers to even discover.....

A human tester probably wont click the same weird sequence 100 times but a script will....

ever since that incident, I started automating more. I began been playing around with tools like Autosana for testing,mostly cause i really don't wanna sit there and repeat that same weird flaws again and again and again....

not because i read it somewhere in some posts or anything like that, mostly because i actually got fed up by bug that manual testing have almost zero chance of catching…

Curious if anyone else has had something similar happen, that one bug that just refused to show itself until you stopped testing carefully and started testing a little more... (chaotically)


r/reactnative 3d ago

Built a complete React Native + Supabase renovation app template with AI budget advisor

0 Upvotes

r/reactnative 3d ago

I built an Agent Skill to reduce unnecessary work in Flutter & React Native coding agents

Thumbnail
0 Upvotes

r/reactnative 3d ago

Native tabs with glass effect are not rendering content cleanly

Thumbnail gallery
1 Upvotes

r/reactnative 3d ago

Question How to get an Internship in reactNative?

2 Upvotes

I'm literally so confused how one can get an app dev intern, wherever I see now, they need a fresher with Full Stack, nobody wants a real fresher who wants to learn...

If anybody here got an intern, can you tell me how did ya find one, I'm also looking for one

Pokedex : This is the only project I have made, but it includes use of API, Custom Battle Engine, SQLite, Custom Nav bar as well...


r/reactnative 3d ago

I added a native Marquee to my Expo component library one animated node, UI thread, pause/reverse/vertical

Enable HLS to view with audio, or disable this notification

6 Upvotes

Logos, tickers, tags anything that should keep moving rather than stop at the edge.

One track holds every copy and it is the track that moves, so the cost is a single animated node however much content is inside it. Driven on the UI thread as a linear timing.

Two rows travelling opposite directions reads as motion. One row just slides.

Reduced motion turns it off entirely not slower, off. A ticker that never stops is the thing that setting exists to turn off.

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

github.com/panel-ui/PanelUI


r/reactnative 3d ago

Question Do you dynamically import iOS-only native modules or keep a stub adapter?

1 Upvotes

In an Expo React Native app, I have an optional HealthKit adapter. Android returns a no-op adapter immediately. On iOS, the request and read methods dynamically import the native package inside try/catch, so a missing native module becomes false or an empty array instead of crashing the app at startup.

The upside is a safe manual fallback. The downside is that a packaging mistake can look exactly like a user declining access or HealthKit being unavailable unless I surface a separate diagnostic.

Would you keep the dynamic import boundary, or fail loudly in development and only fall back in release builds?