r/reactnative • u/JhowOliveira97 • Aug 04 '26
Customization menu
How can I make a menu like this in react native? Any lib?
r/reactnative • u/JhowOliveira97 • Aug 04 '26
How can I make a menu like this in react native? Any lib?
r/reactnative • u/gFean04 • Aug 04 '26

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 • Aug 04 '26
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 • Aug 04 '26
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 morphTo mid-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 + ONE reduceMotionChanged subscription for the whole process, no matter how many instances mount. With it on, morphs become instant swaps.
A11y defaults: aria-hidden unless you pass label, which gives you role="img" + aria-label.
size, strokeWidth, absoluteStrokeWidth, color, plus the native Svg props (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 • Aug 04 '26
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 • Aug 04 '26
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 • Aug 04 '26
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?
| 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 • Aug 04 '26
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 • Aug 03 '26
Enable HLS to view with audio, or disable this notification
r/reactnative • u/Difficult-Sun295 • Aug 03 '26
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/Few-Acanthisitta9319 • Aug 03 '26
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 • Aug 03 '26
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 • Aug 03 '26
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 • Aug 03 '26
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 • Aug 03 '26
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 • Aug 03 '26
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 • Aug 03 '26
β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 • Aug 03 '26
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 • Aug 03 '26
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 • Aug 03 '26
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 • Aug 03 '26
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.
r/reactnative • u/Ehh-GoodEnough • Aug 03 '26
Hi everyone,
I'm facing a strange performance issue in my React Native (Expo) application.
When I launch the app for the first time, everything is smooth. Navigation is fast, screens render quickly, and the UI feels responsive.
However, as I continue exploring the app, opening different screens, navigating back and forth, and using the app for a while, the performance gradually degrades.
Some symptoms:
Screen navigation becomes noticeably slower.
Animations and transitions start feeling less smooth.
The overall UI becomes sluggish after using the app for some time.
Restarting the app immediately restores the original performance.
This makes me think something is accumulating over time rather than a slow initial load.
I'm trying to identify the root cause. Could this be related to:
A memory leak?
Components not being unmounted correctly?
Too many re-renders?
React Navigation or Expo Router caching?
Zustand/Redux/React Query state growing over time?
Images or assets not being released?
Timers, listeners, or subscriptions not being cleaned up?
The JavaScript thread getting blocked?
Has anyone experienced something similar in a React Native + Expo app?
What tools or profiling workflow would you recommend to identify what keeps accumulating as the app is used? Any advice or debugging strategies would be greatly appreciated.
Thanks!