mrkeyoor.com_
Tue 01 Sept 17:39 UTC
Dev Toolsevaluationupdated 26 Aug 2026

react-native review

React Native is a framework for building Android and iOS applications with React and JavaScript while rendering native platform controls. It lets product teams share much of their UI and application logic while still calling Swift, Objective-C, Java, Kotlin, or C++ when the shared layer is not enough.

+59stars / 7d
Verdict

Our React Native checkout installed 1,045 packages, built in 14 seconds, and passed 5,845 of 5,846 Jest tests with 1 skipped. That is strong repository evidence for a large project, and React teams should shortlist it when they can retain native mobile expertise. Choose Expo for the usual new-app path; choose another stack when the product cannot afford platform-specific debugging or frequent native dependency work.

We ran it

Lab card: what happened when we ran react-nativeScreenshot of react-native (reactnative.dev)
Install✓ · 223s1045 packages · 964 MB
Build✓ · 14s
Tests✓ · 112s5845 passed · 0 failed · 1 skipped of 5846 (jest)
Repo7141 files~850,464 lines of source · 57.6 MB · 29 CI workflows

Answers from our run

Does react-native build from source?

Dependencies installed in 223 seconds (1045 packages), and the build succeeded in 14 seconds. We cloned commit d83d106 into a clean Debian container with 3 CPUs and no project-specific setup.

Do react-native's tests pass?

Yes: 5845 of 5846 passed when we ran the project's own test command (jest). Some failures need services or credentials a bare container does not have.

Who should not use react-native?

Teams expecting one codebase to remove native work: the README explicitly points to Native Modules for platform code and separate platform tooling.

What are the alternatives to react-native?

Flutter, Ionic Framework, NativeScript. Our React Native checkout installed 1,045 packages, built in 14 seconds, and passed 5,845 of 5,846 Jest tests with 1 skipped.

Setup3/5Checks pass, but 964 MB and native toolchains are real costs
Docs5/5Clear framework advice, platform guides, APIs, and upgrades
Community5/5126,409 stars and active work through August 26, 2026
Maturity5/5Large passing suite and an established release process

Discussed on

  1. hnReact Native is now open source1,039 points
  2. hnReact Native for OS X637 points
  3. hnReact Native for Ubuntu380 points
  4. hnReact Native and Yoga Both Given MIT Licence by Facebook375 points
  5. hnReact Native Touchbar155 points

Who it’s for

React teams building one product for both Android and iOS.
Mobile teams willing to keep native platform skills for modules, builds, and release work.
Existing native apps adopting React Native screen by screen rather than through a rewrite.
Organizations that want a large library ecosystem and can budget for dependency upgrades.

Who it’s NOT for

Teams expecting one codebase to remove native work: the README explicitly points to Native Modules for platform code and separate platform tooling.
Developers who want the bare framework to supply routing and common native APIs: React Native itself recommends using a framework such as Expo for those pieces.
Projects that cannot absorb regular framework and native dependency upgrades: release 0.87.0 points users to a dedicated Upgrade Helper and separate release discussions.
Apps whose central experience depends on a platform feature with no suitable module and no team able to write one.

Setup reality

Our sandbox installed 1,045 Yarn packages in 223 seconds and used 964 MB on disk. The build succeeded in 14 seconds. Tests succeeded in 112 seconds: Jest reported 5,845 passed, 0 failed, and 1 skipped of 5,846.

That run checked the repository in a Debian Node 22 container. Building an app still requires the platform toolchains described by React Native's setup guide, plus Android or iOS SDK configuration. The README recommends Expo for most new applications because routing, native dependencies, and platform tooling need decisions beyond React itself.

The monorepo had no top-level tests directory and no Dockerfile, yet its configured Jest suite ran successfully. Our run did not produce, sign, install, or exercise an Android or iOS application, so device behavior remains outside this result.

React components render through native platform controls

React Native lets developers describe application interfaces with React while the runtime renders native platform views. The result uses Android and iOS controls rather than placing the whole product inside a browser view. React concepts such as components, hooks, declarative state, and Suspense carry over, and Fast Refresh applies many JavaScript changes without a complete native rebuild.

Shared code still has a boundary. Platform behavior, native SDKs, build systems, permissions, signing, and store delivery remain Android and iOS concerns. When JavaScript cannot reach a required capability, Native Modules connect it to Swift, Objective-C, Java, Kotlin, or C++. That escape hatch is a strength for a staffed mobile team and a warning for a web team expecting native work to disappear.

The project also supports incremental adoption. An existing native application can embed React Native for selected screens instead of committing to an immediate rewrite. This is often the more credible path for a mature app because release risk stays contained. The cost is a mixed architecture that requires engineers to understand the boundary and debug both sides.

What happened when we ran it

Our sandbox cloned commit d83d106 into an unprivileged Debian container with 3 CPUs and 8 GB of RAM. The 57.6 MB checkout contained 7,141 files and about 850,464 lines of source. Yarn installation succeeded in 223 seconds, adding 1,045 packages and occupying 964 MB on disk.

The configured build succeeded in 14 seconds. Tests then completed successfully in 112 seconds: Jest reported 5,845 passed, 0 failed, and 1 skipped out of 5,846. This is the cleanest measured result in this review set, and it came from the exact commit named above rather than a release badge.

The repository has 29 CI workflow files and uses monorepo workspaces. Our scan found no Dockerfile and no top-level tests directory, yet the test command found and ran the suite through workspace configuration. We did not build an Android APK, compile an iOS application, run an emulator, or measure interface performance. Passing JavaScript tests does not answer those separate questions.

Expo is the default recommendation for a new app

React Native's own README tells most developers to start through a framework. It names Expo as the recommended path and points to its file-based routing, standard native-module library, and platform tooling. That guidance matters because a bare renderer does not settle navigation, updates, permissions, dependency linking, or the many choices a production mobile app accumulates.

Starting without a framework remains supported. It makes sense when Expo's abstractions conflict with an existing native application, a special build pipeline, or a platform capability the team already owns. The price is more direct responsibility for native project files and dependency integration. A team should choose this route because it needs the control, not because fewer abstractions sound cleaner on day one.

The 964 MB dependency result also belongs in local planning. It does not include every Android SDK, emulator image, Xcode component, or application dependency a real product may add. CI caches, developer laptop storage, and fresh onboarding all feel that weight. The 223-second install was acceptable in our container, but it was not a complete mobile environment setup.

Native modules keep the ceiling high and the debugging split

React Native primitives cover common mobile UI and accessibility behavior. The surrounding package ecosystem extends that base, while Native Modules provide direct access when no suitable package exists. Teams can keep shared product logic in JavaScript and write a narrow platform bridge for specialized work such as an SDK supplied only for iOS or Android.

Every native dependency adds another compatibility axis. A library may need changes when React Native, Gradle, Android, Xcode, CocoaPods, or a platform SDK moves. Bugs can cross the JavaScript and native boundary, which makes a browser-only debugging habit insufficient. Keep at least one engineer comfortable opening both native projects and reading build logs from each platform.

Release 0.87.0 was published on August 11, 2026. Its GitHub page points users to the Upgrade Helper, a full changelog, and a separate release issue tracker. That structure is useful because upgrades often involve generated native-project changes, not only a package version. Treat each framework jump as a mobile release with device coverage rather than a routine JavaScript bump.

Current activity and 5,845 passing tests support adoption

GitHub recorded the last push on August 26, 2026, with 126,409 stars and 1,094 open issues and pull requests combined. The large queue is unsurprising for a framework spanning two major operating systems, native languages, JavaScript, C++, and many downstream integrations. It is evidence of support demand and ongoing work, not a count of confirmed defects.

The repository evidence is convincing: a 14-second build and 5,845 passing tests from our sandbox give contributors a much better starting signal than badges alone. Product evidence still has to come from a representative app on real devices. Test startup, navigation, accessibility, memory, offline behavior, upgrades, and the native modules your release actually depends on.

React Native is an easy recommendation for a React-heavy organization that treats mobile as its own engineering discipline. It is a poor promise for management that expects identical behavior everywhere from one JavaScript team. The framework shares a great deal of code, while the remaining native work is precisely the part that needs experienced ownership.

Alternatives

ProjectWhat it isPick it when
Flutter gh↗Google's cross-platform UI toolkit built around Dart and its own rendering stack.pick this instead when a controlled cross-platform widget system matters more than React and native UI primitives.
Ionic FrameworkA mobile UI toolkit centered on web technologies and hybrid application shells.pick this instead when your team wants browser-style UI reuse and the app fits a web-based runtime.
NativeScriptA JavaScript and TypeScript framework that exposes native platform APIs directly.pick this instead when direct native API access is the priority and React compatibility is optional.

What people are saying

  1. [velocity-scout] react/react-native

Sources

  1. React Native repository and README
  2. React Native 0.87.0 release
  3. React Native environment setup
  4. React Native architecture overview

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →