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 āļžāļĢāđ‰āļ­āļĄ Hermes V1, Fabric āđāļĨāļ° TurboModules

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

HermesV1Benchmarks.jsjavascript
// 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 benchmarks

Hades 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 āđāļĨāļ°āļĢāļ°āļšāļšāđ€āļĢāļ™āđ€āļ”āļ­āļĢāđŒāđƒāļŦāļĄāđˆ

FabricConcurrentExample.tsxtypescript
// 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

NativeDeviceInfo.tstypescript
// 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 āļĄāļĩāļĨāļąāļāļĐāļ“āļ°āļ”āļąāļ‡āļ™āļĩāđ‰

DeviceInfoModule.ktkotlin
// 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 āđ€āļ”āļīāļĄāļ­āļ­āļāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđ€āļžāļ·āđˆāļ­āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļđāļ‡āļŠāļļāļ”

āļŠāļģāļŦāļĢāļąāļšāļ™āļąāļāļžāļąāļ’āļ™āļēāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāđ€āļ•āļĢāļĩāļĒāļĄāļ•āļąāļ§āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ‡āļēāļ™ āļāļēāļĢāđ€āļ‚āđ‰āļēāđƒāļˆāļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāđƒāļŦāļĄāđˆāđ€āļ›āđ‡āļ™āļŠāļīāđˆāļ‡āļˆāļģāđ€āļ›āđ‡āļ™ āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āļāļēāļĢāļ­āļ˜āļīāļšāļēāļĒāļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļĢāļ°āļšāļšāđ€āļāđˆāļēāđāļĨāļ°āđƒāļŦāļĄāđˆ āļĢāļ§āļĄāļ–āļķāļ‡āđ€āļŦāļ•āļļāļœāļĨāļ—āļĩāđˆāļ—āļģāđƒāļŦāđ‰āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļ”āļĩāļ‚āļķāđ‰āļ™

āđ€āļĢāļīāđˆāļĄāļāļķāļāļ‹āđ‰āļ­āļĄāđ€āļĨāļĒ!

āļ—āļ”āļŠāļ­āļšāļ„āļ§āļēāļĄāļĢāļđāđ‰āļ‚āļ­āļ‡āļ„āļļāļ“āļ”āđ‰āļ§āļĒāļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒāđāļĨāļ°āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„āļ„āļĢāļąāļš

āđāļ—āđ‡āļ

#react-native
#hermes
#new-architecture
#bridgeless
#turbomodules
#fabric
#mobile-development
#deep-dive

āđāļŠāļĢāđŒ

āļšāļ—āļ„āļ§āļēāļĄāļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡

Hermes V1 āđƒāļ™ React Native 0.84

Hermes V1 āđƒāļ™ React Native 0.84: āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž, Bytecode Precompiled āđāļĨāļ°āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āļ„āļđāđˆāļĄāļ·āļ­āđ€āļŠāļīāļ‡āļĨāļķāļāđ€āļāļĩāđˆāļĒāļ§āļāļąāļš JavaScript engine Hermes V1 āđƒāļ™ React Native 0.84 āļ„āļĢāļ­āļšāļ„āļĨāļļāļĄāļāļēāļĢāļ„āļ­āļĄāđ„āļžāļĨāđŒ bytecode, garbage collector Hades, āļāļĨāļĒāļļāļ—āļ˜āđŒāļāļēāļĢāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģ āđāļĨāļ°āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ—āļēāļ‡āđ€āļ—āļ„āļ™āļīāļ„

React Native TypeScript Type-Safe Architecture

React Native āļāļąāļš TypeScript āļ›āļĩ 2026: āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄ Type-Safe āđāļĨāļ°āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ‡āļēāļ™

āļŠāļĢāđ‰āļēāļ‡āđāļ­āļ› React Native āđāļšāļš type-safe āļ”āđ‰āļ§āļĒ TypeScript, Codegen, TurboModules āđāļĨāļ° Strict TypeScript API āļ„āļĢāļ­āļšāļ„āļĨāļļāļĄāļĢāļđāļ›āđāļšāļšāļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄ, typed navigation āđāļĨāļ°āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ‡āļēāļ™āļ›āļĩ 2026

āđāļœāļ™āļ āļēāļžāđ€āļ§āļīāļĢāđŒāļāđ‚āļŸāļĨāļ§āđŒāļāļēāļĢāļžāļąāļ’āļ™āļē edge-to-edge Android āļ”āđ‰āļ§āļĒ React Native 0.86

React Native 0.86 āđƒāļ™āļ›āļĩ 2026: Edge-to-Edge Android, DevTools āđāļĨāļ°āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āđ€āļŠāļĩāđˆāļĒāļ§āļŠāļēāļ React Native 0.86 āļžāļĢāđ‰āļ­āļĄāļāļēāļĢāļĢāļ­āļ‡āļĢāļąāļš edge-to-edge Android 15, āļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡ DevTools āđāļĨāļ°āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāđ€āļŠāļīāļ‡āļ›āļāļīāļšāļąāļ•āļī āļ„āļđāđˆāļĄāļ·āļ­āļ‰āļšāļąāļšāļŠāļĄāļšāļđāļĢāļ“āđŒāļžāļĢāđ‰āļ­āļĄāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ‚āļ„āđ‰āļ”