React Native New Architecture āļāļđāđāļĄāļ·āļāļāļāļąāļāļŠāļĄāļāļđāļĢāļāđ 2026: Hermes V1, Fabric, TurboModules āđāļĨāļ° Bridgeless Mode
āļāļđāđāļĄāļ·āļāļāļāļąāļāļŠāļĄāļāļđāļĢāļāđāļŠāļģāļŦāļĢāļąāļ React Native New Architecture āđāļāļāļĩ 2026 āļāļĢāļāļāļāļĨāļļāļĄ Hermes V1, Fabric Renderer, TurboModules, JSI āđāļĨāļ° Bridgeless Mode āļāļĢāđāļāļĄāļāļąāļ§āļāļĒāđāļēāļāđāļāđāļāđāļĨāļ°āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđ

React Native New Architecture āļāļ·āļāđāļāđāļāļāļēāļĢāļāļāļīāļ§āļąāļāļīāļāļĢāļąāđāļāļŠāļģāļāļąāļāđāļāļāļēāļĢāļāļąāļāļāļēāđāļāļāļāļĨāļīāđāļāļāļąāļāļĄāļ·āļāļāļ·āļāđāļāļ Cross-platform āđāļāļāļĩ 2026 āļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāļĢāļąāđāļāļāļĩāđāđāļĄāđāđāļāđāđāļāļĩāļĒāļāļāļēāļĢāļāļąāļāđāļāļāđāļĨāđāļāļāđāļāļĒ āđāļāđāđāļāđāļāļāļēāļĢāļāļāļāđāļāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļŦāļĄāđāļāļąāđāļāļŦāļĄāļāļāļąāđāļāđāļāđāļĢāļ°āļāļąāļ JavaScript Engine āļāļāļāļķāļāļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢāļāļąāļ Native Platform āļāļĨāļĨāļąāļāļāđāļāļĩāđāđāļāđāļāļ·āļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāļĩāđāđāļāļĩāļĒāļāđāļāļĩāļĒāļāļāļąāļāđāļāļ Native āđāļāđāļāļĒāđāļēāļāđāļāđāļāļĢāļīāļ āļāļĢāđāļāļĄāļāļĢāļ°āļŠāļāļāļēāļĢāļāđāļāļēāļĢāļāļąāļāļāļēāļāļĩāđāļāļĩāļāļķāđāļāļāļĒāđāļēāļāļĄāļēāļ āļāļāļāļ§āļēāļĄāļāļĩāđāļāļ°āļāļēāļāļąāļāļāļąāļāļāļēāđāļāļŠāļģāļĢāļ§āļāļāļļāļāļāļāļāđāļāļĢāļ°āļāļāļāļāļāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļŦāļĄāđ āļāļĢāđāļāļĄāļāļąāļ§āļāļĒāđāļēāļāđāļāđāļāļāļĩāđāļāļģāđāļāđāļāđāļāļēāļāđāļāđāļāļĢāļīāļ
āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļŦāļĄāđāļāļāļ React Native āđāļāđāļāļāđāļēāđāļĢāļīāđāļĄāļāđāļāļāļąāđāļāđāļāđāđāļ§āļāļĢāđāļāļąāļ 0.76 āđāļāđāļāļāđāļāđāļ āđāļāļĢāđāļāļāļāđāđāļŦāļĄāđāļāļąāđāļāļŦāļĄāļāļāļ°āđāļāđāļĢāļąāļāļāļĢāļ°āđāļĒāļāļāđāļāļēāļ Hermes V1, Fabric āđāļĨāļ° TurboModules āđāļāļĒāļāļąāļāđāļāļĄāļąāļāļī āļŠāļģāļŦāļĢāļąāļāđāļāļĢāđāļāļāļāđāđāļāļīāļĄāļāļĩāđāļāđāļāļāļāļēāļĢāļāļąāļāđāļāļĢāļ āļŠāļēāļĄāļēāļĢāļāļāļģāđāļāļīāļāļāļēāļĢāđāļāđāļāļĩāļĨāļ°āļāļąāđāļāļāļāļāļāļēāļĄāļāļģāđāļāļ°āļāļģāđāļāļāļāļāļ§āļēāļĄāļāļĩāđ
āļ āļēāļāļĢāļ§āļĄāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļŦāļĄāđāļāļāļ React Native
āļāļēāļĢāļāļģāļāļ§āļēāļĄāđāļāđāļēāđāļāļāļ§āļēāļĄāđāļāļāļāđāļēāļāļĢāļ°āļŦāļ§āđāļēāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļāđāļēāđāļĨāļ°āđāļŦāļĄāđāđāļāđāļāļāļ·āđāļāļāļēāļāļŠāļģāļāļąāļ āļāļēāļĢāļēāļāļāđāļēāļāļĨāđāļēāļāđāļŠāļāļāđāļŦāđāđāļŦāđāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāđāļāđāļāđāļĨāļ° Layer āļāļĒāđāļēāļāļāļąāļāđāļāļ
| Layer | āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļāļīāļĄ | āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļŦāļĄāđ | |-------|-----------------|------------------| | JS Engine | JavaScriptCore | Hermes V1 (bytecode + JIT) | | Renderer | Paper (async bridge) | Fabric (synchronous, shared C++) | | Native Modules | Bridge Modules (JSON serialization) | TurboModules (JSI, direct calls) | | Communication | Async JSON Bridge | JSI (JavaScript Interface) | | Initialization | Bridge init + module registration | Bridgeless (lazy, on-demand) |
āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļāļīāļĄāļĄāļĩāļāđāļāļāļģāļāļąāļāļŦāļĨāļąāļāļāļ·āļāļāļēāļĢāļāļķāđāļāļāļē Bridge āļāļĩāđāļāļģāļāļēāļāđāļāļ Asynchronous āļāļļāļāļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢāļĢāļ°āļŦāļ§āđāļēāļ JavaScript āđāļĨāļ° Native āļāļ°āļāđāļāļāļāđāļēāļāļāļēāļĢāđāļāļĨāļāđāļāđāļ JSON āđāļĨāļ°āļŠāđāļāļāđāļēāļ Queue āļāļķāđāļāļŠāļĢāđāļēāļāļāļ§āļēāļĄāļĨāđāļēāļāđāļēāđāļĨāļ°āđāļāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļĄāļēāļ āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļŦāļĄāđāđāļāđāļāļąāļāļŦāļēāļāļĩāđāļāđāļ§āļĒ JSI (JavaScript Interface) āļāļĩāđāļāđāļ§āļĒāđāļŦāđ JavaScript āđāļĢāļĩāļĒāļāđāļāđāđāļāđāļ C++ āđāļāđāđāļāļĒāļāļĢāļ
Hermes V1: JavaScript Engine āļĢāļļāđāļāđāļŦāļĄāđ
Hermes V1 āđāļāđāļ JavaScript Engine āļāļĩāđ Meta āļāļąāļāļāļēāļāļķāđāļāđāļāļāļēāļ°āļŠāļģāļŦāļĢāļąāļ React Native āđāļāļĒāļĄāļĩāđāļāđāļēāļŦāļĄāļēāļĒāđāļāļ·āđāļāļĨāļāđāļ§āļĨāļē Cold Start āđāļĨāļ°āļāļēāļĢāđāļāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģ āļāļļāļāļŠāļĄāļāļąāļāļīāđāļāđāļāļāļāļ Hermes V1 āļāļĢāļ°āļāļāļāļāđāļ§āļĒ Ahead-of-Time Compilation āļāļĩāđāđāļāļĨāļ JavaScript āđāļāđāļ Bytecode āļāļąāđāļāđāļāđāļāļąāđāļāļāļāļ Build, Hades Garbage Collector āļāļĩāđāļāļģāļāļēāļāđāļāļ Concurrent āđāļĨāļ° JIT Compiler āļĢāļļāđāļāđāļŦāļĄāđāļāļĩāđāđāļāļīāđāļĄāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ Runtime
// Comparing startup and runtime metrics
// Hermes V1 bytecode is pre-compiled at build time
// No parse-compile step at runtime = faster cold starts
// Cold start comparison (production build, Pixel 8):
// Hermes V1: ~850ms TTI
// JSC: ~1200ms TTI (29% slower)
// Memory footprint (complex app, 50+ screens):
// Hermes V1: ~45MB baseline
// JSC: ~72MB baseline (38% more)
// GC pause comparison (FlatList, 500+ complex cells):
// Hermes V1 (Hades): <12ms max pause
// Old Hermes: ~45ms occasional pauses
// Result: zero dropped frames in scroll benchmarksHades Garbage Collector āđāļāđāļāļŦāļāļķāđāļāđāļāļāļ§āļąāļāļāļĢāļĢāļĄāļŠāļģāļāļąāļāļāļāļ Hermes V1 āļĢāļ°āļāļ GC āļĢāļļāđāļāđāļāđāļēāļāļ°āļŦāļĒāļļāļāļāļēāļĢāļāļģāļāļēāļāļāļāļ JavaScript Thread āļāļąāđāļāļŦāļĄāļāļāļāļ°āđāļāđāļāļāļĒāļ° āļŠāđāļāļāļĨāđāļŦāđāđāļāļīāļāļāļēāļāļēāļĢāļāļĢāļ°āļāļļāļāđāļāđāļāļāļāļĨāļīāđāļāļāļąāļ Hades āđāļāđāļāļąāļāļŦāļēāļāļĩāđāļāđāļ§āļĒāļāļēāļĢāļāļģāļāļēāļāđāļāļ Concurrent āđāļĨāļ° Incremental āļāļģāđāļŦāđ GC Pause āļĨāļāļĨāļāļāļēāļ 45ms āđāļŦāļĨāļ·āļāđāļāļĩāļĒāļ 12ms āļŦāļĢāļ·āļāļāđāļģāļāļ§āđāļē
Fabric Renderer: āļĢāļ°āļāļāđāļĢāļāđāļāļāļĢāđāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŠāļđāļ
Fabric āđāļāđāļāļĢāļ°āļāļāđāļĢāļāđāļāļāļĢāđāđāļŦāļĄāđāļāļĩāđāđāļāļĩāļĒāļāļāđāļ§āļĒ C++ āđāļĨāļ°āļāļģāļāļēāļāđāļāļ Synchronous āđāļāļāļāļĩāđāļāļ°āļŠāđāļāļāļģāļŠāļąāđāļāļāđāļēāļ Bridge āđāļāļ Asynchronous āđāļŦāļĄāļ·āļāļāļĢāļ°āļāļ Paper āđāļāļīāļĄ Fabric āļŠāļēāļĄāļēāļĢāļāļāļąāļāđāļāļ UI āđāļāđāļāļąāļāļāļĩāļāđāļēāļ JSI āļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāļĩāđāļŠāđāļāļāļĨāđāļŦāđ Screen Transition āđāļĢāđāļ§āļāļķāđāļ 39% āđāļĨāļ°āļĢāļāļāļĢāļąāļ React 18+ Concurrent Features āđāļāđāļāļĒāđāļēāļāļŠāļĄāļāļđāļĢāļāđ
āļāļąāļ§āļāļĒāđāļēāļāļāļēāļĢāđāļāđ Concurrent Features āļāļąāļ Fabric āđāļŠāļāļāđāļŦāđāđāļŦāđāļāļāļēāļĢāļāļģāļāļēāļāļĢāđāļ§āļĄāļāļąāļāļĢāļ°āļŦāļ§āđāļēāļ useTransition āđāļĨāļ°āļĢāļ°āļāļāđāļĢāļāđāļāļāļĢāđāđāļŦāļĄāđ
// Concurrent features work correctly with Fabric
import React, { useState, useTransition } from 'react'
import { View, Text, FlatList, TextInput, StyleSheet } from 'react-native'
type Item = { id: string; name: string; category: string }
function SearchableList({ items }: { items: Item[] }) {
const [query, setQuery] = useState('')
const [filtered, setFiltered] = useState(items)
const [isPending, startTransition] = useTransition()
const handleSearch = (text: string) => {
setQuery(text) // Urgent: update input immediately
startTransition(() => {
// Non-urgent: filter can be deferred
const result = items.filter(item =>
item.name.toLowerCase().includes(text.toLowerCase())
)
setFiltered(result)
})
}
return (
<View style={styles.container}>
<TextInput
value={query}
onChangeText={handleSearch}
placeholder="Search items..."
style={styles.input}
/>
{isPending && <Text style={styles.pending}>Filtering...</Text>}
<FlatList
data={filtered}
keyExtractor={item => item.id}
renderItem={({ item }) => (
<View style={styles.row}>
<Text>{item.name}</Text>
</View>
)}
/>
</View>
)
}
const styles = StyleSheet.create({
container: { flex: 1, padding: 16 },
input: { borderWidth: 1, borderColor: '#ccc', padding: 12, marginBottom: 8 },
pending: { color: '#888', marginBottom: 4 },
row: { padding: 12, borderBottomWidth: 1, borderBottomColor: '#eee' },
})āđāļāļāļąāļ§āļāļĒāđāļēāļāļāđāļēāļāļāđāļ āļāļēāļĢāļāļąāļāđāļāļ query āļāļ°āđāļāļīāļāļāļķāđāļāļāļąāļāļāļĩāđāļāļ·āđāļāđāļŦāđāļāļđāđāđāļāđāđāļŦāđāļāļāļēāļĢāļāļīāļĄāļāđāļāļāļāļāļāđāļāļ āđāļāļāļāļ°āļāļĩāđāļāļēāļĢ Filter āļĢāļēāļĒāļāļēāļĢāļāļ°āļāļđāļāđāļĨāļ·āđāļāļāļāļāļāđāļāđāļāđāļ Non-urgent Update Fabric āļĢāļāļāļĢāļąāļāļāļēāļĢāļāļģāļāļēāļāļāļĩāđāđāļāđāļāļĒāđāļēāļāļŠāļĄāļāļđāļĢāļāđ āļāļģāđāļŦāđ UI āļāļāļāļŠāļāļāļāđāļāđāļĨāļ·āđāļāđāļŦāļĨāđāļĄāđāļĄāļĩāļāđāļāļĄāļđāļĨāļāļģāļāļ§āļāļĄāļēāļ
āļāļĢāđāļāļĄāļāļĩāđāļāļ°āļāļīāļāļīāļāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļāđ React Native āđāļĨāđāļ§āļŦāļĢāļ·āļāļĒāļąāļāļāļĢāļąāļ?
āļāļķāļāļāļāļāđāļ§āļĒāļāļąāļ§āļāļģāļĨāļāļāđāļāļāđāļāđāļāļāļ, flashcards āđāļĨāļ°āđāļāļāļāļāļŠāļāļāđāļāļāļāļīāļāļāļĢāļąāļ
TurboModules: Native Modules āļĒāļļāļāđāļŦāļĄāđ
TurboModules āđāļāđāļāļĢāļ°āļāļ Native Modules āļĢāļļāđāļāđāļŦāļĄāđāļāļĩāđāđāļāđ JSI āđāļāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāļāļēāļ Native Code āđāļāļĒāļāļĢāļ āđāļāļāļāļĩāđāļāļ°āļŠāđāļāļāđāļāļĄāļđāļĨāļāđāļēāļ Bridge āđāļāļāđāļāļīāļĄ āļāđāļāļāļĩāļŦāļĨāļąāļāļāļāļ TurboModules āļāļ·āļāļĢāļāļāļĢāļąāļāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāļ Synchronous āļŠāļģāļŦāļĢāļąāļ Operation āļāļĩāđāļāđāļāļāļāļēāļĢāļāļĨāļĨāļąāļāļāđāļāļąāļāļāļĩ, Lazy Loading āļāļĩāđāđāļŦāļĨāļ Module āđāļāļāļēāļ°āđāļĄāļ·āđāļāļāļđāļāđāļĢāļĩāļĒāļāđāļāđ āđāļĨāļ° Type Safety āļāđāļēāļ Codegen
āļāļēāļĢāļŠāļĢāđāļēāļ TurboModule āđāļĢāļīāđāļĄāļāđāļāļāđāļ§āļĒāļāļēāļĢāļāļģāļŦāļāļ Spec āđāļ TypeScript
// TurboModule spec using the Codegen
import type { TurboModule } from 'react-native'
import { TurboModuleRegistry } from 'react-native'
export interface Spec extends TurboModule {
// Synchronous: returns immediately, no bridge round-trip
getDeviceModel(): string
getOSVersion(): string
getBatteryLevel(): number
// Asynchronous: for operations that genuinely need async
getStorageUsage(): Promise<{ used: number; total: number }>
}
export default TurboModuleRegistry.getEnforcing<Spec>('DeviceInfo')Spec āļāļĩāđāļāļģāļŦāļāļ Interface āļāļĩāđ Native Module āļāļ°āļāđāļāļ Implement āđāļāļĒ Codegen āļāļ°āļŠāļĢāđāļēāļ Native Interface āļāļąāļāđāļāļĄāļąāļāļīāļāļēāļ TypeScript Spec āļāļģāđāļŦāđāļĄāļąāđāļāđāļāđāļāđāļ§āđāļē Type āļĢāļ°āļŦāļ§āđāļēāļ JavaScript āđāļĨāļ° Native āļāļĢāļāļāļąāļ
āļŠāļģāļŦāļĢāļąāļ Android āļāļēāļĢ Implement TurboModule āđāļ Kotlin āļĄāļĩāļĨāļąāļāļĐāļāļ°āļāļąāļāļāļĩāđ
// Native Android implementation of the TurboModule
package com.app.modules
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.bridge.ReadableMap
import com.facebook.react.bridge.WritableNativeMap
import com.facebook.react.module.annotations.ReactModule
@ReactModule(name = "DeviceInfo")
class DeviceInfoModule(reactContext: ReactApplicationContext) :
NativeDeviceInfoSpec(reactContext) {
// Synchronous via JSI - no bridge, no JSON, no queue
override fun getDeviceModel(): String {
return android.os.Build.MODEL
}
override fun getOSVersion(): String {
return "Android ${android.os.Build.VERSION.RELEASE}"
}
override fun getBatteryLevel(): Double {
val manager = reactApplicationContext
.getSystemService(android.content.Context.BATTERY_SERVICE)
as android.os.BatteryManager
return manager.getIntProperty(
android.os.BatteryManager.BATTERY_PROPERTY_CAPACITY
).toDouble()
}
override fun getStorageUsage(
promise: com.facebook.react.bridge.Promise
) {
val stat = android.os.StatFs(
android.os.Environment.getDataDirectory().path
)
val map = WritableNativeMap().apply {
putDouble("used", (stat.totalBytes - stat.availableBytes).toDouble())
putDouble("total", stat.totalBytes.toDouble())
}
promise.resolve(map)
}
override fun getName(): String = "DeviceInfo"
}āļŠāļąāļāđāļāļāļ§āđāļē Method āļāļĒāđāļēāļ getDeviceModel() āđāļĨāļ° getBatteryLevel() āļŠāļēāļĄāļēāļĢāļ Return āļāđāļēāđāļāđāļāļąāļāļāļĩāđāļāļ Synchronous āļāđāļēāļ JSI āđāļĄāđāļāđāļāļāļĢāļ Bridge Queue āđāļŦāļĄāļ·āļāļāļĢāļ°āļāļāđāļāđāļē āļāļģāđāļŦāđ JS-to-Native Call āđāļĢāđāļ§āļāļķāđāļāļāļķāļ 40 āđāļāđāļē
JSI: āļŦāļąāļ§āđāļāļāļāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļŦāļĄāđ
JSI (JavaScript Interface) āđāļāđāļ Layer āļāļĩāđāļāđāļ§āļĒāđāļŦāđ JavaScript āļŠāļēāļĄāļēāļĢāļāđāļĢāļĩāļĒāļāđāļāđ C++ Object āđāļāđāđāļāļĒāļāļĢāļ āđāļāļĒāđāļĄāđāļāđāļāļāļāđāļēāļāļāļēāļĢ Serialize āđāļāđāļ JSON āļāđāļāļ JSI āđāļāđāļāļāļ·āđāļāļāļēāļāļāļĩāđāļāļģāđāļŦāđāļāļąāđāļ Fabric āđāļĨāļ° TurboModules āļāļģāļāļēāļāđāļāđ
āļāđāļāļāļĩāļŦāļĨāļąāļāļāļāļ JSI āļāļĢāļ°āļāļāļāļāđāļ§āļĒ Direct Memory Access āļāļĩāđāļāđāļ§āļĒāđāļŦāđ JavaScript āđāļāđāļēāļāļķāļ Native Object āđāļāđāđāļāļĒāļāļĢāļ, Engine Agnostic āļāļĩāđāļĢāļāļāļĢāļąāļāļāļąāđāļ Hermes, JSC āđāļĨāļ° V8 āđāļĨāļ° Zero-Copy Communication āļāļĩāđāļĨāļāļāļēāļĢ Copy āļāđāļāļĄāļđāļĨāļĢāļ°āļŦāļ§āđāļēāļ Layer
Bridgeless Mode: āļāļāļēāļāļāļāļāļ React Native
Bridgeless Mode āđāļāđāļāļāļąāđāļāļāļāļāļŠāļļāļāļāđāļēāļĒāļāļāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāļāđāļēāļāđāļāļŠāļđāđāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļŦāļĄāđ āđāļāđāļŦāļĄāļāļāļĩāđ Bridge āđāļāļīāļĄāļāļ°āļāļđāļāļĨāļāļāļāļāļāļąāđāļāļŦāļĄāļ āļāļļāļāļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢāļāļ°āļāđāļēāļ JSI āđāļāļĒāļāļĢāļ āļāļĨāļĨāļąāļāļāđāļāļ·āļāļāļēāļĢ Startup āļāļĩāđāđāļĢāđāļ§āļāļķāđāļāđāļāļ·āđāļāļāļāļēāļāđāļĄāđāļāđāļāļ Initialize Bridge āđāļĨāļ° Register Module āļāļąāđāļāļŦāļĄāļāļĨāđāļ§āļāļŦāļāđāļē
Bridgeless Mode āđāļāđāļĢāļ°āļāļ Lazy Initialization āļāļĩāđāđāļŦāļĨāļ TurboModule āđāļāļāļēāļ°āđāļĄāļ·āđāļāļāļđāļāđāļĢāļĩāļĒāļāđāļāđāļāļĢāļąāđāļāđāļĢāļ āļāļķāđāļāļāđāļ§āļĒāļĨāļāđāļ§āļĨāļē Cold Start āļāļĒāđāļēāļāļĄāļēāļ āđāļāļĒāđāļāļāļēāļ°āđāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļāļēāļāđāļŦāļāđāļāļĩāđāļĄāļĩ Native Module āļāļģāļāļ§āļāļĄāļēāļ
āļāļĨāļĨāļąāļāļāđāļāđāļēāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ
āļāļēāļĢāļēāļāļāđāļēāļāļĨāđāļēāļāđāļŠāļāļāļāļēāļĢāđāļāļĢāļĩāļĒāļāđāļāļĩāļĒāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļĢāļ°āļŦāļ§āđāļēāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļāđāļēāđāļĨāļ°āđāļŦāļĄāđ āļāđāļāļĄāļđāļĨāļĄāļēāļāļēāļāļāļēāļĢāļāļāļŠāļāļāļāļĢāļīāļāļāļāļāļļāļāļāļĢāļāđāļĢāļ°āļāļąāļāļāļĨāļēāļ
| Metric | āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļāļīāļĄ | āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļŦāļĄāđ | āļāļēāļĢāļāļĢāļąāļāļāļĢāļļāļ | |--------|-----------------|------------------|-------------| | Cold start (TTI) | 1.4s | 0.8s | āđāļĢāđāļ§āļāļķāđāļ 43% | | Screen transition | 180ms | 110ms | āđāļĢāđāļ§āļāļķāđāļ 39% | | Memory baseline | 89MB | 66MB | āļĨāļāļĨāļ 26% | | JS-to-native call | ~5ms (async) | ~0.1ms (sync) | āđāļĢāđāļ§āļāļķāđāļ 40x | | GC max pause | 45ms | 12ms | āļŠāļąāđāļāļĨāļ 73% | | FlatList scroll (1000 items) | āļāļĢāļ°āļāļļāļāđāļāđāļāļāļĢāļąāđāļāļāļĢāļēāļ§ | āļĨāļ·āđāļāđāļŦāļĨ 60fps | āđāļĄāđāļĄāļĩ Frame āļāļ |
āļāļąāļ§āđāļĨāļāđāļŦāļĨāđāļēāļāļĩāđāđāļŠāļāļāđāļŦāđāđāļŦāđāļāļ§āđāļēāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļŦāļĄāđāđāļĄāđāđāļāđāļāļēāļĢāļāļĢāļąāļāļāļĢāļļāļāđāļĨāđāļāļāđāļāļĒ āđāļāđāđāļāđāļāļāļēāļĢāļĒāļāļĢāļ°āļāļąāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāļĒāđāļēāļāļĄāļĩāļāļąāļĒāļŠāļģāļāļąāļāđāļāļāļļāļāļāđāļēāļ
āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđ React Native New Architecture 2026
āļŠāļģāļŦāļĢāļąāļāļāļąāļāļāļąāļāļāļēāļāļĩāđāļāļģāļĨāļąāļāđāļāļĢāļĩāļĒāļĄāļāļąāļ§āļŠāļąāļĄāļ āļēāļĐāļāđāļāļēāļ āļāđāļāđāļāļāļĩāđāļāļ·āļāļāļģāļāļēāļĄāļāļĩāđāļāļāļāđāļāļĒāđāļāļĩāđāļĒāļ§āļāļąāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļŦāļĄāđ
āļāļģāļāļēāļĄ: āļāļāļīāļāļēāļĒāļāļ§āļēāļĄāđāļāļāļāđāļēāļāļĢāļ°āļŦāļ§āđāļēāļ Bridge āđāļāļīāļĄāļāļąāļ JSI
āļāļģāļāļāļāļāļĩāđāļāļĩāļāļ§āļĢāļāļāļīāļāļēāļĒāļ§āđāļē Bridge āđāļāļīāļĄāļāļģāļāļēāļāđāļāļ Asynchronous āđāļāļĒāđāļāļĨāļāļāđāļāļĄāļđāļĨāđāļāđāļ JSON āđāļĨāļ°āļŠāđāļāļāđāļēāļ Queue āđāļāļāļāļ°āļāļĩāđ JSI āļāđāļ§āļĒāđāļŦāđ JavaScript āđāļĢāļĩāļĒāļāđāļāđ C++ Object āđāļāđāđāļāļĒāļāļĢāļāđāļāļ Synchronous āđāļĄāđāļāđāļāļāļĄāļĩāļāļēāļĢ Serialize āļāđāļāļĄāļđāļĨ
āļāļģāļāļēāļĄ: Hermes V1 āļāļĢāļąāļāļāļĢāļļāļāļāļ°āđāļĢāļāđāļēāļāļāļēāļ Hermes āļĢāļļāđāļāļāđāļāļ
āļāļ§āļĢāļāļĨāđāļēāļ§āļāļķāļ Hades Garbage Collector āļāļĩāđāļāļģāļāļēāļāđāļāļ Concurrent, JIT Compiler āļĢāļļāđāļāđāļŦāļĄāđ āđāļĨāļ° Bytecode Format āļāļĩāđāļāļĢāļąāļāļāļĢāļļāļāđāļĨāđāļ§
āļāļģāļāļēāļĄ: āļāļģāđāļĄ TurboModules āļāļķāļāđāļĢāđāļ§āļāļ§āđāļē Bridge Modules
āļāļģāļāļāļāļāļ§āļĢāļāļĢāļāļāļāļĨāļļāļĄāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāđāļāļ Synchronous āļāđāļēāļ JSI, āļāļēāļĢāđāļĄāđāļāđāļāļ Serialize āđāļāđāļ JSON āđāļĨāļ° Lazy Loading āļāļĩāđāđāļŦāļĨāļ Module āđāļāļāļēāļ°āđāļĄāļ·āđāļāļāļģāđāļāđāļ
āļāļģāļāļēāļĄ: Fabric āļāđāļēāļāļāļēāļ Paper āļāļĒāđāļēāļāđāļĢ
āļāļ§āļĢāļāļāļīāļāļēāļĒāļ§āđāļē Fabric āđāļāđ C++ Shared Core āļāļĩāđāļāļģāļāļēāļāđāļāļ Synchronous āļĢāļāļāļĢāļąāļ Concurrent Rendering āđāļĨāļ°āļāļąāļāđāļāļ UI āļāđāļēāļ JSI āđāļāļĒāļāļĢāļ
āļāļģāļāļēāļĄ: Bridgeless Mode āļĄāļĩāļāļĢāļ°āđāļĒāļāļāđāļāļĒāđāļēāļāđāļĢ
āļāļģāļāļāļāļāļ§āļĢāļāļĨāđāļēāļ§āļāļķāļāļāļēāļĢāļĨāļ Bridge āļāļāļāļāļąāđāļāļŦāļĄāļ, Lazy Module Initialization āđāļĨāļ°āļāļēāļĢ Startup āļāļĩāđāđāļĢāđāļ§āļāļķāđāļ
āļāļēāļĢāđāļāļĢāļĩāļĒāļĄāļāļąāļ§āļŠāļģāļŦāļĢāļąāļāļāļēāļĢ Migrate
āļŠāļģāļŦāļĢāļąāļāđāļāļĢāđāļāļāļāđāļāļĩāđāļāđāļāļāļāļēāļĢ Migrate āđāļāđāļāđāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļŦāļĄāđ āļĄāļĩāļāļąāđāļāļāļāļāļāļĩāđāļāļ§āļĢāļāļāļīāļāļąāļāļīāļāļąāļāļāļĩāđ
āļāļąāđāļāļāļāļāđāļĢāļāļāļ·āļāļāļēāļĢāļāļąāļāđāļāļĢāļ React Native āđāļāđāļāđāļ§āļāļĢāđāļāļąāļ 0.76 āļŦāļĢāļ·āļāđāļŦāļĄāđāļāļ§āđāļē āļāļķāđāļāđāļāļīāļāđāļāđāļāļēāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļŦāļĄāđāđāļāđāļāļāđāļēāđāļĢāļīāđāļĄāļāđāļ āļāļąāđāļāļāļāļāļāđāļāđāļāļāļ·āļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļ Third-party Library āļ§āđāļēāļĢāļāļāļĢāļąāļ Fabric āđāļĨāļ° TurboModules āļŦāļĢāļ·āļāđāļĄāđ Library āļĒāļāļāļāļīāļĒāļĄāļŠāđāļ§āļāđāļŦāļāđāđāļāđāļĢāļąāļāļāļēāļĢāļāļąāļāđāļāļāđāļĨāđāļ§ āđāļāđāļāļēāļ Library āļāļēāļāļāđāļāļāļĢāļāļŦāļĢāļ·āļāļŦāļēāļāļēāļāđāļĨāļ·āļāļāļāļ·āđāļ
āļŠāļģāļŦāļĢāļąāļ Custom Native Modules āļāļ°āļāđāļāļ Migrate āđāļāđāļāđ TurboModule Pattern āđāļāļĒāļŠāļĢāđāļēāļ Spec āđāļ TypeScript āđāļĨāļ° Implement Native Code āļāļēāļĄ Interface āļāļĩāđ Codegen āļŠāļĢāđāļēāļāļāļķāđāļ
āļāļāļŠāļĢāļļāļ
React Native New Architecture āđāļāļāļĩ 2026 āļāļģāđāļŠāļāļāļāļēāļĢāļāļĢāļąāļāļāļĢāļļāļāļāļĩāđāļŠāļģāļāļąāļāđāļāļāļļāļāļĢāļ°āļāļąāļ
- Hermes V1 āđāļŦāđāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ JavaScript āļāļĩāđāļāļĩāļāļķāđāļāļāļĢāđāļāļĄ Hades GC āļāļĩāđāļĨāļ Pause Time
- Fabric Renderer āļāļģāļāļēāļāđāļāļ Synchronous āļĢāļāļāļĢāļąāļ Concurrent Features āļāļāļ React 18+
- TurboModules āđāļāđ JSI āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļĢāļĩāļĒāļ Native Code āđāļāļĒāļāļĢāļāđāļĨāļ°āļĢāļ§āļāđāļĢāđāļ§
- JSI āđāļāđāļāļāļ·āđāļāļāļēāļāļāļĩāđāđāļāļ·āđāļāļĄāļāđāļāļāļļāļāļāļāļāđāļāļĢāļ°āļāļāļāđāļāđāļēāļāđāļ§āļĒāļāļąāļ
- Bridgeless Mode āļĨāļ Bridge āđāļāļīāļĄāļāļāļāļāļąāđāļāļŦāļĄāļāđāļāļ·āđāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŠāļđāļāļŠāļļāļ
āļŠāļģāļŦāļĢāļąāļāļāļąāļāļāļąāļāļāļēāļāļĩāđāļāđāļāļāļāļēāļĢāđāļāļĢāļĩāļĒāļĄāļāļąāļ§āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļāđāļāļēāļ āļāļēāļĢāđāļāđāļēāđāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļŦāļĄāđāđāļāđāļāļŠāļīāđāļāļāļģāđāļāđāļ āđāļāļĒāđāļāļāļēāļ°āļāļēāļĢāļāļāļīāļāļēāļĒāļāļ§āļēāļĄāđāļāļāļāđāļēāļāļĢāļ°āļŦāļ§āđāļēāļāļĢāļ°āļāļāđāļāđāļēāđāļĨāļ°āđāļŦāļĄāđ āļĢāļ§āļĄāļāļķāļāđāļŦāļāļļāļāļĨāļāļĩāđāļāļģāđāļŦāđāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāļĩāļāļķāđāļ
āđāļĢāļīāđāļĄāļāļķāļāļāđāļāļĄāđāļĨāļĒ!
āļāļāļŠāļāļāļāļ§āļēāļĄāļĢāļđāđāļāļāļāļāļļāļāļāđāļ§āļĒāļāļąāļ§āļāļģāļĨāļāļāļŠāļąāļĄāļ āļēāļĐāļāđāđāļĨāļ°āđāļāļāļāļāļŠāļāļāđāļāļāļāļīāļāļāļĢāļąāļ
āđāļāđāļ
āđāļāļĢāđ
āļāļāļāļ§āļēāļĄāļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļ

Hermes V1 āđāļ React Native 0.84: āļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ, Bytecode Precompiled āđāļĨāļ°āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđ
āļāļđāđāļĄāļ·āļāđāļāļīāļāļĨāļķāļāđāļāļĩāđāļĒāļ§āļāļąāļ JavaScript engine Hermes V1 āđāļ React Native 0.84 āļāļĢāļāļāļāļĨāļļāļĄāļāļēāļĢāļāļāļĄāđāļāļĨāđ bytecode, garbage collector Hades, āļāļĨāļĒāļļāļāļāđāļāļēāļĢāđāļāļīāđāļĄāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģ āđāļĨāļ°āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđāļāļēāļāđāļāļāļāļīāļ

React Native āļāļąāļ TypeScript āļāļĩ 2026: āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄ Type-Safe āđāļĨāļ°āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđāļāļēāļ
āļŠāļĢāđāļēāļāđāļāļ React Native āđāļāļ type-safe āļāđāļ§āļĒ TypeScript, Codegen, TurboModules āđāļĨāļ° Strict TypeScript API āļāļĢāļāļāļāļĨāļļāļĄāļĢāļđāļāđāļāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄ, typed navigation āđāļĨāļ°āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđāļāļēāļāļāļĩ 2026

React Native 0.86 āđāļāļāļĩ 2026: Edge-to-Edge Android, DevTools āđāļĨāļ°āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđ
āđāļāļĩāđāļĒāļ§āļāļēāļ React Native 0.86 āļāļĢāđāļāļĄāļāļēāļĢāļĢāļāļāļĢāļąāļ edge-to-edge Android 15, āļāļēāļĢāļāļĢāļąāļāļāļĢāļļāļ DevTools āđāļĨāļ°āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđāđāļāļīāļāļāļāļīāļāļąāļāļī āļāļđāđāļĄāļ·āļāļāļāļąāļāļŠāļĄāļāļđāļĢāļāđāļāļĢāđāļāļĄāļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ