Что такое 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.