Один код — две платформы
Нативная разработка под 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.
