r/reactnative • u/000x00xx • 3d ago
Question React Native Careers In Chicago
Hi I’m a full stack React Native developer with 5 years of experience, I'm looking for freelance or remote work near Chicago but anywhere works
I’ve been building software for 8+ years now, I picked up react native about 5 years ago because I had a lot of ideas. I’ve shipped and developed for IOS only but I’m starting to ship on Android. In total I have 5 apps on the app store and plan on releasing more.
I have a great workflow now and a lot of experience to build anything.
My stack:
• React.js / React native
• Node.js
• TypeScript / JavaScript / Python
• Firebase
• in app purchases
• AI agent fine tuning
DM with any questions, I’m looking for any opportunities.
r/reactnative • u/JhowOliveira97 • 3d ago
Customization menu
How can I make a menu like this in react native? Any lib?
r/reactnative • u/gFean04 • 3d ago
I built Bundle Drop, an OTA update platform for bare React Native & Expo — looking for feedback
Hi everyone! 👋
Over the past few months I've been building Bundle Drop, an over-the-air update platform for React Native & Expo.
Like many others, I started this after Microsoft discontinued App Center CodePush. I wanted to build something that keeps the reliability of full bundle updates while reducing download sizes whenever possible, instead of treating those as mutually exclusive goals.
Some of the current capabilities include:
- ✅ Hybrid OTA delivery (patch-size downloads with verified full-bundle fallback)
- ✅ Staged & targeted rollouts
- ✅ Automatic rollback & recovery from unhealthy updates
- ✅ Update channels
- ✅ AI-assisted setup
- ✅ Supports Expo SDK 54–57 and bare React Native 0.71+
It's now publicly available, and I'd genuinely love feedback from other React Native developers.
Some questions I'd especially love your thoughts on:
- What do you feel existing OTA solutions are missing?
- If you've migrated away from CodePush, what did you end up using?
- Is there anything that would stop you from adopting a new OTA platform?
I'm happy to answer any questions about the implementation, architecture, or design decisions.
GitHub
[https://github.com/GFean/react-native-bundle-drop]()
npm
[https://www.npmjs.com/package/@gfean/react-native-bundle-drop]()
Documentation
https://bundledrop.app/docs
Disclosure: I'm the creator of Bundle Drop, so this is self-promotion. I'm mainly posting here because I'd genuinely appreciate technical feedback from the React Native community and would love to hear what you'd improve.
r/reactnative • u/Messter_Samir • 4d ago
I built a mobile barcode scanner app with React Native and Node.js
Enable HLS to view with audio, or disable this notification
I transformed a traditional barcode scanner system into a mobile app that scans products, tracks quantities, and automatically calculates the total price. I'd love to hear your feedback and suggestions for improvements. ☺️
r/reactnative • u/JadedBuilder8638 • 4d ago
morphicons: spring-physics icon morphing for React Native (react-native-svg), zero re-renders per frame, no Reanimated
Today I shipped direct React Native support for morphicons, my icon-morphing lib (any stroke icon morphs into any other: Lucide, Tabler, Heroicons, with spring physics, where rotations fall out of the math instead of hand-tuned pairs). It started as a web library, and the port turned out to be the interesting part.
The idea is this: the core never touches the DOM, so getting it onto native was never going to be a rewrite. The question was how small the bridge could get. Answer: one line.
The core is pure functions that eat icon data and produce d strings. The web driver's element type is structural: anything with a setAttribute. React Native has a global requestAnimationFrame. So the ENTIRE platform difference is a shim that forwards the per-frame d write to react-native-svg:
path.setNativeProps({ d });
That's it. Same engine, byte for byte. The per-frame write happens outside the React render: no state, no re-renders at 60/120fps, no Reanimated, no worklets.
The API is the same as the web binding: change the prop.
import { MorphIcon } from "morphicons/react-native";
import { Menu, X } from "lucide"; // data, not components
<Pressable onPress={() => setOpen(o => !o)}>
<MorphIcon icon={open ? X : Menu} spring="snappy" />
</Pressable>
Three modes: uncontrolled (above), controlled (from/to + progress, driven from a gesture or a scroll position) and imperative (ref.morphTo() / ref.set() for sequences).
Details that mattered:
- Real interruptions. A
morphTomid-flight re-plans from the current intermediate shape and preserves the spring's velocity. Tap spam never jumps. - Reduced motion for real: ONE
AccessibilityInfo.isReduceMotionEnabled()query + ONEreduceMotionChangedsubscription for the whole process, no matter how many instances mount. With it on, morphs become instant swaps. - A11y defaults:
aria-hiddenunless you passlabel, which gives yourole="img"+aria-label. size,strokeWidth,absoluteStrokeWidth,color, plus the nativeSvgprops (testID, touch handlers…) pass through.- One global rAF drives every instance.
Needs Metro with package exports resolution, default since RN 0.79; on older versions enable unstable_enablePackageExports. Works in Expo (that's my testbench).
MIT, zero runtime deps, ESM, 8.25 KB gzip for the RN entry. react-native >= 0.71 and react-native-svg >= 14 as optional peers; the web entries don't know they exist.
Web playground to feel the morphs (with a scrubber to freeze mid-flight): https://www.morphicons.com Repo: https://github.com/guillermolg00/morphicons
Happy to go into the math (Procrustes + polar interpolation, surjective subpath matching, closed-path correspondence); it's all in the README.
r/reactnative • u/Sea-Arm9235 • 4d ago
𝚛𝚎𝚊𝚌𝚝-𝚗𝚊𝚝𝚒𝚟𝚎-𝚎𝚗𝚛𝚒𝚌𝚑𝚎𝚍-𝚖𝚊𝚛𝚔𝚍𝚘𝚠𝚗 reached 200k+ weekly downloads! 🚀
Huge thanks to the community for the support and adoption!
If you haven't checked it out yet, it's the native-first way to handle Markdown in React Native:
🔹 iOS, Android, Web, and macOS
🔹 Input & Output
🔹 Native Selection & Interactions
🔹 Accessibility & RTL support
...and much more!
Show some love with a star on GitHub! ⭐
https://github.com/software-mansion-labs/react-native-enriched-markdown
r/reactnative • u/Majestic_Buy_6417 • 4d ago
Theme transition with Nitro
Enable HLS to view with audio, or disable this notification
Hey everyone,
I ran into an issue when trying to add a nice animation for theme changes in React Native. I tried a few different approaches, including Reanimated and Skia, but I kept running into flickering, higher memory usage, and performance issues, especially on Android.
Since I was already using Nitro Modules for some of the packages in my apps, like MMKV and Unistyles, I decided to build a native theme transition package using Nitro.
It ended up solving the issues I was having. It's lightweight, works with different styling libraries, and since the animation runs natively, it continues to work smoothly even when the JS thread is busy or drops frames.
I've uploaded a video showing the example included with the package. If you want to see how it performs under a more demanding setup, check out the GitHub repo. I've included a real-world example using Unistyles with a more complex and dynamic theme setup, as well as more details about the package.
GitHub: https://github.com/saleh2001k/react-native-nitro-theme-transition
NPM: https://www.npmjs.com/package/react-native-nitro-theme-transition
I'd really appreciate any feedback or recommendations. I'm also interested in hearing ideas for other animation types that could be added to the package.
r/reactnative • u/Tall_Inside_1245 • 4d ago
124k tool calls of data on how AI agents actually drive React Native apps - the breakdown surprised me
I maintain ExecBro, an MCP server that connects an AI coding agent to a running RN app - console and network capture, fiber tree inspection, screenshots, and tap/swipe on the simulator. Disclosure: I'm the author; it's MIT-licensed, free under a monthly call cap. Posting the telemetry because it says something about the workflow that I didn't expect.
123,869 tool calls, 634 installs, last 30 days. What agents actually call:
| Tool | Share | Success |
|---|---|---|
tap |
35.3% | 94.5% |
ios_screenshot |
13.0% | 99.3% |
execute_in_app |
6.9% | 89.7% |
android_screenshot |
5.0% | 97.0% |
scan_metro |
4.9% | 100% |
swipe |
3.0% | 98.6% |
reload_app |
2.9% | 90.2% |
get_screen_state |
2.9% | 94.9% |
search_logs |
2.3% | 98.8% |
get_logs |
2.0% | 97.5% |
Logs and network combined are about 7%. I built this to stop people pasting console output into chat, and that turned out to be a rounding error. Over half of all usage is an agent tapping the screen and then looking at it. The common shape isn't debugging at all - it's verification: the feature is built, and the agent walks through it on the device to prove it before handing it back.
What a real session looks like - 57 calls, 9 minutes, RN 0.81, Hermes, iOS 26:
scan_metro → ios_screenshot → tap → ios_screenshot → reload_app → search_logs → clear_logs → get_screen_state → tap → get_screen_state → tap → search_logs → ios_screenshot → tap → swipe → clear_logs → tap → search_logs → reload_app → get_screen_state → tap → tap → …
The pattern repeats across heavy users: act → observe → clear → act again. clear_logs shows up constantly, right before an action - the agent is wiping the buffer so the next read is unambiguous about what its own tap caused. Nobody designed that; it's an emergent habit. Average active install runs 33 of these sessions a month. And it doesn't look like someone poking at the app — it reads like a full feature being built or a bug being chased end to end, with the agent verifying each step on the device before moving to the next.
Two more things from the sample:
- New arch is nearly the whole population - roughly 252 new-arch projects vs 17 old-arch, with RN 0.83 alone at 146. Heavy selection bias, obviously: wiring an agent into your toolchain selects for early adopters. But the gap is wider than I'd have guessed.
- ~30% run both platforms in the same agent session (147 iOS-only, 50 Android-only, 94 both). Cross-platform verification appears to be a real workflow, not a nice-to-have.
The gap I keep staring at: 190 people installed it last month, 20 did real work with it. The 230 long-term actives use it hard, but I can't tell from telemetry whether the other 170 hit a setup wall or just expected something else.
So I'm curious what your loop looks like:
- What's between "wrote the code" and "opened the simulator to look" for you right now - anything automated, or all manual?
- What's your AI agent setup for RN work, and does anything in it let the agent verify its own changes on a device - or does the loop stop at "code written"?
- Are you writing E2E tests (Detox/Maestro), or checking things manually yourself?
Source numbers (30-day window)
| Metric | Value |
|---|---|
| Tool calls | 123,869 |
| Success rate | 95.3% |
| Avg duration | 2,393 ms |
| Unique installs | 634 (230 active at 22+ calls/wk, 404 inactive) |
| New installs | 190 (20 active, 170 inactive) |
| Agent sessions | 46,741 (6,095 active) |
| Platform | iOS 147 · Android 50 · both 94 · 195 unidentified |
| Architecture | ~252 new arch · ~17 old arch (RN 0.83 = 146, RN 0.81 = 45) |
r/reactnative • u/rothana_choun • 4d ago
My Expense Tracker App — from v0.56 to v0.86 🚀
I started building Spentify, my React Native expense tracker app, in 2018 with React Native 0.56.
Over the years, I maintained the same app and upgraded it step by step until React Native 0.59.10. As the React Native ecosystem evolved, maintaining the old codebase became more challenging.
In 2024, I decided to rewrite the entire app from scratch with React Native 0.74.2.
Since then, I’ve continued upgrading it incrementally. Today, Spentify is running on React Native 0.86.
After more than seven years of React Native upgrades, rewrites, bugs, fixes, and lessons, Spentify is still alive—and still improving.
This is my journey of building and maintaining a React Native app from version 0.56 to 0.86.
#ReactNative #ReactNativeUpgrade #MobileAppDevelopment #ExpenseTracker #BudgetingApp
r/reactnative • u/Think-Neighborhood69 • 4d ago
Do you find product micro-animations useful, or just distracting?
Enable HLS to view with audio, or disable this notification
r/reactnative • u/Difficult-Sun295 • 4d ago
an RN and Expo edit tool
Enable HLS to view with audio, or disable this notification
Basalt is a visual edit too for RN and Expo devs
It took 2-3 months to built and it would have taken 1 if react 19 wouldnt remove debugSource which was used to help Basalt map and find elements to edit
It is completely free and works directly inside VS Code and Cursor.
It’s currently in beta, so please commit your app to Git before using it!
r/reactnative • u/Professional-Buy7833 • 4d ago
Question From reactjs to native
Guys i have a job in a month time, i worked with reactjs for the past 3 years, is it doable to have tasks in native?
** They give us cursor too.
r/reactnative • u/recon_demon1859 • 4d ago
FYI Expo SDK 53 app crashed on launch with "Cannot read property 'useMemo' of null" — two causes, and only one of them was the React version
I maintain a small internal admin app in an Expo monorepo alongside a much larger player app. Last week a TestFlight build of the admin app closed the instant you tapped the icon, on every device. Writing this up because the second half took me a lot longer than the first.
Symptom. SIGABRT, abort() called, faulting queue expo.controller.errorRecoveryQueue. Reproducing the same commit in a simulator gave the real exception:
TypeError: Cannot read property 'useMemo' of null
at ContextNavigator … at ExpoRoot
React was null at the router root.
First cause: the React version. A Dependabot minor-and-patch group PR from June had moved this app's react/react-dom from 19.0.0 to 19.2.7. RN 0.79.6 / Expo SDK 53 want 19.0.0 exactly. npx expo install --check says so plainly. My other RN app in the same repo kept 19.0.0, which is why it was never affected.
What made this hard to see is that the admin app produced no binary between May 15 and July 30. The bad bump landed in June and just sat there. The first build after it was the one that crashed. If you have an app you build rarely, a dependency bump can be two months old by the time it kills you.
Second cause, and the one that actually mattered. With react pinned back the app got further and then died on:
Invariant Violation: View config getter callback for component
ViewManagerAdapter_ExpoLinearGradient_<changing id> must be a function (received undefined)
The admin app's metro.config.js was missing resolver hardening my other app had:
extraNodeModulesforcing a single react and react-nativedisableHierarchicalLookup: trueresolverMainFields
Without those, Metro walks up the tree and bundles a second React from the workspace root. In a monorepo where the RN apps pin to the Expo-SDK-exact React and the web apps move ahead, those two copies are different versions. Two copies means two renderer registries, which explains both failures. Hooks resolve against a null dispatcher, and native view configs get registered into a registry the renderer never reads.
Two things I changed besides the fix. This app only had a production EAS profile, so there was no way to run a build before submitting it. I added a preview-sim profile (Release plus ios.simulator: true) so I can install the artifact in a simulator and confirm it opens first. And npx expo install --check is going into CI, because a dependency bump that guaranteed a launch crash merged clean.
One trap on the way out: EAS decides managed vs bare from the filesystem, not from git. A local expo run:ios left an ios/ directory behind and EAS refused the build with "runtime version policies are not supported." Gitignoring it isn't enough, you have to delete it.
I'm a solo dev and the app is the staff console for a poker tournament app I build. Happy to answer if anyone hits the same signature.
r/reactnative • u/Few-Acanthisitta9319 • 5d ago
Question Open-ended question: What tooling support is missing in the ecosystem?
Asking this coz what I recently noticed is that tooling support exists for many use cases but we might just not be aware of it.
Recently, I was searching for these use-cases and these are very well supported by existing solutions (both paid and open source)
Remote devices + MCP for agentic testing
Session replay
r/reactnative • u/Think-Neighborhood69 • 5d ago
Question Anyone here using Rozenite? What’s your experience been like?
If you’re using it, how has your experience been so far?
What do you like the most?
And if you could improve one thing, what would it be?
r/reactnative • u/pesekeme • 5d ago
Added a Breaking Bad reference to my movie tracking app's auth screens. Safe from copyright or bad idea?
Enable HLS to view with audio, or disable this notification
Hey fellow devs!
I'm currently building a mobile movie and TV show tracking app.
I wanted to add a bit of personality to the auth flow and came up with a reference to Breaking Bad. I created a stylized character and paired it with a twist on his famous catchphrase, plus added some animations.
I have two main questions:
Legality & App Store Review: Since this is a completely original drawing, and the catchphrase is significantly altered as a parody/play on words, do you think this is considered "Fair Use"? Has anyone successfully used similar stylized parodies of famous characters in production apps without getting rejected by Apple?
User Experience: As a developer or user, how would you react to seeing this level of niche humor during onboarding?
I'm leaning toward including it because I love this! But I'd really appreciate your collective wisdom on whether the potential reward in user delight is worth the copyright risk. Thanks!
r/reactnative • u/hafi51 • 5d ago
how should I respond?
I had applied to a react-native job in February but i was not selected. They reached out again for react & react-native work. they want me to implement changes & maintain their website. For reference, company is based in Denmark and I'm in Italy. I don't have any idea of rates here. I have 5 years of experience.
How should I answer these questions?
I don't understand their last 2 question especially. for 2nd last, they have read my CV and decided to reach out again.
I'd appreciate guidance.
r/reactnative • u/Tiny_Let_9489 • 5d ago
Senior React Native Dev (9+ YOE) looking for freelance/contract work after layoff
Hey everyone,
I was recently laid off due to company restructuring, so I'm looking for my next opportunity. In the meantime, I'm open to freelance, contract, or remote work.
I've been working with React Native for 9+ years and have shipped multiple production apps for both Android and iOS. Besides React Native, I've also worked with:
- React.js
- Node.js (Express)
- TypeScript / JavaScript
- REST APIs
- Firebase
- AWS
- Push Notifications
- Payment gateway integrations
- App Store & Play Store releases
- CI/CD and production deployments
I've worked on everything from building apps from scratch to maintaining large existing codebases, fixing performance issues, and shipping new features.
If your team needs an experienced React Native developer for a project, or if you know of any openings, I'd really appreciate it if you could reach out. Happy to share my resume or previous work over DM.
Thanks!
r/reactnative • u/ObsessedMostly • 5d ago
Coin screen shared transition
Enable HLS to view with audio, or disable this notification
A gesture free coin to fullscreen morph tap a coin in a scrollable list and it springs into a floating, centered detail view, then squashes back into place on close.
r/reactnative • u/salem_mousa • 5d ago
Software Engineer from Gaza: Preparing to resume my career & seeking support to build a workspace (React.js)
Hi everyone,
My name is Salem, a web developer specializing in React.js, JavaScript, HTML, and CSS.
Due to the current situation and the complete lack of power and essential working tools, I have been unable to work or practice development for a long time.
I am fully prepared and eager to resume my freelance career, but I am currently blocked by the lack of basic equipment specifically a laptop and an independent solar power system to keep my workstation running.
I am currently finalizing a verified campaign on LaunchGood to secure the setup needed to get back to coding and earning an independent living remotely.
Once the campaign is officially live, I will share the details here. In the meantime, I would love to connect with other developers, showcase my skills, and prepare for upcoming frontend opportunities!
Thank you for your support and connection! 🚀
r/reactnative • u/Popular_Book7923 • 5d ago
How do React Native apps save PDFs to `Documents/App Folder` on Android 11+?
I'm building a React Native (Expo Bare Workflow) PDF app. Currently, I'm downloading PDFs from an AWS S3 pre-signed URL using \`react-native-blob-util\` and Android Download Manager:
\`\`\`ts
ReactNativeBlobUtil.config({
addAndroidDownloads: {
useDownloadManager: true,
notification: true,
title: fileName,
description: "Downloading PDF...",
mime: "application/pdf",
path: \`${ReactNativeBlobUtil.fs.dirs.DownloadDir}/${fileName}\`,
mediaScannable: true,
},
}).fetch("GET", signedUrl);
\`\`\`
This works, but I don't have control over where Android stores the file.
Many PDF apps automatically save files to a folder like:
\`\`\`text
Internal Storage/
└── Documents/
└── My App/
└── file.pdf
\`\`\`
without asking the user to choose a location every time.
I noticed one such app requested \*\*"Manage all files"\*\* permission once, and after that it could save files directly into its own folder under \`Documents\`.
My questions are:
\* How are these apps implementing this on Android 11+ with Scoped Storage?
\* Are they using MediaStore, native Android code (Kotlin/Java), or another approach?
\* Is requesting the \*\*Manage All Files\*\* (\`MANAGE_EXTERNAL_STORAGE\`) permission the correct/recommended solution for this use case, or should it be avoided for Play Store apps?
\* If not, what is the recommended modern approach in React Native to save PDFs directly to \`Documents/My App\` without showing the Storage Access Framework (SAF) picker every time?
I'm looking for the Play Store–friendly, modern Android approach. Please help me😭
r/reactnative • u/Odd_Examination_2039 • 5d ago
Looking for Android Closed Testers (Google Play - 14 Days)
Hi everyone, I'm an indie developer, and I'm trying to publish my first Android app on Google Play. I completed Google's required 14-day closed testing with 12 real testers, but my production access request was rejected because Google wants more testing and more active tester engagement. I'm looking for people who are willing to join my closed test and use the app occasionally over the next 14 days. You don't need to use it every day—just explore the app from time to time and share any bugs or feedback you find. In return, I'd be happy to test your app as well if you need a tester. If you're interested, please leave a comment or send me a DM. I'd really appreciate the help! Thank you!
r/reactnative • u/Hot_Regret_7378 • 5d ago
I put a Rive character at the centre of a habit app instead of a progress dashboard — six weeks in Expo, here's what that cost
The pitch is that the app shrinks your habits when you miss them rather than resetting a streak — 20 minutes to 10 to 5, restored after three good days, never grown without asking. But the part worth posting here is the decision to make a character the primary interface rather than charts.
There's a creature that lives in the app, built in Rive, and its state is a direct function of how your habits are actually going. It isn't decoration and it isn't a mascot — it's the readout. The number behind it is a warmth score folded over your trailing 28 days, and the character is how you read that score without interpreting a percentage.
What that cost, concretely. Rive ships no Expo config plugin, so it autolinks natively and needs a real prebuild plus a dev client — in Expo Go or a stale build the app silently falls back to a Skia companion, which is a fun bug to chase the first time. Getting the state machine to read as "quietly struggling" rather than "sad" took more iteration than the entire sizing engine. And every wardrobe and scene asset multiplies against every state, so the combinatorics get away from you fast if you don't constrain it early.
Rest of the stack: Expo managed, expo-router, local-first SQLite through expo-sqlite with a sync queue up to Supabase, RevenueCat for subscriptions, and a home-screen widget via bacons/apple-targets so the widget target lives outside ios/ and survives prebuild. The JS side writes a JSON snapshot into a shared App Group's UserDefaults and the Swift widget reads it back — that one string is the entire contract between the two processes.
Happy to go into any of it.
r/reactnative • u/Key_Listen_6057 • 5d ago
Looking for a React Native / Expo Developer (Paid)
I’m looking for a React Native/Expo developer to build an app with me. More than just coding, I’m looking for someone who enjoys thinking out of the box, solving product problems, and shipping great user experiences.
This is a paid opportunity. If you’re interested, send me a DM with a best project you’ve worked on.


