📱React Native

Кросс-платформа (iOS/Android) на React (Facebook, 2015). JavaScript → нативные компоненты (мост). Hot reload, переиспользование веб-кода. Производительность ниже нативной (мост = bottleneck). Используют: Instagram, Airbnb (отказались 2018), Discord. Expo: фреймворк поверх RN (упрощает настройку).

📖4 мин чтения📊Уровень 6🗺️3 подтем📅16 апреля 2026 г.

Загрузка карты...

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

Нативная разработка под iOS и Android требует двух команд, двух языков, двух кодовых баз. Это дорого и медленно. React Native решает эту проблему: один JavaScript-код компилируется в нативные компоненты обеих платформ.

Создан Facebook в 2015 году. Принцип: «Learn once, write anywhere» — выучи раз (React), пиши для любой платформы.

Как это работает

React Native использует JavaScript для логики приложения, но рендерит настоящие нативные компоненты — не веб-виды. Кнопка в React Native — это UIButton на iOS и Button на Android. Это главное отличие от веб-оберток (Cordova/PhoneGap), которые показывают веб-страницу внутри приложения.

Традиционно использовался «мост» (Bridge) для связи JavaScript и нативного кода. Это было узким местом производительности. Новая архитектура (JSI, Fabric) убрала мост, значительно ускорив взаимодействие.

Компоненты

React Native предоставляет базовые кроссплатформенные компоненты: View (аналог div), Text, Image, TextInput, ScrollView, FlatList. Стилизация — через StyleSheet, похожий на CSS, но с camelCase.

Expo

Expo — инструментарий и платформа над React Native. Ускоряет начало разработки: не нужно настраивать нативные инструменты (Xcode, Android Studio). Expo Go позволяет тестировать приложение на телефоне мгновенно, сканировав QR-код. Минус: ограниченный доступ к нативным API без «ejecting».

Когда выбирать React Native

React Native оптимален, если: команда знает JavaScript/React, нужно быстро выйти на обе платформы, приложение не требует максимальной производительности (тяжёлая графика, AR). Для требовательных приложений лучше нативная разработка или Flutter.

Часто задаваемые вопросы

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