← Ко всем open source проектам

React Native

react/react-native

React Native — фреймворк для создания мобильных приложений на React с нативным интерфейсом для iOS и Android.

Форки 25,181
Автор react
Язык C++
Лицензия MIT
Обновлено 2026-06-27

Что это такое

React Native — мобильный фреймворк из экосистемы React. Его идея проста: разработчик описывает экран компонентами, а библиотека связывает этот компонентный код с нативными представлениями iOS и Android.

Проект появился внутри Meta как способ быстрее делать мобильные продукты без полного раздвоения команд под Objective-C, Swift, Java и Kotlin. Поэтому репозиторий хранит не только JavaScript-часть, но и значительный слой на C++, Java, Objective-C++ и платформенных сборочных файлах.

Что внутри репозитория

Внутри находятся ядро рантайма, набор базовых компонентов, мосты к платформенным API, код нового архитектурного слоя с Fabric и TurboModules, тесты, примеры и инфраструктура сборки. Это не библиотека виджетов, а фундамент, на котором строятся приложения и дополнительные пакеты.

Сильная сторона репозитория в том, что он показывает всю цену кроссплатформенности: здесь рядом живут JavaScript, C++, Android, iOS и документация для авторов нативных модулей.

Как используют

Команды берут React Native, когда хотят разделить большую часть логики интерфейса между iOS и Android, но сохранить доступ к нативным возможностям устройств. Типичный продукт все равно содержит платформенный код, особенно для камер, уведомлений, платежей и нестандартной навигации.

Для небольших команд проект ценен быстрым стартом и большим набором готовых библиотек. Для крупных команд важнее другое: общая компонентная модель, общий язык для экранов и возможность постепенно переносить отдельные части существующего приложения.

Сильные стороны и ограничения

Главное преимущество React Native — знакомая React-модель, быстрая итерация интерфейса и большой рынок разработчиков. Один и тот же компонентный подход можно использовать в вебе и на мобильных платформах, хотя код редко переносится без адаптации.

Ограничение в том, что абстракция не отменяет iOS и Android. Сложная анимация, тяжелые списки, нативные SDK и редкие устройства требуют понимания платформы. Если приложение почти целиком завязано на низкоуровневые возможности телефона, React Native становится не заменой нативной разработки, а слоем поверх нее.

Для React Native также важна связь с нативными модулями. Хорошая команда заранее решает, какие части останутся на Swift, Kotlin или Java, а какие можно держать в общем компонентном слое. Это снижает риск, что мобильное приложение станет набором обходных решений вокруг платформенных ограничений.

В сопровождении особенно важны версии React, Android SDK, Xcode, сборочных инструментов и сторонних библиотек. Если эти части обновляются хаотично, скорость разработки быстро теряется, даже когда сама идея общего кода остается привлекательной.

Пример

Небольшой экран React Native

Пример показывает обычную компонентную модель: состояние хранится в React, а на экране появляются нативные Text и Pressable.

Язык: React
import { useState } from 'react'
import { Pressable, Text, View } from 'react-native'

export function CounterScreen() {
  const [count, setCount] = useState(0)

  return (
    <View>
      <Text>Нажатий: {count}</Text>
      <Pressable onPress={() => setCount(count + 1)}>
        <Text>Добавить</Text>
      </Pressable>
    </View>
  )
}