Перейти к содержимому

1. Что такое React Native

React Native — это фреймворк от Meta (Facebook) для создания нативных мобильных приложений с использованием JavaScript и React. Одна кодовая база — два приложения: iOS и Android.

React Native не использует WebView (как Cordova/PhoneGap). Вместо этого JavaScript код выполняется в отдельном потоке и общается с нативным кодом через Bridge (старая архитектура) или JSI — JavaScript Interface (новая архитектура).

[JavaScript Thread] ←→ [Bridge / JSI] ←→ [Native Thread (iOS/Android)]
  • Асинхронная коммуникация через JSON сообщения
  • Узкое место: сериализация/десериализация данных
  • До 2022 года — основная архитектура
  • JSI: прямой вызов нативных функций из JS без сериализации
  • Fabric: новый движок рендеринга (синхронный, поддерживает Concurrent React)
  • TurboModules: ленивая загрузка нативных модулей
  • Включена по умолчанию в React Native 0.74+
React NativeFlutterNativе (Swift/Kotlin)
ЯзыкJavaScript/TypeScriptDartSwift / Kotlin
UIНативные компонентыСвои виджеты (Canvas)Платформенные
ПроизводительностьОтличнаяОтличнаяМаксимальная
Размер экосистемыОгромный (npm)РастётОтдельные
Переиспользование кодаiOS + AndroidiOS + Android + WebНет
КомпанииMeta, Microsoft, ShopifyGoogle, AlibabaApple, Google
  • Facebook / Meta — Facebook, Instagram
  • Microsoft — Teams, Xbox apps
  • Shopify — мобильное приложение
  • Discord — мобильный клиент
  • Coinbase — криптовалютный кошелёк
Запуск → Metro Bundler → JS Bundle → Hermes Engine → JSI → Native Renderer → UI

Hermes — движок JavaScript, оптимизированный для мобильных устройств. Компилирует JS в байткод заранее (AOT), ускоряя время запуска приложения на 40-50%.

Вот как выглядит базовый React компонент vs React Native компонент: