In the ever-evolving software development landscape, React Native has emerged as a game-changer, empowering developers to build high-quality applications across different platforms. The ‘State of React Native 2023’ survey by Bartłomiej Bukowski, a software engineer at Software Mansion, provides invaluable insights into this dynamic ecosystem, capturing developers' collective experiences and perspectives worldwide.

This article presents our interpretation and viewpoint on the ‘State of React Native 2023’ survey results. We believe that our perspective can provide a fresh lens through which to view these findings, discover new technologies to try out in the React-Native and Expo ecosystem or gain insight into where the ecosystem is going.

See State of React-Native 2023 here: https://results.stateofreactnative.com/

Looking for help with your React Native project? Book a free 30-minute consultation here.

Developer Background

View the results here.

a screenshot of the "State of React Native 2023" survey

Before React Native

View the results here.

The majority of developers come to the React Native ecosystem from the React web realm. This is to be expected as the main development library (React) remains the same.

Next in line are Front-end and full-stack developers. We believe the driving decision behind this is to add the mobile platform to their application, and React-Native with Expo remains a solid choice in doing so.

We can see less conversion from native mobile applications. Our explanation for this is that companies that use native-level development probably already have the resources to support multiple individual platform development and don’t need the cross-platform capabilities that React Native and Expo offers.

Industry Sector

View the results here.

Most developers working in React Native are currently in the finance, education, and entertainment sectors.

What Mobile OS versions do you target?

View the results here.

a screenshot of the "State of React Native 2023" survey

The majority of the projects support "reasonably current versions (iOS 15+, Android 12+)," which strikes a good balance between the resources needed to support more versions and the ability to support a larger number of users.

Target Platforms

View the results here.

The majority uses React Native to build mobile applications. There are currently fewer developers focusing on multi-platform development, including Web. But with the new features coming up from the Expo team, like Server-Side components, we strongly believe that this will change in the immediate future.

Number of released apps

View the results here.

A significant majority of developers have released between 2 and 5 apps, indicating a high level of engagement and productivity within the community. The fact that 162 developers have released more than ten apps is a testament to the scalability and versatility of React Native.

Team size

View the results here.

As we can see, most developers are part of small teams or even solo developers. As we pointed out earlier, the cross-platform nature of React-Native and Expo makes it a perfect fit for small teams and startups that cannot afford dedicated roles to Android, iOS, and Web individually to build a single app.

How do you use React Native?

View the results here.

The fact that the majority of respondents are using React Native professionally is a strong endorsement of the framework’s capabilities. They trust and rely on React Native for their professional needs, which speaks volumes about its robustness, reliability, and efficiency.

Top React Native app user count

View the results here.

The app user count shows a healthy distribution across different scales, from individual developers to large-scale applications with over a million users. It’s a positive indicator of the versatility and scalability of React Native.

State Management

View the results here.

The most-used state management tools remain:

  • React Hooks + React State
  • Redux + Redux Toolkit
  • Tanstack Query (React Query)

Zustand and the newly-entered XState are gaining interest from the community, though. 

XState uses event-driven programming, state machines, state charts, and the actor model to handle complex logic in predictable, robust, and visual ways.

Data Fetching

View the results here.

Regarding data fetching, the dominant fetchers remain the Fetch API and Axios. 

Nevertheless, there is a growing interest in tRPC, a full-stack solution that allows the creation of API endpoints and clients that share fully typed models with Typescript.

Navigation

View the results here.

While the undisputed champion remains React Navigation, a proven over-they-years library and navigator for React Native applications, Expo Router is the new kid in town. 

Powered by React Navigation, Expo Router comes with a ton of features like file-based routing, automatic deep links, and more, and is here to bridge the gap between native and web platforms in a single application.
We expect it to dominate the ecosystem in the upcoming months.

Styling

View the results here.

React-Native’s StyleSheet API, inline-styles, and styled-components remain the preferred choices of developers for styling their applications.

But new styling methods and libraries are attracting the interest of developers, like

  • Tamagui
  • NativeWind
  • React-native-unistyles
  • Restyle

Tamagui is a styling system accompanied by a components library with an optimised compiler for performance. NativeWind uses Tailwind CSS as a scripting language to create a universal style system for React Native. Unistyles is a superset of StyleSheet, similar to how TypeScript is a superset of JavaScript. Restyle is Shopify’s style system for react-native.

Read our Guide to Tamagui.

UI Components Library

View the results here.

a screenshot of the "State of React Native 2023" survey

Callstack’s React-Native-Paper remained the top choice for components library throughout 2023, with React Native Elements and NativeBase closely following and the newly appeared Tamagui following but making a significant appearance.

Tamagui held the majority of interest from developers wanting to try it.

Graphics and Animations

View the results here.


Reanimated remained the choice of developers throughout 2023, with React Native’s Animation API closely following.

Lottie usage also increased during 2023.

Reanimated continues to hold the interest of new developers, but React Native Skia and the newly appeared Rive are also gathering interest in animation solutions.

Read "5 practical animations that improve UX" here.

Debugging and Profiling

View the results here.

Debugging Tools

View the results here.

Traditional console.log remains the debugging tool of choice for developers whenever possible. The second choices are Flipper and Chrome Dev Tools (remote JS debugging), followed by Expo’s Chrome Dev Tools and native tools (XCode + Android Studio).

Performance Profiling

View the results here.

On the Performance and Profiling Tools front, the top choice for profile is Flipper, followed by native tools (XCode, Android Studio).

In general, it seems that debugging remains a pain point for React Native developers, but this is an area that is actively being pushed forward. Meta has announced that they will be replacing Flipper with Chrome Dev Tools and joined forces with Expo towards this development.

React Native Features

View the results here.

As expected, the community is embracing the New Architecture, with great interest in the new Bridgless Mode, Turbo Native Modules, and Fabric.

Turbo Native Modules is the new system for writing native modules, while Fabric is the new renderer. Bridgeless Mode offers support for legacy native modules through an interoperability layer and optimises component rendering with Static ViewConfigs

The new Hermes engine is now the de-facto engine, and Expo Modules has a wide acceptance as a tool for writing custom modules.

Code Sharing

View the results here.

When developers want to share code between their mobile and web applications, they use React Native for Web, which allows React Native components to render on browsers.

Still, a significant number of those choose to go for independent projects (probably different mobile and web codebases).

One step further is using common business logic and then using platform-specific components to integrate the UI. 

Still, there is a considerable amount of developers who choose to run their native app as a wrapper web view of a mobile-optimized web application.

And there is the choice of Solito, where you have a monorepo with shared business logic and UI components (mostly based on react-native-web) and then using Solito router, you bind these to your individual react-native and web applications.

With Expo's efforts to bridge the gap between web and React Native platforms, we believe that we will see more single-codebase + multi-platform projects.

Read: "Building an offline-first app with Expo, Supabase and WatermelonDB".

OTA updates

View the results here.

Developers have now migrated to EAS Updates, with a great number of them still relying on CodePush as an alternative to deliver Over-the-Air updates.

EAS updates have received some upgraded features, like partial rollouts, so we believe interest will just keep rising.

Other App Aspects

View the results here.

Analytics

View the results here.

The dominant solution here is Firebase Analytics, used by the community, used by 78% of the respondents, leaving other solutions sharing the rest 22%.

Crash Reports

View the results here.

Sentry has the lead here. It is a mature, proven solution for crash reports that support React Native and Web.

Firebase Crashlytics is used by a significant number of developers from the community due (we assume) to belonging to the same family with popular analytics.

Data Visualization

View the results here.

It seems that the majority of developers prefer to rely on react-native-svg library and then probably build their custom charts per case. Solutions like React Native Chart Kit, Victory Native, and Recharts follow with significantly less percentage of use.

Storage

View the results here.

React Native Async Storage is the preferred option for local storage, but react-native-mmkv also has a great share of the developer’s preference.

Testing

View the results here.

Jest is used by the majority of the community, but the React Native Testing Library also has a great share of the community.

Local First App Architecture

View the results here.

Although half of the respondents were unaware of the Local First App Architecture (and/or Offline-first App Architecture), the rest of them either knew it or expressed interest in learning more about it. 

Local-first architecture is a state management system where the app saves and interacts with its state locally and then replicates its data with the backend in the background.

Deployment

View the results here.

A large portion of the community uses native tooling (XCode, Android Studio) to compile and deploy their apps in production.

But we see a significant interest in using EAS Build and EAS Submit to automate the build and deployment of their applications, as these streamline the process and leave the developer to focus on building features.

React Native Tools

View the results here.

Expo is the leader in this category, with a plethora of React Native tools like Expo CLI, Expo Go, Expo Snack, Config Plugins, and  Custom Development Client. They make the life of the developer easier and more efficient. It is no surprise that they enjoy the preferences of many developers.

Javascript/Typescript Balance

View the results here.

https://results.stateofreactnative.com/tools/tools_js_ts

Here, the dominance of pure Typescript projects (100%) is clear. Since Expo and React Native fully support Typescript, developers embrace this language's benefits.

Package Managers

View the results here.

https://results.stateofreactnative.com/tools/tools_package_managers

Here, the dominant package managers are the classics, yarn (v1) and npm. Most probably because, in the past, there were issues or difficulties using Expo with pnpm. But we are sure this will change in the future.

Expo now also supports the Bun package manager. It remains to be seen if it gains popularity.

Starter Templates

View the results here.

https://results.stateofreactnative.com/tools/tools_package_managers

The create-expo-app and the traditional react-native init remain the dominant tools for kick-starting a project. That is no surprise, as they are the official and recommended tools by Expo and React Native.

React Native Alternatives

View the results here.

https://results.stateofreactnative.com/react-native-alternatives/

a screenshot of the "State of React Native 2023" survey

For alternative solutions to building cross-platform mobile applications, traditional web-view-based solutions like Ionic and Cordova remain on top but losing popularity.

Flutter remains the all-time competitor, but new solutions gaining interest, like SwiftUI and Kotlin Multiplatform Mobile

Resources

View the results here.

https://results.stateofreactnative.com/resources/

Official React Native and Expo Documentation are the most popular sources of knowledge for developers, as they also include tutorials.

Opinions

View the results here.

https://results.stateofreactnative.com/opinions/

The main pain points for React Native are the Debugging experience, Unmaintained packages,  and dealing with Native code. (Without being the only ones). But as we can see, efforts have been put towards improving the developer experience.

Issues like Keyboard handling and E2E Testing are issues that traditionally also challenge the native platform developers, and they are not inherent to React Native.

The community, though, keeps thinking that React Native is on the right track and keeps improving the developer experience. Features like OTA updates and cross-platform development with Web are unique features that you can’t find in native development.

Tip: On E3E testing challenges, we strongly advise Moropo.

Conclusion

As we conclude our reflections on the latest State of React Native report, we can’t help but feel a sense of exhilaration. The future of React Native is not just promising; it’s pulsating with potential. Each update and enhancement brings us closer to a more efficient and effective cross-platform framework. The future of React Native is not just something we look forward to; it’s something we can’t wait to be a part of.

It's time to move your project to React Native. We can help! Book a call today.
More insights