Что такое React Native

Разбираемся, что такое React Native, почему это «настоящие» нативные приложения, а не сайт в обёртке, и какой код вы будете писать.

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

Один язык — две платформы

Раньше, чтобы выпустить приложение, нужно было писать его дважды: на Swift или Objective-C для iPhone и на Kotlin или Java для Android. Две команды, два кода, двойные затраты. React Native решает эту проблему: вы пишете один код на знакомом JavaScript и React, а он запускается на обеих платформах.

При этом важно понимать: React Native — это не сайт, упакованный в приложение. Когда вы пишете компонент Text, на iOS он превращается в нативный UILabel, а на Android — в TextView. Пользователь получает привычные нативные элементы: плавную прокрутку, родную клавиатуру, системные жесты.

Чем это отличается от React для веба

Если вы знаете React, 80% знаний переносятся напрямую: компоненты, пропсы, состояние через useState, эффекты через useEffect — всё то же самое. Меняется только «алфавит» элементов. В вебе вы строите интерфейс из HTML-тегов, в React Native — из специальных компонентов.

Веб (React)React NativeНазначение
<div><View>контейнер, блок
<p>, <span><Text>любой текст
<img><Image>картинка
<input><TextInput>ввод текста

Вот как выглядит простейший экран. Обратите внимание: нет ни div, ни p — только компоненты из библиотеки react-native.

import { View, Text } from "react-native";

export default function App() {
  return (
    <View>
      <Text>Привет, мобильный мир!</Text>
    </View>
  );
}

Если бы вы написали здесь <div> или <p>, приложение упало бы с ошибкой: таких компонентов в React Native просто нет.

Как это работает «под капотом»

Ваш JavaScript исполняется в отдельном движке (JS-движок устройства), а нативная часть отвечает за отрисовку UI. Между ними есть «мост» (bridge, а в новой архитектуре — JSI), по которому передаются команды: «создай кнопку», «обнови текст». Вам как разработчику этот механизм почти не виден — вы просто пишете компоненты, а фреймворк сам общается с нативным слоем.

Что можно построить

  • Соцсети и мессенджеры (Instagram, Discord частично используют RN).
  • Финансовые приложения, маркетплейсы, доставку.
  • Внутренние корпоративные приложения, MVP стартапов.

Итог

  • React Native — один код на JS/React под iOS и Android.
  • Интерфейс — из настоящих нативных компонентов, а не из HTML.
  • Знания React переносятся почти полностью, меняются только базовые компоненты: View вместо div, Text вместо p.
Проверьте себя
1. Что такое React Native?
AСпособ открыть обычный сайт внутри мобильного приложения
BФреймворк для написания нативных iOS- и Android-приложений на JS/React
CБиблиотека для верстки сайтов под мобильные браузеры
DЯзык программирования, заменяющий Swift и Kotlin
2. Во что превращается компонент Text на устройстве?
AВ HTML-тег <p> внутри встроенного браузера
BВ картинку с текстом
CВ нативный элемент платформы (UILabel на iOS, TextView на Android)
DВ элемент span веб-страницы
3. Какой компонент в React Native заменяет привычный <div>?
ABlock
BContainer
CView
DDiv
Поддержать проект