🤝 Sponsor

E2E testing in React Native, without the pain
Setting up an E2E stack, keeping tests green across RN upgrades, debugging flakes in CI. It adds up fast. TesterArmy takes a different approach: autonomous agents that test your app in plain English, with first-class integration for React Native and Expo built by core contributors. You get the coverage without maintaining test code.
🎉 React Native 0.87 is Out!
The Strict TypeScript API is now the default. Types are generated straight from RN's source (no more hand-maintained drift), the public API is scoped to root exports only, and deep imports into Libraries/* are now type errors. An opt-out exists, but only through 0.88, so start migrating. There's even a /migrate-to-strict-api skill for agent-driven upgrades.
Other highlights:
Metro 0.87: 2x faster source maps, half the memory, stable TS/ESM config support
Swift Package Manager (experimental): build iOS with just Xcode. No Ruby, no Bundler, no
pod install. Not production-ready yetAGP 9 support: with recommended opt-out flags for built-in Kotlin and the new DSL
Raised minimums: Node 22+, Kotlin 2.0+, compileSdk 37 (minCompileSdk 34)
Removals: InteractionManager (use requestIdleCallback), Modal's animated prop, deprecated StatusBar props, and standalone react-devtools support. ImageBackground and DrawerLayoutAndroid are now deprecated.
📦 Packages
Gesture Handler 3.2.0 adopts AGP 9, rebuilds
Pressableon top ofTouchable, and adds hover callbacks toTouchableon Android, iOS, and web. It also fixes a fataltranslationXcrash, resolves numerous touch delivery issues on macOS and iOS, and updates types for the Strict TS API.React Native Worklets 0.12 adds
WeakRefsupport on Worklet Runtimes and brings Bundle Mode script loading on par with React Native, replacing in-memory copies with mmapped local bundles and streamed dev-server downloads. It also introduces anenableLockingoption increateWorkletRuntimefor advanced thread-safety scenarios, and fixes the UI loop not pausing when the app is backgrounded.VisionCamera 5.2.2 is a patch release that caps the
AHardwareBufferimport cache at 12 images to prevent memory growth on Android, fixes<Camera />view alignment when positioned withtop/left, and now emits configure/start errors throughonErrorso they can be handled properly instead of failing silently.react-native-skia-lab is a showcase of advanced React Native Skia techniques, featuring interactive demos for shaders, gestures, physics, painting, pixel manipulation, and polygon rendering. While it isn't a library release, it serves as a valuable reference for implementing high-performance graphics, animations, and creative UI experiences in React Native.
React Native Screens 4.27.0 adds support for React Native 0.87, fixing an iOS runtime crash along the way. It also introduces an experimental
ScrollToTopGuardcomponent, migrates theSplitcomponent from Swift to Objective-C, and fixes several bugs including an Android crash when a header updates during screen removal and tab bar label truncation on iOS 26.React Native Skia 2.11.0 upgrades the underlying Skia engine to milestone 152 and adds a new
selectcapability that lets you drive multiple animated props from a single shared value, making complex Reanimated-driven graphics more efficient and less boilerplate-heavy.Re.Pack 5.3.0 adds a
maxInlineSizeoption for size-based asset inlining, lets you customize the native HTTP client used for remote script downloads (SSL pinning, interceptors, custom headers), and simplifies code signing setup by automatically embedding the public key intoInfo.plistandstrings.xmlvia the newpublicKeyPathoption. It also fixes Android dev-server URLs on physical devices and resolves several security advisories in dependencies.Safe Area Context 5.9.0 adopts AGP 9 and focuses on web fixes: nested
SafeAreaProvidernow reports its own frame and insets, insets and frame update on window resize, and aNotFoundErrorwhen the measurement element is already detached is resolved.React Navigation Core 7.21.12 is a small patch that fixes
beforeRemovenot being emitted for nested routes removed by aresetaction, so cleanup logic and navigation guards now fire correctly in that scenario.Lottie React Native 7.4.0 raises the minimum requirement to React Native 0.84 and exposes a new Android opacity layer option, giving more control over how semi-transparent layers render. The release also includes CI and tooling updates.
Nitro 0.36.5 fixes a cyclic JVM reference on
CxxPartthat caused a memory leak on Android, making it a recommended upgrade for anyone building or shipping Nitro Modules.Legend List 3.3.5 fixes a bug where changing
dataKeyleft the new dataset invisible, keepsmaintainScrollAtEndproperly pinned while newly inserted rows are measured, and makes programmatic scrolls more reliable on web, where they could throw or silently stop working after a canceled request.Keyboard Controller 1.22.3 is a stability release that fixes several crashes:
KeyboardChatScrollViewon unmount, anIllegalStateExceptionon Android, and an unpaired UTF-16 surrogate crash inonTextChangedHandleron iOS. It also adds Strict TypeScript API compatibility, aroundedprop forKeyboardEffects, and fixes overscroll during interactive keyboard dismissal.
📖 Reads
Building a ChatGPT-style AI chat app in React Native. Margelo's Dave Mkpa-Eke shows that a native-feeling chat UI is fully achievable in React Native: a Liquid Glass composer via
@callstack/liquid-glass, streaming over native WebSockets withreact-native-nitro-websockets(including socket prewarming before the JS bundle loads), natively-rendered markdown, and Pinecone-backed RAG via function calling. The performance numbers back it up: 57-60fps on both threads while scrolling, ~0.6s cold launch on an iPhone 16. Full source is open, and the article doubles as a tour of the modern RN library ecosystem.Convex is now a one-command backend for Expo apps. Running
eas integrations:convex:connectprovisions a Convex project, installs the package, writes your env vars, and configures EAS environments across production, preview, and development. No separate signup, no dashboards, no copy-pasted tokens. You get a reactive, fully typed backend whereuseQueryresults update automatically when data changes, making it a solid fit for chat, live scores, or anything realtime. Expo calls the backend gap "the single biggest missing piece in the Expo experience," and this closes it.How Worklets Bundle Mode accidentally fixed the Hermes V1 memory regression. Software Mansion traced the reported memory spikes in Reanimated apps on Hermes V1 to the engine itself: it attached 512 KB of debug metadata to every evaluated worklet, which meant at least 50 MB at app startup and potentially far more (Expensify's bundle holds over 1,000 unique worklets). The Hermes fix ships with React Native 0.87, but Bundle Mode avoids the problem entirely by exposing the whole bytecode bundle via mmap instead of evaluating code strings, and Software Mansion recommends enabling it regardless. Pinning Hermes to 0.15 or the experimental bytecode option for Legacy Eval Mode also work.
How Shopify raised mobile E2E test stability to 98%. Shopify's E2E suite had gotten so flaky (50% stability) it was pulled from PR checks entirely. The fix was rebuilding the framework, not the tests: a strict builder-style API where every step must carry an assertion, and computer vision (PaddleOCR + OpenCV) that finds elements the way a user does instead of crawling the view hierarchy for Test IDs. Escape hatches are prefixed
UNSAFE_to discourage use, every run produces an annotated failure video, and new tests must prove stability across multiple runs before entering blocking CI. Result: 98% stability, and a test grammar simple enough that AI agents write correct tests on the first try.Fable 5 vs GPT-5.6 Sol: $2,000 and 2 billion tokens to one-shot three Expo apps. Rami Maalouf had three AI models each build a calorie tracker, a ChatGPT clone, and a full SwiftUI-to-Expo rewrite (including live activities) without touching the code himself. Fable 5 won on every metric that matters: fewest messages, fewest lines, fastest builds, and best code health scores, though at up to $163/hour it's by far the most expensive. His split: Fable 5 for bigger work like full PRs and app building, GPT-5.6 for well-defined problems and automation, where it grinds relentlessly (including one 13.5-hour validation loop). The SwiftUI rewrite is the standout: a pixel-faithful port with native sliders, bottom sheets, and live activities, one-shot.
Fitting RAG in your pocket. Margelo built a complete Retrieval-Augmented Generation pipeline that runs entirely on-device: import a WhatsApp chat, ask questions in plain language, and get answers from the actual messages, all on a $100 Android phone in airplane mode. The stack combines a 469 MB Qwen2.5-0.5B for generation, MiniLM embeddings, and vector search via
nitro-sqlitewith sqlite-vec compiled in, so KNN runs inside the SQLite file your app already ships. The same machinery then powers an offline photo gallery searchable by text, tap, or camera using CLIP. Full repo included.3 minutes with an agent, 9 seconds on replay. Callstack dug into where AI agent time goes when driving mobile devices with agent-device, their CLI that gives agents eyes and hands on iOS and Android. A routine 9-action QA task took an agent 3m 18s, but replaying the saved script took 8.8 seconds with zero model calls, since most agent time is model inference, not device execution. The v0.20 release adds
--settle(cutting Sonnet-class token usage by 63%), replayable scripts with identity checks that catch UI changes, and Maestro YAML compatibility.Automating mobile QA with cloud agents. Callstack makes the case that in agent-written codebases, clean diffs and green CI aren't enough, since regressions live in the space between code and runtime: permission prompts, keyboard overlaps, deep links landing wrong. Their answer is a bounded "behavior review": a QA agent that verifies only the flow a PR is likely to affect, collects screenshots and logs as evidence, and posts the result back to GitHub. The stack combines Vercel Eve as the agent runtime, agent-device for device control, and CI workflows that boot simulators and handle real-device access via
agent-device proxy.Scanning barcodes in React Native: the complete guide. Marc Rousavy (creator of VisionCamera) published a definitive breakdown of every scanning option in 2026. The short version:
react-native-data-scannerfor one-call scanning with the platform-native UI (no camera permission needed on Android), VisionCamera + barcode plugin for custom in-app scanning, andexpo-camerafor Expo Go. It also covers platform quirks, a full format-support matrix, and a blunt take on when commercial SDKs are actually worth paying for.Detour: deferred deep linking done right in Expo Router. Software Mansion's Detour solves the Installation Gap, where deep link context vanishes when a new user passes through the App Store or Play Store. Unlike attribution SDKs that hand you a raw URL in a detached callback, Detour hooks into Expo Router's
+native-intent.tsxto resolve the original link before the first screen renders, and itsDetourProviderholds the intent in memory until the user clears your auth gate. Matching is deterministic on Android via the Install Referrer API and probabilistic on iOS.Metrognome: an AI agent for measured React Native performance fixes. Uphold introduces an open-source Claude Code plugin that runs an autonomous loop: propose a fix, measure it N times on a live device, keep it only if the gain beats measurement noise, and commit with evidence attached. A 5 ms "win" inside 30 ms of wobble gets reverted, not shipped. Built on Callstack's tooling (agent-device, Metro MCP, RN Best Practices), it also ships GitHub Actions templates for scheduled runs that open PRs only when fixes clear the bar.
A step-by-step guide to super app development with Re.Pack 5. Callstack walks through building the smallest working super-app setup with Module Federation: a HostApp that owns the native shell, and a MiniApp that exposes its root component as a federated module loaded at runtime via
React.lazy(() => import('miniApp/App')). The guide covers the full config for both sides, shared singletons for React and React Native, loading and error states, plus the production caveats: native code must ship in the host binary, and dynamic JS delivery has to respect store policies.
🎥 Videos
💼 Open Roles
Senior React Native Developer at Ruby Labs (Europe, Remote) Build consumer products across health, education, and entertainment at a leading tech company.
Mobile Software Engineer, Lending at Chime (US, Remote) Build user-friendly banking and lending experiences at the fintech serving millions.
Senior Software Engineer, Mobile (Repayment UX) at Affirm (Poland, Remote) Join a fully European Repayment UX team building honest, fee-free credit products.
Senior React Native Developer at SCHUFA (Germany, Remote) Full-stack mobile role at Germany's 95-year-old credit institution ("fintech before fintech existed").
React Native Frontend Engineer at Ornikar (Paris, Remote-friendly) Build the marketplace where 30,000+ driving students book 150,000+ hours monthly.
Senior React Native Developer at Straight Arrow News (US, Remote, $150k–$165k) End-to-end ownership of the mobile codebase, from Expo down to native bridges.
Client Full-Stack Engineer, IM Chat Platform at Binance (APAC) Android-focused role on the chat platform at the world's largest crypto exchange.
Principal Mobile Engineer, Android at Upstart (USA) Senior role at the leading AI lending marketplace reducing the cost of borrowing.
Senior React Native Developer at Pixid (Paris, Hybrid) HR scale-up connecting 222,000+ companies with 12,000+ temp agencies across Europe.
React Native Developer at E-KENT (Paris, Hybrid) Small, product-focused team building an on-demand urban logistics app used daily by field professionals.
React Native Developer at Euronet (Athens, Hybrid) Join the epay wallet team building payment infrastructure used in 160+ countries.
Senior React Native Developer at Wealthsimple (Toronto) Clients & Accounts team at Canada's leading fintech with $125B+ under administration.
Staff React Native Engineer at Doctolib (Paris, Remote) Leadership role transforming the patient app into an AI-powered health companion.
Senior React Native Developer at Affirm (Spain, Remote) Same Repayment UX team, open to Spain-based candidates.

💬 Got questions or want to chat?
DM me on X @adnansahinovich or visit nativeweekly.com for weekly React Native digest.
