Native means Swift for iOS and Kotlin for Android, two codebases with direct access to every platform API. React Native means one TypeScript codebase that renders native views and reaches platform APIs through native modules.
Neither wins every time. Native (Swift on iOS, Kotlin on Android) gives you direct platform APIs and two codebases to maintain. React Native gives you one JavaScript or TypeScript codebase that renders real native views. Most content, commerce and business apps fit React Native. Choose native when the app is built around one platform's newest APIs.
Last updated: November 4, 2026
Native here means Swift for iOS and Kotlin with Jetpack Compose for Android. Facts from Apple, Android, React Native and Expo documentation.
| Factor | React Native | Native (Swift + Kotlin) |
|---|---|---|
| Languages | JavaScript or TypeScript | Swift on Apple platforms. Kotlin on Android, used by over 60% of professional Android developers |
| Codebases | One for iOS and Android | Two, one per platform |
| UI toolkit | React components rendered as native host views | SwiftUI or UIKit on iOS. Jetpack Compose, Android's recommended toolkit, on Android |
| Platform API access | Through Turbo Native Modules and Fabric components written in Swift, Objective-C, Java, Kotlin or C++ | Direct, through the platform SDK |
| Start-up tuning | Hermes compiles JavaScript to bytecode in release builds | Android Baseline Profiles precompile essential code for faster launches. Release builds use R8 |
| IDE | Any editor for JavaScript. Xcode or Android Studio for local native builds, or cloud builds with Expo | Xcode for iOS. Android Studio, the official Android IDE |
| Updates after release | JavaScript and asset changes can go over the air with Expo Update. Native changes need a store release | Every change ships as a store release |
| Sharing code across platforms | Built in: one codebase | Optional: Kotlin Multiplatform shares business logic between Android and iOS |
| Store accounts | Apple Developer ($99 a year) and Google Play ($25 one-time) | Apple Developer ($99 a year) and Google Play ($25 one-time) |
React Native shares one codebase between iOS and Android, and the UI is still native: React primitives render to the platform's own views. The core of a typical app, such as screens, navigation, forms, API calls and state, is written once.
Platform features that React Native does not expose are reachable through native modules. The docs describe them as the way to reuse existing Objective-C, Swift, Java, Kotlin or C++ code from JavaScript. With Expo, Swift and Kotlin modules can sit inside the same project.
It also changes who you need. A team that knows React can build both apps, where fully native needs a Swift developer and a Kotlin developer.
Native fits when the app is tied to a single platform and its newest APIs. Those APIs arrive in the Swift and Kotlin SDKs first. In React Native they reach JavaScript through a native module that you or a library maintainer must write.
It also fits when you want the platform's current UI toolkit with no layer in between: SwiftUI on iOS, and Jetpack Compose on Android, which Google calls its recommended toolkit for native UI.
If you only target Android, a Kotlin app removes the cross-platform layer entirely. Our Kotlin vs React Native comparison goes through that case.
Most apps need sign-in, lists, forms, payments, push notifications and a handful of device features such as camera and location. React Native covers those with native views. The decision rarely turns on speed. It turns on how many platforms you target and how many specialists you can hire.
Test the choice on your hardest screen, in a release build on a real phone. A profile of your own app tells you more than any framework label.
Fastshot builds React Native + Expo apps for iOS and Android, and native Kotlin projects with Jetpack Compose for Android. You describe the app, preview it live, and Fastshot builds the APK, AAB and IPA and publishes to both stores from your own developer accounts. You get the stack that matches the prompt without setting up either toolchain.
React is the library for building user interfaces with components. ReactJS draws them in a browser. React Native brings the same model to mobile and renders each component as a native iOS or Android view.
Yes. The New Architecture became the default in React Native 0.76, Hermes ships bundled with each release, and the Facebook app uses the New Architecture at scale, according to the React Native team.
Parts of it are. The React Native showcase lists Facebook, Instagram and Facebook Marketplace among Meta products that use it, and the React Native team says the New Architecture is used at scale in the Facebook app.
No single number applies to every app. React Native renders native views, and the New Architecture adds synchronous layout reads and the concurrent renderer. Heavy animation, very large lists and cold start are the places to measure, in a release build.
Yes. You can write Turbo Native Modules and Fabric components in Swift, Kotlin, Java, Objective-C or C++. The Expo Modules API lets you write native modules in Swift and Kotlin inside an Expo project.
It solves a different part of the problem. Google officially supports Kotlin Multiplatform for sharing business logic between Android and iOS. Compose Multiplatform from JetBrains can also share UI across Android, iOS, desktop and web.
Not for a typical app. Cloud builds with Expo or Fastshot produce the store files, and you only need the Apple and Google developer accounts. You need native skills when you write custom native modules.
Describe an app and get a React Native project for iOS and Android.
See how a native Kotlin and Jetpack Compose app is generated and published.
The other cross-platform choice, compared on language and rendering.
What building for iPhone involves, from Xcode to the App Store.
AI app builders
Alternatives
Alternatives
Resources
Tell Fastshot what the app does and publish it to the App Store and Google Play.