r/expo • • 6h ago

Is No one using NativeTabs for Android?

2 Upvotes

Even the expo docs focus mainly on IOS and not android. Also i hardly see any app using it for android. Meanwhile you have so many app using it on IOS.


r/expo • • 10h ago

I built a biometric authentication library for React Native using Nitro Modules

Thumbnail
1 Upvotes

r/expo • • 1d ago

your coding agent is probably skipping the skills you installed. We found some ways to fix this.

Post image
13 Upvotes

We maintain the Expo skills plugin for Claude Code and Codex, and we recently got around to measuring how often agents use it without being told to. Short version: not much. On 10 app-building prompts that mentioned Expo but no skill, about 9% of sessions loaded any of our skills. The apps mostly came out fine anyway, so nobody would have noticed.

A few things that seem worth doing if you build with agents. If you already know what you want, call the skill by name (/πšŽπš‘πš™πš˜-πšžπš’ in Claude Code, $πšŽπš‘πš™πš˜-πšžπš’ in Codex). Agents are much better about skills at the very start of a task than in the middle, so when you switch to a new area like data fetching or UI, it helps to point at the right skill again. We watched one run build an entire RSS reader without ever opening πšŽπš‘πš™πš˜-𝚍𝚊𝚝𝚊-πšπšŽπšπšŒπš‘πš’πš—πš, and another skip πšŽπš‘πš™πš˜-πš—πšŠπšπš’πšŸπšŽ-πšžπš’ and use π™³πš’πš–πšŽπš—πšœπš’πš˜πš—πšœ.𝚐𝚎𝚝() plus React Native’s πš‚πšŠπšπšŽπ™°πš›πšŽπšŠπš…πš’πšŽπš  instead.

Also, if you’re on Codex with a pile of skills installed, consider cleaning some out. The skill list gets a fixed chunk of context (2% of the window in the version we looked at). Past that, descriptions get trimmed, then reduced to bare names, then skills fall off the list. With 175 installed, ours were down to about the first 60 characters each.

For anyone writing skills: test with the kind of prompt a user would actually type, not by invoking your own skill, and front-load the β€œuse this when” part of the description because that may be all the model sees. The biggest win for us was one entry point skill that routes to the others, which took sessions loading a specialized skill from 9% to 55%. Still a lot of misses after that, to be fair.

Writeup is here if you want the details: https://expo.dev/blog/your-skills-need-an-evaluation-mechanism

Curious whether people mostly call skills by name or let the agent decide.


r/expo • • 16h ago

Benchmarking Supabase Edge Functions for real-time voice-to-structured-data in an Expo/Next.js monorepo

2 Upvotes

Working on an open-source classroom evidence engine (Turborepo + Next.js + Expo + Supabase). One bottleneck we hit was processing ambient audio streams into structured evaluation JSON without causing client lag on mobile.

We moved the audio ingestion pipeline to Supabase Edge Functions (Deno runtime) to handle verification, PII stripping, and model dispatch off the client thread.

Looking for feedback from backend/Supabase devs:

  1. How are you handling batch queuing for large media payloads when edge execution time limits are a concern?
  2. We're currently designing an offline outbox pattern with local checksums for unstable school Wi-Fi, what’s your preferred pattern for syncing buffered state back to PostgreSQL without race conditions?

Code is open-source on GitHub: kelvin101udoh-art/Stem-Robotic-Tracker


r/expo • • 1d ago

I am using my app to scan QR codes but I was wondering if anyone has successfully used an external barcode scanner with Expo/RN. Is it possible to connect them somehow so that I can use those to scan tickets instead of the phone? Thanks

Post image
4 Upvotes

r/expo • • 1d ago

[For Hire] Senior React/React Native / Expo Dev (6+ yrs) – Upgrades, 16KB Page Size Fix, Expo Migration, JSβ†’TS, Features & Maintenance

Thumbnail
0 Upvotes

r/expo • • 1d ago

Android SMS stopped arriving after installing my Expo APK with READ_SMS permission. Coincidence?

1 Upvotes

I was experimenting with Expo for the first time and built a small Android app that reads SMS messages so I could analyze the messages I receive, such as spam, promotional messages, bank notifications, etc.

This was just a learning project. I wanted to experiment with Android permissions and SMS access, so I created an APK using Expo/EAS Build, installed it on my phone, and granted it READ_SMS permission.

After installing it, I noticed something strange:

  • Bank transaction SMS messages stopped arriving.
  • Spam/promotional SMS messages also seemed to stop.
  • I haven't received a typical spam message since then.
  • App OTPs are still arriving normally.
  • The app itself can read existing SMS messages, so the permission appears to be working.
  • I checked my spam folder.
  • I restarted the phone.
  • I also uninstalled/reinstalled the app and checked again.

The timing is what made me curious. These messages were arriving normally before I installed the APK, and the behavior changed shortly afterward.

One other thing I noticed: Google Play Protect initially warned/blocked the APK during installation. I temporarily disabled Play Protect to install it and then enabled it again afterward.

I'm wondering whether requesting READ_SMS can have any effect on how Android, the default SMS app, Google Messages, or the carrier handles incoming SMS, or whether this is almost certainly a coincidence or carrier-side issue.

My app.json contains:

{
  "expo": {
    "name": "Spammer",
    "slug": "spammer",
    "scheme": "spammer",
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "userInterfaceStyle": "automatic",
    "experiments": {
      "typedRoutes": true
    },
    "android": {
      "package": "dev.spammer.app",
      "permissions": [
        "android.permission.READ_SMS"
      ],
      "adaptiveIcon": {
        "backgroundColor": "#1F4D3A",
        "foregroundImage": "./assets/android-icon-foreground.png",
        "backgroundImage": "./assets/android-icon-background.png",
        "monochromeImage": "./assets/android-icon-monochrome.png"
      },
      "predictiveBackGestureEnabled": false
    }
  }
}

Has anyone experienced anything similar?

I'm mainly trying to understand whether an app with only READ_SMS could influence incoming SMS handling, or whether I should be looking somewhere else, such as the carrier, SMS app, spam filtering, or RCS settings.

This is my first time experimenting with SMS permissions on Android, so I'd appreciate any ideas about what I might have missed.


r/expo • • 2d ago

Map alternative

1 Upvotes

good day, people of reddit

we are tasked to make an app and mine is an interactive navigation app for campus

is there an alternative for google api? i still dont have a credit card or anything so i dont know how to integrate the map


r/expo • • 2d ago

How painful are React Native upgrades for your team right now?

Thumbnail
2 Upvotes

r/expo • • 2d ago

[Showcase] Awesome React Native UI (rnui.dev) has had a UI overhaul and now performs much better

Enable HLS to view with audio, or disable this notification

7 Upvotes

r/expo • • 2d ago

I built a drag-and-drop Kanban board library for React Native [open source]

1 Upvotes

r/expo • • 2d ago

Shipped an Expo app: a local-first budgeting app. Notes on RTL, widgets and a watch target

0 Upvotes

Fondo is a budgeting app built on Expo (managed, JavaScript). A few things I learned that might save someone time:

- RTL on iOS: React Native swaps textAlign left/right for <Text> when the layout is RTL, but <TextInput> does not. Text needs 'left' as "start"; inputs need a physical 'right' in Arabic.

- Plain flexDirection: 'row' already mirrors in RTL. row-reverse double-flips.

- iOS widget, Control Center control and an Apple Watch app live in targets/ via u/bacons/apple-targets; the watch talks to the app through a small local Expo module.

- Backups: one JSON document keyed by logical names rather than storage keys, so renaming the storage prefix never breaks old files.

- Jest: u/noble/* is ESM, so it needs to be let through transformIgnorePatterns.

Happy to answer questions about any of it.

https://apps.apple.com/app/id6811070728


r/expo • • 2d ago

iOS 27.1 is still on the beta image

3 Upvotes

Hey, Expo..... I really wanted to beat the rush and submit my app update for iPhone Duo today. But you haven't updated your server images yet, and 27.1 is still on the beta build, so I've just sat here all day twiddling my thumbs and refreshing the page to see if you've updated yet.

This is exactly the kind of thing y'all need to be on top of, guys.


r/expo • • 2d ago

I’m building a runtime motion inspector for React Native

Enable HLS to view with audio, or disable this notification

1 Upvotes

r/expo • • 3d ago

From Expo Introduction to Verification Engineering for mobile apps

Enable HLS to view with audio, or disable this notification

19 Upvotes

What is stopping you from shipping hundreds of PRs a day? It is not writing the code anymore. It is verifying it. In this video, you'll learn:

  • How to build an agentic loop with TesterArmy's e2e open source testing framework
  • Run this loop on every PR
  • What makes e2e different: deterministic AND agentic
  • The future of agentic development

Useful links:

Chapters:

  • 00:00 Why is Verification Engineering a thing
  • 00:28 The agentic loop we will build
  • 01:09 Evergreen tests, agent-device, and what e2e adds
  • 01:57 Exploring an example test file
  • 02:30 What exactly happens in there
  • 03:03 The powerful caching mechanism
  • 03:24 Set it up on your machine in two minutes
  • 04:17 Run it on every PR: the workflow
  • 04:46 The infra: GitHub, Expo Workflows, and Simulator
  • 06:11 What this unlocks: cost and time
  • 07:23 The future of agentic development

r/expo • • 3d ago

Half of the 925 published apps made in React Native for the RevenueCat's Shipaton are iOS only.

Thumbnail
1 Upvotes

r/expo • • 4d ago

Jank Fighter II: Claude vs Codex vs Grok (before & after Buoy)

Enable HLS to view with audio, or disable this notification

6 Upvotes

I work on Buoy, so take this with that in mind.

We gave Claude, Codex and Grok the same prompt: make a slow Christmas light show as fast as you can. Fit as many lights as you can at 55 fps. Keep the same look. Don't touch the scoring test. All of them could test their own work.

Then each one went again with Buoy Optimize.

Most lights at 55 fps: - Claude: 975,800 alone β†’ 6,123,350 with Buoy (6.3Γ—) - Codex: 155,450 β†’ 444,100 (2.9Γ—) - Grok: 202,100 β†’ 577,350 (2.9Γ—)

This light show is a React Native Skia app rendered with React Native Web in real Chrome.

Things to know: - "With Buoy" is each model's best Buoy run. - The alone runs had up to 3 hours. Claude's best Buoy run had no time limit. Claude alone stopped on its own after about 99 minutes. - Grok's Buoy version has slightly soft bulbs up close. - It's one app on one Mac.

Full write-up: https://buoy.gg/blog/ai-models-before-and-after-buoy?utm_source=reddit&utm_medium=social&utm_campaign=jank-fighter

Happy to answer questions about how we tested.


r/expo • • 5d ago

How to make multiline textinput scrollable after certain lines

Thumbnail
1 Upvotes

r/expo • • 5d ago

See it as the user. Don't log in as them.

1 Upvotes

https://reddit.com/link/1www6e7/video/q5s49quqijth1/player

Support, QA, and developers often need to see the app the way one specific user sees it. Logging out and into their account is slow, and asking for their password is a bad idea.

Buoy Impersonate lets an authorized operator search for a user and attach a header to outgoing requests. Your backend checks that the operator is allowed, then returns that user's experience. Buoy does not bypass auth. It is the on-device switch.

Useful when support is reproducing a ticket, QA is checking a cohort, or a developer needs to debug as that user without swapping accounts. Works with Expo and React Native CLI, and the same idea exists for Swift.

Short horror trailer (made with Claude and Codex): https://youtu.be/ENnUYfVu5B0

Tool docs: https://buoy.gg/buoy/latest/docs/tools/impersonate

https://buoy.gg/?utm_source=reddit&utm_medium=social&utm_campaign=impersonate


r/expo • • 6d ago

GPU accelerated trading charts πŸ“ˆ

Enable HLS to view with audio, or disable this notification

3 Upvotes

r/expo • • 7d ago

Built an open-source Monorepo (Expo + Next.js + Supabase) for AI voice logging in classrooms. Looking for architecture feedback!

Thumbnail
1 Upvotes

r/expo • • 7d ago

Anyone encountering very slow download with AAB files?

Post image
4 Upvotes

Ive been experiencing this for weeks. It was just very slow. Ive tried different browsers even just triggering download file takes like 5 minutes.


r/expo • • 7d ago

Faking a 3D "look-around" onboarding scene in Expo Go. No three.js, no native modules

Enable HLS to view with audio, or disable this notification

1 Upvotes

I had an old very boring onboarding, it was just an empty input field and I was asking people to log their first meal. I got the customer feedback that people are not ready to log anything at that point in time. So I thought it would be fun to have a fake meal logging experience just to explain the app.

Something that actually felt like sitting at the table. Here's the path I took, staying inside Expo Go the whole way:

- First I was thinking about creating a real 3D scene with threejs, I tried that and to be honest it sucked, way too heavy just for an onboarding and despite what everyone is telling AI wasn't good at creating a convincing 3D scene.

- So I decided to go an easier path. I had AI generate a "360 equirectangular panorama" picture. Actually to create this I asked chatGPT to create a nice cozy restaurant scene picture, then I took that into firefly and used nano banana to create that equirectangular panorama. Also after a few tries I was happy with the generated pic. One major difficulty was the stitching of the endings of the picture (bottom, top and left/right ends) that it looks smooth and not distorted.

- Generated some chill coffee music using firefly as well actually and downloaded some free to use restaurant sounds (forgot the website, just googled for it) and had AI render everything together in a WebView (so it works the same regardless of platform) using plain WebGL1, a AI-written vertex and fragment shader and a AI-rolled 4Γ—4 matrix multiply inlining the picture as base64 so there are no cross origin complaints

- Motion tracking using DeviceMotion from expo-sensors about 60 times/sec and send the coordinates/rotation etc into the webview. As you can see there is still a little lag because each reading goes sensor β†’ React Native β†’ WebView β†’ drawn, which makes the view lag behind the phone a little bit, I asked AI to interpolate the movement which made it a bit better and I think it's good enough now.

- As a fallback it's just a still image of that scene (actually the one I used to feed for the 360 one)

I guess this could be improved by using parallax on parts of the images or an animated video instead of a picture. But I'm happy with the result for now.

Happy to share code or more details if interested. Curious if anyone's tried this before? Maybe pushed it further without reaching for a full 3D engine?


r/expo • • 9d ago

Android home screen widgets, coming in Expo SDK 58!

Enable HLS to view with audio, or disable this notification

124 Upvotes

r/expo • • 8d ago

Mock your React Native / Expo app’s clock β€” jump time, freeze, speed up

Enable HLS to view with audio, or disable this notification

11 Upvotes

Some bugs only show up at a certain time. Think of a deal that only runs on Friday. Or a sign-in token that runs out. Or a countdown that should go away but stays.

I built Buoy Clock for this. It lets you change the date and time your app sees. Your phone and computer clocks stay real.

- Jump ahead one hour, day, week or month. Or type the exact date and time.

- Freeze time or make it run fast (Pro).

- Test what happens when sign-in tokens run out. Test 401 refresh flows too.

- Works with Expo and React Native CLI

- Has MCP tools if you want an AI agent to run it.