Guide

Choose Between Native iOS and React Native

By Spencer Hill, Founder · Last updated: May 24, 2026

What you'll learn

This guide gives you a decision tree, not a manifesto. We'll walk through five criteria that actually predict success — UI fidelity, team composition, performance ceilings, native API surface, and distribution strategy — score them against your specific situation, and end with a recommendation matrix. By the end you'll have a defensible answer for engineering leadership and the receipts to back it up.

Prerequisites

  • A draft product roadmap covering the next 4 quarters
  • Current team headcount by skillset (iOS, React/TS, full-stack)
  • A list of platform features the product depends on
  • Clarity on whether Android is in scope now, later, or never

Steps

  1. 1

    Score platform-specific UI fidelity requirements

    Inventory the UI surfaces that demand iOS-native feel: complex gestures, large-title navigation, share sheets, custom transitions, system fonts and dynamic type. Native iOS wins on polish; React Native is acceptable when 90% of screens are list-form-detail with conventional layouts.

  2. 2

    Audit your team composition

    Count Swift/SwiftUI engineers vs React/TypeScript engineers on hand for the next 18 months. A team with deep React expertise and no iOS hire is a stronger React Native signal than any technical criterion. Hiring senior Swift engineers in 2026 is materially harder than hiring senior React engineers.

  3. 3

    Set the performance ceiling

    If you ship 60fps Metal-rendered visuals, real-time audio/video processing, ARKit, on-device ML inference, or sub-100ms interaction budgets, go native. React Native's bridge (or the New Architecture's JSI) is fine for typical apps but adds tax on hot UI paths and animation-heavy screens.

  4. 4

    Map required native API access

    List every iOS API you'll touch: HealthKit, CallKit, WidgetKit, App Intents, Live Activities, StoreKit 2, PassKit, Push, CoreBluetooth, CarPlay. Each one in React Native means either a maintained community module, a paid module, or writing a native module yourself. Three or more 'write your own' items tips toward Swift.

  5. 5

    Model distribution and release cadence

    If Android is also in scope and the product is broadly cross-platform, React Native earns its keep by collapsing two codebases into one. If iOS is the strategic platform for the next 24 months and Android is best-effort or never, the cross-platform argument evaporates.

  6. 6

    Stress-test with the actual product roadmap

    Walk the next four quarters of planned features through both stacks. Where does each break down? A roadmap full of standard CRUD plus push and payments fits both. A roadmap full of camera pipelines, AR, or background processing pushes hard toward native.

  7. 7

    Apply the recommendation matrix and commit

    Score each criterion 1-5 and apply the matrix below. Pick a stack and stop relitigating. The cost of switching frameworks mid-build is 3-6 months of wasted runway — far higher than the cost of being slightly suboptimal in your initial pick.

Recommendation matrix

CriterionNative iOS (Swift)React Native
UI fidelity / native feelBest-in-classGood, with effort
Team is React-heavyHigh hiring costReuses existing talent
Heavy graphics / AR / on-device MLNative ceilingBridge tax, limits
Many iOS-only APIsFirst-party accessModule-by-module risk
Android in scope soonDoubles costOne codebase
Tight time-to-market, standard UISlowerFastest path

Default recommendation: if iOS is your strategic platform, you have any native engineers, and your roadmap touches more than two of: AR, HealthKit, Widgets, Live Activities, complex animations, or background processing — ship Swift/SwiftUI. Otherwise, if Android is in scope and the UI is conventional, React Native (with the New Architecture) is the rational choice.

Common pitfalls

  • Picking React Native for "hiring," then never shipping Android. You paid the cross-platform tax for a benefit you never collected.
  • Choosing native "for performance" on a CRUD app. If your hottest path is a TableView, you don't have a performance problem to solve.
  • Underestimating native module work. Every unmaintained community module is a future migration. Audit the npm dependency graph before committing to React Native.
  • Believing "we'll rewrite later." Rewrites get deprioritized indefinitely. Pick the stack you'd be happy on in three years.

Next steps

Whichever way the matrix points, we build both: