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
| Version | Release | Headline Feature | Breaking? |
|---|---|---|---|
| 0.60 | Jul 2019 | Autolinking, AndroidX | Yes |
| 0.61 | Sep 2019 | Fast Refresh | No |
| 0.62 | Mar 2020 | Flipper by default | No |
| 0.63 | Jul 2020 | LogBox, Pressable | No |
| 0.64 | Mar 2021 | Hermes on iOS | No |
| 0.65 | Aug 2021 | Hermes 0.8, accessibility | No |
| 0.66 | Oct 2021 | Bluetooth permissions, Xcode 13 | Minor |
| 0.67 | Jan 2022 | New Hermes, React 17 | Minor |
| 0.68 | Mar 2022 | New Architecture opt-in | No |
| 0.69 | Jun 2022 | React 18, bundled Hermes | Minor |
| 0.70 | Sep 2022 | Hermes default engine | Yes |
| 0.71 | Jan 2023 | TypeScript by default, Flexbox gap | Minor |
| 0.72 | Jun 2023 | Metro symlinks, Kotlin by default | Minor |
| 0.73 | Dec 2023 | New debugger, Kotlin DSL | Yes |
| 0.74 | Apr 2024 | Yoga 3.0, Bridgeless mode | Yes |
| 0.75 | Aug 2024 | Auto New Arch, Expo support | Yes |
| 0.76 | Oct 2024 | New Architecture default | Yes |
| 0.77 | Feb 2025 | Community CLI extraction | Yes |
| 0.78 | Apr 2025 | iOS 16+, Android API 24+ | Yes |
| 0.79 | Jul 2025 | React 19, Swift templates | Yes |
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 linkdeprecated) - 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,TouchableHighlightetc. PlatformColorfor native dynamic colorsDynamicColorIOSfor iOS semantic colors
Removed:
YellowBox(replaced by LogBox)
Deprecated:
TouchableOpacity,TouchableHighlight,TouchableWithoutFeedback,TouchableNativeFeedback— all replaced byPressable(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
Intlsupport,Proxy, and WeakRef - Accessibility improvements:
accessibilityState,accessibilityValueenhancements onPressIn/onPressOuton more components
Removed:
- Legacy
accessibilityStates(useaccessibilityStateobject 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=trueingradle.properties(Android) orRCT_NEW_ARCH_ENABLED=1pod 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 inittemplate uses React 18 by default
Breaking (minor):
- React 18's automatic batching may change when re-renders happen
startTransitionanduseDeferredValueavailable 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.jsfor 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 initcreates a TS project - Flexbox
gapproperty support —gap,rowGap,columnGapwork like CSS DevMenuredesign- Web-inspired props:
aria-*,id,tabIndex
Removed:
- Flow template as default (Flow still works, just not the default)
propTypesin core components (runtime prop checking removed)
Deprecated:
accessibilityRole→roleaccessibilityLabel→aria-labelaccessibilityState.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
startcommand improvements - Better New Architecture error messages
Removed:
- Java as the default Android template language
Breaking (minor):
- Metro config format updated — older
metro.config.jsmay 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.ktsby default) - Android 14 support
- Java 17 required
deprecated-react-native-prop-typespackage for migration
Removed:
- Flipper integration from default template
- Java 11 support (Java 17 minimum)
- Legacy
react-native-community/clidebug 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)
onLayoutbatching improvements- Yarn 3 workspace support improvements
Removed:
- Several deprecated props (
accessible→aria-hidden, old event handlers) PropTypescompletely 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=trueby default in template) - Expo modules support in bare React Native projects
- Stabilized
useAnimatedPropsinterop - Improved TypeScript types for native components
react-native/community-cli-plugin— CLI functionality becomes a plugin
Removed:
- Default
newArchEnabled=false— flipped totrue - 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
boxShadowstyle property support- Better CSS compliance across layout properties
Removed:
- Old Architecture support deprecated (still works but unsupported)
- Legacy
NativeModulesAPI deprecated (use TurboModules) - Legacy
UIManagercommands deprecated (use Fabric commands)
Breaking:
- Libraries using old bridge patterns need migration
requireNativeComponentusage 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-listspackage cursorstyle property for web-like pointer support
Removed:
- Built-in CLI commands (moved to community package)
- Several internal APIs made private
Breaking:
npx react-nativenow requires@react-native-community/cliinstalledVirtualizedListimport path changed to new packagepackage.jsonneeds@react-native-community/clias an explicit dependency
0.78 — iOS 16+ & Android 24+ (April 2025)
Added:
- Improved Fabric performance on Android
pointerEventsCSS 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)
AsyncStorageremoved from core (use@react-native-async-storage/async-storage)NetInforemoved 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
ActivityAPI 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
- Always read the changelog for each version you're skipping
- Use the upgrade helper:
npx react-native upgradeor check react-native-community/upgrade-helper - Upgrade one version at a time for major jumps — don't skip from 0.68 to 0.76
- Test on real devices — emulators miss performance regressions and permission issues
- Check third-party library compatibility before upgrading — especially for New Architecture
- 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:
- Upgrade to 0.76+ where it's default
- Run
npx react-native-new-architecturecompatibility check - Migrate custom native modules to TurboModules spec
- Update
requireNativeComponentcalls to Fabric - Test thoroughly — layout changes from Yoga updates can be subtle
JavaScript → TypeScript
If you're on 0.70 or earlier with a JavaScript project:
- Upgrade to 0.71+ where TS is default
- Rename files
.js→.tsx/.tsincrementally - Add
tsconfig.json(template included in 0.71+) - 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.