React Native Weekly
← Back to archive

2026-07-22 · #37

React Native Weekly #37 Metrognome AI tool, Flighty rebuilt with Expo, expo-widgets stable and more

Metrognome: an AI tool that optimizes just by handing it a slow screen#

Callstack released Metrognome, a tool that, when given a slow React Native screen, proposes fixes, actually operates the app to profile it, and keeps only the changes that proved effective. It reportedly works by combining Agent React DevTools, Metro MCP, and React Native Best Practices, and a blog post by Xavier Costa also explains how to use it.

Callstack Engineers @callstackio · 2026年7月20日

Give Metrognome a slow React Native screen and a night. It proposes a fix, drives the app, profiles it, and keeps the changes that hold up. Xavier Costa from @upholdtalent explains how it uses @agent_device, Agent React DevTools, Metro MCP, and React Native Best Practices ⬇️

Callstack Engineers @callstackio · 2026年7月20日

@upholdtalent @agent_device Read the article on our blog ➡️ clstk.com/4vJebLQ

Flighty’s iOS app recreated with Fable 5 and Expo#

There’s a report of Flighty—considered one of the most polished native apps on iOS—being recreated with Expo using Fable 5. All of its UI is reportedly composed of real native UI.

Nathan Schroeder @nater02 · 2026年7月20日

Flighty is one of the best-designed native app's on iOS, so I rebuilt it with @expo. Everything on the Expo side is real native UI. This is the best time there's ever been to build app's with Expo.

expo-widgets reaches stable in SDK 56#

expo-widgets has become stable in Expo SDK 56. This reportedly makes it possible to build iOS widgets and Live Activities directly as React components, without needing SwiftUI or a separate Xcode target.

Expo @expo · 2026年7月18日

Your app icon is one tap into your app. A widget is zero taps, and it shows up while someone's busy doing something else. As of SDK 56, 𝚎𝚡𝚙𝚘-𝚠𝚒𝚍𝚐𝚎𝚝𝚜 is stable. Build iOS widgets and Live Activities as React components. No SwiftUI, no separate Xcode target. Our

LegendList 3.3.3, performance improvements#

Following detailed performance analysis with Sol, LegendList 3.3.3 has been released. It reportedly reduces blank rendering during fast scrolling, eliminates position jumps, and lowers overhead when using multiple item types.

Jay Meistrich @jmeistrich · 2026年7月16日

I just released LegendList 3.3.3, the result of running some deep performance analysis with Sol. It's less blanky while scrolling fast, positions don't jump anymore, less overhead with many item types, better onStartReached/onEndReached. The apps I tested look much better! 🎉

React Native Screens 4.26.0 released#

The Tabs API is now stable, and on Android, FormSheet animations and keyboard handling have been improved. On iOS, touch handling for Pressable inside transparent headers has been fixed, and a new bottomAccessoryHidden property lets you hide the bottom accessory.

Software Mansion @swmansion · 2026年7月13日

React Native Screens 4.26.0 has just landed: ✔️ Tabs API is now stable ✔️ Improved FormSheet animations and keyboard interactions on Android ✔️ Fixed touch handling for Pressables in transparent headers on iOS ✔️ Added the bottomAccessoryHidden prop to hide the bottom accessory

React Navigation 8’s Button automatically shows a loading indicator on Suspense#

When navigating with the Button component from React Navigation 8’s elements package, a loading indicator now appears automatically — no extra code needed — if the destination screen suspends.

Satya @satya164 · 2026年7月14日

In React Navigation 8, when using `Button` from elements for navigation, it can automatically show a loading indicator if the target screen suspends with no additional code.

react-native-vision-camera 5.1.1 released#

react-native-vision-camera 5.1.1 adds support for focus(…, { adaptiveness: 'locked' }) on Android and improves GPU-accelerated private Frame Output. It also includes bug fixes around getSupportedResolutions() and Buffers.

Marc @mrousavy · 2026年7月17日

I just released react-native-vision-camera 5.1.1! 🥳🎉 👉 Support for 𝚏𝚘𝚌𝚞𝚜(…, { 𝚊𝚍𝚊𝚙𝚝𝚒𝚟𝚎𝚗𝚎𝚜𝚜: '𝚕𝚘𝚌𝚔𝚎𝚍' }) on Android 👉 Improved GPU-accelerated 𝙿𝚁𝙸𝚅𝙰𝚃𝙴 Frame Output 👉 Bugfixes around 𝚐𝚎𝚝𝚂𝚞𝚙𝚙𝚘𝚛𝚝𝚎𝚍𝚁𝚎𝚜𝚘𝚕𝚞𝚝𝚒𝚘𝚗𝚜(…) and Buffers

Argent’s feature expansion continues#

Argent, which lets Claude Code or Codex tap through React Native/native apps and debug them by viewing screenshots and the Accessibility Tree, has been updated. You can now grant, deny, or reset numerous permissions—like camera, microphone, and location—without navigating to the system settings screen.

It’s also reported that agent_device can now be learned about in the official Expo documentation.

酒井 / Hello @hello__sakai · 2026年7月20日

最近開発ツールで良かったのArgentで、React Native / ネイティブアプリをClaude Code/Codexからタップして操作させたり、スクショ撮ったりAccessibility Treeを見てデバッグさせたりできる 最近はAGENTS.mdなど細かく書くより、AIが操作できる範囲を増やすツールを入れる方がレバレッジ効くなと思う twitter.com/swmansion/status/2…

Software Mansion @swmansion · 2026年7月16日

Argent can now grant, deny, or reset permissions without navigating to the system settings. 🛠️ The list includes: camera, microphone, photos, contacts, calendar, location, and much more.

Michał Pierzchała @thymikee · 2026年7月16日

you can now learn about @agent_device from official @expo docs ✨

expo-device-hub: control simulators/emulators from the browser#

expo-device-hub, a tool that lets you control iOS Simulators and Android Emulators from the browser, has been published on Expo’s GitHub. It uses serve-sim and serve-emu internally, and when added as an Expo DevTools plugin, DeviceHub starts together with the Expo DevServer.

kazutoyo@TellerNovel @kazutoyo · 2026年7月16日

expo-device-hubというブラウザ上でiOS Simulator/Android Emulatorを操作できるツールがExpoのGitHubで公開されていた。 内部的にはserve-simとserve-emuを使っている。 Expo DevToolsのプラグインとして追加でき、ExpoのDevServer起動時にこちらのDeviceHubも起動する。

eas-simulator: driving simulators on EAS cloud from the CLI or AI agents?#

Expo’s skills repository mentions “eas-simulator - Run and drive your app on a remote iOS/Android simulator on EAS cloud, from the CLI or an AI agent,” which suggests that simulators/emulators hosted on EAS may become available.

skills/plugins/expo at main · expo/skillsA collection of AI agent skills for working with Expo projects and Expo Application Services - expo/skillsGitHub
kazutoyo@TellerNovel @kazutoyo · 2026年7月16日

ExpoのSkillをみていたら、 "eas-simulator - Run and drive your app on a remote iOS/Android simulator on EAS cloud, from the CLI or an AI agent" と記載もあって、EAS上でホストされたSimulator/Emulatorが使えるようになるっぽい? github.com/expo/skills/tree/ma… twitter.com/kazutoyo/status/20…

Project Redraw: a new rendering project combining WebGPU and the canvas2d API#

wcandillon and Mohamed have announced a new project called “Redraw,” which leverages SVG path geometry information directly in TypeScript. The goal is to combine the simplicity of the canvas2d API with the power of WebGPU.

William Candillon @wcandillon · 2026年7月17日

With Mohamed we wondered how it would look like if we leveraged the SVG path geometry information directly in TypeScript. The simplicity of the canvas2d API backed with the power of WebGPU: that's the aim of project Redraw. twitter.com/m090009/status/207…

Paper Shaders brings shaders to a one-line import#

Paper Shaders was introduced, letting you implement complex designs like mesh gradients and liquid-metal logos without learning GLSL. Reportedly, it can be set up with just a one-line import.

The React Native Rewind @ReactNativeRwd · 2026年7月15日

Your designer sends you a mockup featuring a mesh gradient and a liquid-metal logo. You google "GLSL tutorial." Your therapist asks why you seem different this week. You tell the designer it is not feasible. 𝗣𝗮𝗽𝗲𝗿 𝗦𝗵𝗮𝗱𝗲𝗿𝘀 made it a one-line import. Zero

bacons/apple-targets v5.0.0 released#

In bacons/apple-targets v5.0.0, if no existing .entitlements file is found in the target folder, the native entitlements file will now be written out to ios/.targets/<name>/generated.entitlements.

Evan Bacon 🥓 @Baconbrix · 2026年7月17日

bacons/[email protected] is out now. The native entitlements files for targets will now be written to `ios/.targets/<name>/generated.entitlements` unless a .entitlements file already exists in the target folder. This should make it easier to generate variants of targets and

A development log of migrating from Unity to React Native + Phaser#

A Zenn post was published documenting the experience of dropping Unity and instead combining React Native with Phaser to develop a mobile game, which was released to the App Store within 7 weeks.

いちけん|AIアプリ開発/システムエンジニアの見分け方 @ichikengogo · 2026年7月17日

UnityをやめてReact Native + Phaserでスマホゲームを作り、7週間でApp Storeに出した|いちけん zenn.dev/ichikengogo/articles/… #zenn

One More Thing#

I’d been using Reanimated mostly by feel, so to really understand it I had Codex turn the official docs into a learning book. Following that, I’ve also published a learning page for React Native Skia—check them out!

kazutoyo@TellerNovel @kazutoyo · 2026年7月15日

React Native Reanimatedを雰囲気で使っているけど、ちゃんと全部理解したかったから、公式のドキュメントを元にCodex君に依頼して本にしてもらった。 これで完全に把握した kazutoyo.jp/reanimated-book

kazutoyo@TellerNovel @kazutoyo · 2026年7月17日

Reanimatedに続いてReact Native Skiaの学習用ページをつくりました! 3連休にぜひ! kazutoyo.jp/rn-skia-book