React Native Roadmap 2026-W33
Week of August 10–16, 2026
Items This Week
| # | Title | Label | Link |
|---|---|---|---|
| 1 | React Native Plain Text — faster low-memory text rendering | 🟦 RN | Read |
| 2 | React Native 0.87 — strict TypeScript API and Swift Package Manager | 🟦 RN | Read |
| 3 | Convex is now a one-command backend for Expo apps | 🟧 EXPO | Read |
| 4 | Connect Expo in the Claude desktop app | 🟧 EXPO | Read |
| 5 | TanStack Table v9 and Next.js 16.3 | ⚛️ REACT | Read |
5-Day Action Plan
🟦 Chunk 1 — Pilot react-native-plain-text in a high-volume list
Goal: Improve scrolling performance and reduce memory pressure for a text-heavy React Native screen without changing the user-facing design.
Scope:
- Add
react-native-plain-textand verify native installation on the supported platforms. - Create a small
PerformanceTextwrapper that exposes only the styles and props used by the target screen. - Migrate one production list or feed screen with at least 100 text rows.
- Add a development-only render counter or benchmark note so the before/after result is repeatable.
Out of scope: A full-app typography migration, rich-text styling, accessibility redesign, and custom native fork.
Dependencies: A text-heavy list screen already exists; native build tooling is available for the target platform.
Acceptance criteria:
- The selected list renders the same copy, links, truncation, and accessibility labels as before.
- Scrolling the migrated screen does not produce visual regressions or native crashes.
- A documented before/after measurement shows no regression in frame rate or memory for the test dataset.
- The wrapper falls back to React Native
Textwhen an unsupported prop is passed.
Estimated effort: M
**Copy/paste this prompt:**
Implement the following React Native chunk for your mobile app:
Goal: Improve scrolling performance and reduce memory pressure for a text-heavy React Native screen without changing the user-facing design.
Files to create or modify:
src/components/PerformanceText.tsx— constrained wrappersrc/screens/<TextHeavyScreen>.tsx— migrate one screenpackage.jsonand native dependency files — add the packagedocs/performance-text.md— record the test method and result
Implementation instructions:
- Install the package using the project package manager and complete the native linking step required by the current React Native version.
- Implement the wrapper with explicit TypeScript props and a documented fallback for unsupported styles.
- Replace only the text nodes in one high-volume list; keep layout, navigation, and data fetching unchanged.
- Run the screen with a representative dataset, compare scrolling and memory behavior, and record the result.
- Run the existing typecheck and platform build before opening the pull request.
Acceptance criteria verification checklist:
- The selected list renders the same copy, links, truncation, and accessibility labels as before.
- Scrolling the migrated screen does not produce visual regressions or native crashes.
- A documented before/after measurement shows no regression in frame rate or memory for the test dataset.
- The wrapper falls back to React Native
Textwhen an unsupported prop is passed.
🟦 Chunk 2 — Adopt React Native 0.87 strict API types in one app package
Goal: Catch incorrect React Native API usage earlier by using the generated strict API types introduced in React Native 0.87, without forcing a whole-repository upgrade.
Scope:
- Upgrade the selected app package to the project-approved React Native 0.87 release.
- Remove a redundant
@types/react-nativedependency if the package still declares it. - Enable strict React Native API types for the package and fix the bounded set of resulting errors.
- Add a CI typecheck command for the package.
Out of scope: A complete monorepo upgrade, Swift Package Manager migration, AGP 9 migration, or broad refactor of unrelated type errors.
Dependencies: The app package can be built against React Native 0.87 and has a reproducible lockfile-based install.
Acceptance criteria:
- The selected package installs cleanly from a fresh checkout.
- The package typecheck passes with strict React Native API types enabled.
- No
@types/react-nativeduplicate declarations remain in the selected package. - A smoke build launches on at least one target platform and the changed public APIs behave as before.
Estimated effort: M
**Copy/paste this prompt:**
Implement the following React Native chunk for your mobile app:
Goal: Catch incorrect React Native API usage earlier by using the generated strict API types introduced in React Native 0.87, without forcing a whole-repository upgrade.
Files to create or modify:
packages/<app>/package.json— React Native and type dependency versionspackages/<app>/tsconfig.json— strict type configurationpackages/<app>/src/**— bounded type fixes.github/workflows/ci.ymlor package scripts — typecheck command
Implementation instructions:
- Confirm the project’s supported React Native 0.87 patch version and update only the selected app package.
- Regenerate the lockfile, remove duplicate React Native type packages, and run the package typecheck.
- Fix only errors caused by strict React Native API declarations; leave unrelated errors as follow-up work.
- Run a platform smoke build and verify navigation, text input, and one native module on a real or virtual device.
Acceptance criteria verification checklist:
- The selected package installs cleanly from a fresh checkout.
- The package typecheck passes with strict React Native API types enabled.
- No
@types/react-nativeduplicate declarations remain in the selected package. - A smoke build launches on at least one target platform and the changed public APIs behave as before.
🟧 Chunk 3 — Add one Convex-backed Expo feature slice
Goal: Give one Expo screen a typed, reactive backend path so a user can create and reload real data without introducing a broad backend rewrite.
Scope:
- Install and configure the project-approved Convex Expo integration.
- Create one typed query and one mutation for a small feature such as notes or tasks.
- Connect one Expo Router screen to loading, success, empty, and error states.
- Document the local environment variables and the reset procedure for the development dataset.
Out of scope: Authentication, production data migration, offline synchronization, file uploads, and converting the rest of the application to Convex.
Dependencies: A Convex deployment or approved development backend is available, and the app already has an Expo Router screen suitable for the slice.
Acceptance criteria:
- A fresh developer can configure the documented environment and start the Expo app.
- The screen loads typed data from the query and creates one item through the mutation.
- Loading, empty, error, and retry states are visible and understandable.
- The feature works after a full reload and does not log unhandled promise or network errors.
Estimated effort: M
**Copy/paste this prompt:**
Implement the following React Native chunk for your mobile app:
Goal: Give one Expo screen a typed, reactive backend path so a user can create and reload real data without introducing a broad backend rewrite.
Files to create or modify:
convex/schema.ts— minimal feature schemaconvex/<feature>.ts— query and mutationapp/<route>.tsx— screen integration.env.exampleanddocs/convex-feature.md— setup instructions
Implementation instructions:
- Install the integration using the project’s Expo-compatible package command and initialize the development deployment.
- Define the smallest schema needed for one feature and add runtime-safe input validation.
- Implement the query and mutation with typed return values and clear error handling.
- Wire the existing route to the backend while preserving the existing design system and navigation.
- Verify the flow in a development build, then document setup and cleanup commands.
Acceptance criteria verification checklist:
- A fresh developer can configure the documented environment and start the Expo app.
- The screen loads typed data from the query and creates one item through the mutation.
- Loading, empty, error, and retry states are visible and understandable.
- The feature works after a full reload and does not log unhandled promise or network errors.
🟧 Chunk 4 — Connect Expo MCP and commit project guidance
Goal: Make the coding assistant use the project’s actual Expo SDK documentation and local development context, reducing incorrect native implementation choices.
Scope:
- Install the approved Expo MCP integration for local development.
- Add or update
AGENTS.md,CLAUDE.md, and.claude/settings.jsonwith the project’s SDK, routing, and validation rules. - Connect one local Expo development server and verify a screenshot or app-state request.
- Document how to start and stop the local MCP workflow.
Out of scope: Autonomous production deployments, App Store or Play Store review replies, and replacing the team’s code review process.
Dependencies: A Claude desktop environment with MCP support and an Expo development build are available to the developer.
Acceptance criteria:
- The documented command starts the Expo development server with MCP enabled.
- The assistant can retrieve the project’s current Expo SDK guidance or a simulator screenshot.
- The committed guidance files contain no secrets and match the current package versions.
- A developer unfamiliar with the setup can reproduce it from the README section.
Estimated effort: S
**Copy/paste this prompt:**
Implement the following React Native chunk for your mobile app:
Goal: Make the coding assistant use the project’s actual Expo SDK documentation and local development context, reducing incorrect native implementation choices.
Files to create or modify:
AGENTS.md— project-wide agent rulesCLAUDE.md— Claude-specific workflow notes.claude/settings.json— local MCP configurationREADME.md— setup and troubleshooting
Implementation instructions:
- Inspect the project’s Expo SDK, router, package manager, and development-build commands.
- Install the Expo MCP package or plugin using the supported project instructions.
- Write concise guidance that points tools to the installed SDK version and requires typecheck/build verification.
- Start Metro with MCP enabled and verify one read-only request such as a screenshot.
- Remove tokens and machine-specific paths before committing the configuration.
Acceptance criteria verification checklist:
- The documented command starts the Expo development server with MCP enabled.
- The assistant can retrieve the project’s current Expo SDK guidance or a simulator screenshot.
- The committed guidance files contain no secrets and match the current package versions.
- A developer unfamiliar with the setup can reproduce it from the README section.
⚛️ Chunk 5 — Migrate one data table to TanStack Table v9
Goal: Ship a leaner, typed table with predictable sorting and pagination while limiting the migration risk to one user-facing data table.
Scope:
- Install the project-approved TanStack Table v9 and TanStack Store packages.
- Create a typed table component with only core rows, sorting, and pagination.
- Persist table state in a small store and render accessible header and pager controls.
- Add a focused test suite for sorting, page boundaries, empty data, and row rendering.
Out of scope: Filtering, grouping, column visibility, server-side pagination, and migrating every table in the application.
Dependencies: One existing table and its data contract are identified; React Native-compatible table primitives or existing layout components are available.
Acceptance criteria:
- The table shows the same records and column labels as the current screen.
- Tapping a sortable header cycles through ascending, descending, and unsorted states.
- Previous and next controls disable correctly at the first and last page.
- The focused tests and TypeScript check pass without console errors.
Estimated effort: M
**Copy/paste this prompt:**
Implement the following React Native chunk for your mobile app:
Goal: Ship a leaner, typed table with predictable sorting and pagination while limiting the migration risk to one user-facing data table.
Files to create or modify:
src/components/DataTable.tsx— typed table UIsrc/stores/tableStore.ts— sorting and pagination statesrc/components/DataTable.test.tsx— behavior testspackage.json— TanStack dependencies and test command
Implementation instructions:
- Define the row type and column configuration for the selected table.
- Install TanStack Table v9 and TanStack Store, then create the minimal store shape.
- Configure only core, sorted, and paginated row models and render the rows with existing UI primitives.
- Add accessible controls for sorting and pagination with empty and boundary states.
- Run the focused tests, typecheck, and a manual device check of the table interaction.
Acceptance criteria verification checklist:
- The table shows the same records and column labels as the current screen.
- Tapping a sortable header cycles through ascending, descending, and unsorted states.
- Previous and next controls disable correctly at the first and last page.
- The focused tests and TypeScript check pass without console errors.