whatisgithub

What is react-native-screens?

software-mansion/react-native-screens — explained in plain English

Analysis updated 2026-07-03

3,660TypeScriptAudience · developerComplexity · 2/5LicenseSetup · easy

In one sentence

React Native Screens makes mobile app navigation feel smoother by handing screen transitions and memory management to the phone's native OS instead of running them in JavaScript.

Mindmap

mindmap
  root((rn-screens))
    How it works
      Native OS screen management
      Low-level building block
      React Navigation integration
    Platform Support
      iOS Android
      tvOS visionOS
      Windows Web
    Features
      Native transitions
      Off-screen freeze
    Tech Stack
      TypeScript
      React Native
      Objective-C Swift Java
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Speed up tab and stack navigation in a React Navigation app by delegating screen transitions to iOS and Android native APIs.

USE CASE 2

Reduce memory use in a large React Native app by freezing off-screen tab content so it pauses instead of re-rendering in the background.

USE CASE 3

Add Windows and visionOS navigation support to a cross-platform React Native app using a single shared navigation library.

USE CASE 4

Fix jank in navigation animations on lower-end Android devices by switching from JavaScript-driven views to native screen components.

What is it built with?

TypeScriptReact NativeObjective-CJavaSwift

How does it compare?

software-mansion/react-native-screenssamdenty/gqlesspagescms/pagescms
Stars3,6603,6623,665
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyeasymoderatemoderate
Complexity2/53/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Android requires one code line in MainActivity, iOS and modern Android otherwise auto-link on install. v4.25+ dropped the legacy architecture.

MIT license, use freely for any purpose including commercial, keep the copyright notice.

So what is it?

React Native Screens is a library that helps mobile app developers build smoother navigation in React Native apps by using the phone's own built-in screen management instead of a custom JavaScript version. When a user taps to a new page in an app, the transition and the memory handling can be managed by the operating system directly, which tends to feel more natural and perform better than a purely JavaScript-driven approach. This library is not something you use on its own to build navigation from scratch. It works as a low-level building block that popular navigation tools, most notably the React Navigation library, rely on underneath. If you are a developer using React Navigation, adding React Native Screens as a dependency is usually all you need to do, and the navigation tool will automatically start using native screen management instead of plain views. The library supports iOS, Android, tvOS, visionOS, Windows, and Web. Installation on iOS and modern versions of Android and Windows is handled automatically when you set up the project. Android requires one small code addition to a specific file to avoid crashes when the operating system restarts the app, for example after a screen rotation or a phone call. One additional feature the library includes is experimental support for freezing off-screen content. When a user navigates away from a page, that page's content can be paused rather than re-rendered in the background, which saves processing work without losing the page's current state. Developers opt into this separately since it is still experimental. The library is maintained by Software Mansion, a development studio, and it tracks closely with the React Native release cycle. Version 4.25 and later dropped support for the older rendering system, so developers still on the legacy architecture need to stay on an older version.

Copy-paste prompts

Prompt 1
How do I add react-native-screens to a React Navigation 7 project on Android? What is the one line I need to add to MainActivity to prevent crashes on app restart?
Prompt 2
I am using React Native Screens with React Navigation. How do I enable the experimental enableFreeze option to pause off-screen screens and reduce background re-renders?
Prompt 3
My React Native app is still on the legacy architecture. Which version of react-native-screens should I use, and how do I install it without breaking navigation?
Prompt 4
How does react-native-screens improve performance compared to using plain React Native View components for navigation? Explain in simple terms what the OS is doing differently.

Frequently asked questions

What is react-native-screens?

React Native Screens makes mobile app navigation feel smoother by handing screen transitions and memory management to the phone's native OS instead of running them in JavaScript.

What language is react-native-screens written in?

Mainly TypeScript. The stack also includes TypeScript, React Native, Objective-C.

What license does react-native-screens use?

MIT license, use freely for any purpose including commercial, keep the copyright notice.

How hard is react-native-screens to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is react-native-screens for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.