Blog

React Native Version History: Every Major Change from 0.60 to 0.79

By Ahsan Hafeez · 2026-11-04

React Native has evolved dramatically since 2019. This guide covers every major release from 0.60 to 0.79, highlighting what was added, what was removed, and what broke. Bookmark this — you'll need it during upgrades.

Quick Reference Table

VersionReleaseHeadline FeatureBreaking?
0.60Jul 2019Autolinking, AndroidXYes
0.61Sep 2019Fast RefreshNo
0.62Mar 2020Flipper by defaultNo
0.63Jul 2020LogBox, PressableNo
0.64Mar 2021Hermes on iOSNo
0.65Aug 2021Hermes 0.8, accessibilityNo
0.66Oct 2021Bluetooth permissions, Xcode 13Minor
0.67Jan 2022New Hermes, React 17Minor
0.68Mar 2022New Architecture opt-inNo
0.69Jun 2022React 18, bundled HermesMinor
0.70Sep 2022Hermes default engineYes
0.71Jan 2023TypeScript by default, Flexbox gapMinor
0.72Jun 2023Metro symlinks, Kotlin by defaultMinor
0.73Dec 2023New debugger, Kotlin DSLYes
0.74Apr 2024Yoga 3.0, Bridgeless modeYes
0.75Aug 2024Auto New Arch, Expo supportYes
0.76Oct 2024New Architecture defaultYes
0.77Feb 2025Community CLI extractionYes
0.78Apr 2025iOS 16+, Android API 24+Yes
0.79Jul 2025React 19, Swift templatesYes

0.60 — Autolinking & AndroidX (July 2019)

Added:

  • Autolinking — native dependencies link automatically, no more react-native link
  • AndroidX migration — moved from Android Support Library to AndroidX
  • CocoaPods by default on iOS — replaced manual Xcode project linking

Removed:

  • Manual linking workflow (react-native link deprecated)
  • Android Support Library references

Breaking: Every Android library needed AndroidX migration. The jetifier tool handled most cases automatically.

0.61 — Fast Refresh (September 2019)

Added:

  • Fast Refresh — unified hot reloading that preserves component state, replacing both "Hot Reloading" and "Live Reloading"
  • Improved error overlay with better stack traces

Removed:

  • Old Hot Reloading and Live Reloading toggles (merged into Fast Refresh)

0.62 — Flipper Debugging (March 2020)

Added:

  • Flipper integrated as the default debugging tool
  • LogBox (behind a flag) — modern replacement for YellowBox and RedBox
  • Appearance API dark mode support improvements

Removed:

  • Chrome DevTools recommended less (Flipper preferred)

0.63 — LogBox & Pressable (July 2020)

Added:

  • LogBox — new warning/error UI, enabled by default
  • Pressable component — replaces TouchableOpacity, TouchableHighlight etc.
  • PlatformColor for native dynamic colors
  • DynamicColorIOS for iOS semantic colors

Removed:

  • YellowBox (replaced by LogBox)

Deprecated:

  • TouchableOpacity, TouchableHighlight, TouchableWithoutFeedback, TouchableNativeFeedback — all replaced by Pressable (still work but no longer recommended)

0.64 — Hermes on iOS (March 2021)

Added:

  • Hermes engine support on iOS — previously Android-only
  • Hermes brings faster startup times and lower memory usage
  • React 17 compatibility
  • Inline requires enabled by default in new projects

Removed:

  • Nothing major

0.65 — Hermes 0.8 & Accessibility (August 2021)

Added:

  • Hermes 0.8 with Intl support, Proxy, and WeakRef
  • Accessibility improvements: accessibilityState, accessibilityValue enhancements
  • onPressIn / onPressOut on more components

Removed:

  • Legacy accessibilityStates (use accessibilityState object instead)

0.66 — Xcode 13 & New Permissions (October 2021)

Added:

  • Xcode 13 support
  • Android 12 Bluetooth permission support
  • Hermes upgraded with better performance

Breaking (minor):

  • Xcode 12 no longer supported
  • Android projects may need new Bluetooth permissions in manifest

0.67 — React 17 Default (January 2022)

Added:

  • React 17 as the default React version
  • New Hermes version bundled
  • Improved Android Gradle Plugin support

Removed:

  • Official support for Xcode 11

0.68 — New Architecture Opt-In (March 2022)

Added:

  • New Architecture available behind a flag — Fabric (new rendering system) and TurboModules (new native module system)
  • To enable: set newArchEnabled=true in gradle.properties (Android) or RCT_NEW_ARCH_ENABLED=1 pod install (iOS)
  • React 18 compatibility preparations

Removed:

  • Nothing — this was purely additive

This was the first version where you could try the New Architecture, but it was experimental and most third-party libraries didn't support it yet.

0.69 — React 18 & Bundled Hermes (June 2022)

Added:

  • React 18 with concurrent features available (behind New Architecture flag)
  • Bundled Hermes — Hermes version now matches and ships with React Native (no more separate version tracking)
  • react-native init template uses React 18 by default

Breaking (minor):

  • React 18's automatic batching may change when re-renders happen
  • startTransition and useDeferredValue available but only with New Arch

0.70 — Hermes Default Engine (September 2022)

Added:

  • Hermes is the default JS engine for all new projects
  • Codegen for New Architecture — auto-generates native code from TypeScript specs
  • Unified react-native.config.js for CLI configuration
  • CMake builds for Android native modules (New Arch)

Removed:

  • JavaScriptCore (JSC) no longer the default (still available as fallback)

Breaking: Existing projects upgrading may see behavioral differences with Hermes (e.g., typeof handling, Date quirks). Most apps don't notice.

0.71 — TypeScript by Default (January 2023)

Added:

  • TypeScript template is the default — npx react-native init creates a TS project
  • Flexbox gap property support — gap, rowGap, columnGap work like CSS
  • DevMenu redesign
  • Web-inspired props: aria-*, id, tabIndex

Removed:

  • Flow template as default (Flow still works, just not the default)
  • propTypes in core components (runtime prop checking removed)

Deprecated:

  • accessibilityRole → role
  • accessibilityLabel → aria-label
  • accessibilityState.selected → aria-selected

0.72 — Metro Symlinks & Kotlin (June 2023)

Added:

  • Metro symlink support — monorepos work without workarounds
  • Kotlin as the default language for Android templates (replacing Java)
  • Community CLI start command improvements
  • Better New Architecture error messages

Removed:

  • Java as the default Android template language

Breaking (minor):

  • Metro config format updated — older metro.config.js may need adjustments

0.73 — New Debugger & Kotlin DSL (December 2023)

Added:

  • New JavaScript debugger — Chrome DevTools-based, replaces Flipper for JS debugging
  • Kotlin DSL for Gradle (build.gradle.kts by default)
  • Android 14 support
  • Java 17 required
  • deprecated-react-native-prop-types package for migration

Removed:

  • Flipper integration from default template
  • Java 11 support (Java 17 minimum)
  • Legacy react-native-community/cli debug command

Breaking:

  • Flipper removal means existing debug workflows need updating
  • Java 17 requirement may break older CI setups
  • Kotlin DSL syntax differences from Groovy DSL

0.74 — Yoga 3.0 & Bridgeless Mode (April 2024)

Added:

  • Yoga 3.0 — updated layout engine with better CSS compliance (position: static, align-content: space-evenly)
  • Bridgeless mode — works without the legacy bridge (opt-in, used with New Arch)
  • onLayout batching improvements
  • Yarn 3 workspace support improvements

Removed:

  • Several deprecated props (accessible → aria-hidden, old event handlers)
  • PropTypes completely removed from core

Breaking:

  • Yoga 3.0 may change layouts slightly due to improved spec compliance — test your layouts
  • Minimum iOS deployment target raised to 13.4
  • Android minimum SDK raised to 23

0.75 — Automatic New Architecture (August 2024)

Added:

  • New Architecture auto-enabled for new projects (newArchEnabled=true by default in template)
  • Expo modules support in bare React Native projects
  • Stabilized useAnimatedProps interop
  • Improved TypeScript types for native components
  • react-native/community-cli-plugin — CLI functionality becomes a plugin

Removed:

  • Default newArchEnabled=false — flipped to true
  • Several legacy modules moved to community packages

Breaking:

  • Libraries not supporting New Arch will show deprecation warnings
  • Some community libraries needed updates for TurboModules compatibility

0.76 — New Architecture Default (October 2024)

Added:

  • New Architecture is the default for ALL projects — both new and upgrading
  • React Native DevTools — fully integrated debugging experience
  • Faster app startup via optimized module loading
  • boxShadow style property support
  • Better CSS compliance across layout properties

Removed:

  • Old Architecture support deprecated (still works but unsupported)
  • Legacy NativeModules API deprecated (use TurboModules)
  • Legacy UIManager commands deprecated (use Fabric commands)

Breaking:

  • Libraries using old bridge patterns need migration
  • requireNativeComponent usage patterns changed
  • Custom native modules must migrate to TurboModules spec

This is the release where the multi-year New Architecture migration became real for every project.

0.77 — Community CLI Extraction (February 2025)

Added:

  • CLI fully extracted to @react-native-community/cli — React Native core no longer bundles it
  • Improved build speed on Android (parallel task execution)
  • New react-native/virtualized-lists package
  • cursor style property for web-like pointer support

Removed:

  • Built-in CLI commands (moved to community package)
  • Several internal APIs made private

Breaking:

  • npx react-native now requires @react-native-community/cli installed
  • VirtualizedList import path changed to new package
  • package.json needs @react-native-community/cli as an explicit dependency

0.78 — iOS 16+ & Android 24+ (April 2025)

Added:

  • Improved Fabric performance on Android
  • pointerEvents CSS spec compliance
  • Better error boundaries with component stack traces
  • Improved tree-shaking for unused native modules

Removed:

  • iOS 13, 14, 15 support dropped (minimum iOS 16)
  • Android API 23 support dropped (minimum API 24 / Android 7.0)
  • AsyncStorage removed from core (use @react-native-async-storage/async-storage)
  • NetInfo removed from core (use @react-native-community/netinfo)

Breaking:

  • Platform version requirements may drop older device support
  • Core module removals require adding community packages

0.79 — React 19 & Swift Templates (July 2025)

Added:

  • React 19 — Actions, useOptimistic, useFormStatus, use() hook, improved Suspense
  • Swift as default iOS language in templates (replacing Objective-C)
  • Server Components preparation APIs
  • Activity API for concurrent rendering priorities
  • Improved startup performance with lazy native module loading

Removed:

  • Objective-C as default template language (still works, not default)
  • Several deprecated lifecycle methods removed from core components
  • componentWillMount, componentWillReceiveProps, componentWillUpdate — removed entirely (use UNSAFE_ prefix or migrate)

Breaking:

  • React 19 breaking changes apply (removed deprecated APIs, stricter ref handling)
  • Swift templates mean new native module examples are in Swift
  • Older lifecycle methods without UNSAFE_ prefix will crash

Upgrade Tips

  1. Always read the changelog for each version you're skipping
  2. Use the upgrade helper: npx react-native upgrade or check react-native-community/upgrade-helper
  3. Upgrade one version at a time for major jumps — don't skip from 0.68 to 0.76
  4. Test on real devices — emulators miss performance regressions and permission issues
  5. Check third-party library compatibility before upgrading — especially for New Architecture
  6. Run your full test suite after each version bump

Key Migration Paths

Old Architecture → New Architecture

If you're on 0.68-0.75 and haven't adopted New Arch yet:

  1. Upgrade to 0.76+ where it's default
  2. Run npx react-native-new-architecture compatibility check
  3. Migrate custom native modules to TurboModules spec
  4. Update requireNativeComponent calls to Fabric
  5. Test thoroughly — layout changes from Yoga updates can be subtle

JavaScript → TypeScript

If you're on 0.70 or earlier with a JavaScript project:

  1. Upgrade to 0.71+ where TS is default
  2. Rename files .js → .tsx / .ts incrementally
  3. Add tsconfig.json (template included in 0.71+)
  4. Enable strict mode gradually

FAQ

Which version should I use for a new project?

Always the latest stable (0.79 as of this writing). There's no benefit to starting on an older version.

How often does React Native release?

Roughly every 2-3 months for minor versions. Major breaking changes happen 1-2 times per year.

Is the Old Architecture still supported?

As of 0.76, it's deprecated. It still works but receives no bug fixes or performance improvements. Migrate to New Architecture as soon as your dependencies support it.

Summary

React Native has gone through a massive transformation from 0.60 to 0.79. The biggest milestones: Autolinking (0.60) eliminated manual native linking, Fast Refresh (0.61) unified hot reload, Hermes became the default engine (0.70), TypeScript became the default language (0.71), the New Architecture (Fabric + TurboModules) rolled out incrementally from opt-in (0.68) to default (0.76), Flipper was removed in favor of Chrome DevTools (0.73), React 18 landed (0.69) and React 19 followed (0.79), and platform minimums steadily rose (iOS 16+, Android 7.0+ by 0.78). The language defaults shifted from Java/Objective-C to Kotlin (0.72) and Swift (0.79). Always upgrade one version at a time, check third-party library compatibility, and test on real devices.

Interview Questions & Answers

Q1: What is the New Architecture in React Native?

A: The New Architecture consists of two main parts: Fabric (new rendering system) and TurboModules (new native module system). Fabric replaces the old UIManager with a synchronous, multithreaded rendering pipeline. TurboModules replace the old NativeModules bridge with lazy-loaded, type-safe native modules. It was introduced as opt-in in 0.68 and became the default in 0.76.

Q2: What is Hermes and why was it made the default engine?

A: Hermes is a JavaScript engine optimized for React Native. It compiles JS to bytecode ahead of time, which reduces startup time, lowers memory usage, and decreases app size. It was Android-only initially, expanded to iOS in 0.64, and became the default engine in 0.70. It replaced JavaScriptCore (JSC) which was designed for browsers, not mobile apps.

Q3: What was the Flipper debugger and why was it removed?

A: Flipper was a desktop debugging tool integrated as the default debugger from 0.62 to 0.72. It provided network inspection, layout inspection, and log viewing. It was removed in 0.73 because it added complexity, had performance overhead, and a new Chrome DevTools-based JavaScript debugger provided a lighter, more reliable debugging experience.

Q4: What is Autolinking and how did it change React Native development?

A: Autolinking, introduced in 0.60, automatically links native dependencies when you install them via npm/yarn. Before this, you had to run react-native link manually or modify native project files (Xcode project, Gradle files). It also introduced CocoaPods as the default iOS dependency manager, replacing manual Xcode project linking.

Q5: What changed with Yoga 3.0 in React Native 0.74?

A: Yoga 3.0 is the updated layout engine with better CSS spec compliance. It added support for position: static, align-content: space-evenly, and fixed various flexbox edge cases. The improved compliance means some layouts may render slightly differently after upgrading — always test your UI thoroughly.

Q6: How did React Native transition from JavaScript to TypeScript?

A: Version 0.71 made TypeScript the default template — npx react-native init creates a TS project. Before this, developers had to manually set up tsconfig.json and rename files. The transition was gradual: 0.69 added React 18 TS types, 0.70 improved Codegen TS support, and 0.71 made it the default with the Flow template deprecated.

Q7: What is Fast Refresh and how is it different from the old Hot Reloading?

A: Fast Refresh (introduced in 0.61) unified the old "Hot Reloading" and "Live Reloading" into a single, reliable mechanism. Unlike the old approach, Fast Refresh preserves component state during edits, handles errors gracefully without losing state, works with functional components and hooks, and recovers after syntax errors.

Q8: What breaking changes came with React 19 in RN 0.79?

A: React 19 in RN 0.79 brought: removal of deprecated lifecycle methods (componentWillMount, componentWillReceiveProps, componentWillUpdate) — they crash without the UNSAFE_ prefix; stricter ref handling; new APIs like useOptimistic, useFormStatus, use() hook, and Actions. Swift also became the default iOS template language replacing Objective-C.

Q9: What is Bridgeless mode in React Native?

A: Bridgeless mode (introduced in 0.74) allows the New Architecture to work without the legacy bridge. The old architecture used an asynchronous JSON bridge to communicate between JS and native — this was a performance bottleneck. Bridgeless mode with TurboModules enables synchronous, direct communication via JSI (JavaScript Interface), significantly improving performance for native module calls.

Q10: What is the recommended upgrade strategy for React Native versions?

A: Always upgrade one version at a time for major jumps — don't skip from 0.68 to 0.76 directly. Use the upgrade helper (npx react-native upgrade or the community upgrade-helper tool). Check third-party library compatibility before upgrading, especially for New Architecture. Test on real devices (emulators miss performance regressions). Run your full test suite after each bump.

Q11: What modules were removed from React Native core and why?

A: Several modules were extracted to community packages: AsyncStorage → @react-native-async-storage/async-storage, NetInfo → @react-native-community/netinfo, Geolocation, WebView, and others. This was done to reduce core size, allow independent version cycles, and let the community maintain features that aren't core to the framework.

Q12: What are the minimum platform requirements for the latest React Native?

A: As of 0.78+: iOS 16 minimum (dropped iOS 13-15), Android API 24 (Android 7.0) minimum (dropped API 23). Java 17 is required (since 0.73). Xcode version requirements also increase with each release. These changes allow React Native to use newer platform APIs and drop compatibility code for old OS versions.

Contact