React Native

Фреймворк для мобильных приложений на JavaScript и React: один код дает настоящие приложения для iOS и Android.

React Native — фреймворк для создания мобильных приложений, который компания Facebook (сейчас Meta) выпустила в 2015 году. Приложение пишут на JavaScript или TypeScript по тем же принципам, что и интерфейсы на React, а на выходе получаются приложения для iOS и Android. Важное отличие от «сайта в обертке»: экраны строятся из настоящих системных элементов интерфейса, поэтому приложение выглядит и ощущается как родное.

Пример

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

export function OrderCard({ order, onPay }) {
  return (
    <View>
      <Text>Заказ № {order.number} — {order.amount} ₽</Text>
      <Pressable onPress={() => onPay(order)}>
        <Text>Оплатить</Text>
      </Pressable>
    </View>
  );
}

Компоненты View, Text и Pressable превращаются в системные элементы iOS и Android. Логика — та же, что в веб-версии на React, и ее можно частично переиспользовать.

Плюсы

  • Один код для двух платформ — обычно 80–90% общего кода, а значит, меньше команда и сроки.
  • Общие знания с вебом. Разработчики React быстро осваивают мобильную разработку, а логику и проверку данных можно делить с сайтом.
  • Быстрая разработка. Изменения видны на устройстве за секунды, без полной пересборки.
  • Обновления без магазина. Изменения JavaScript-части можно доставлять пользователям напрямую, в рамках правил магазинов приложений.

Ограничения

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

В 2024 году основной стала новая архитектура React Native, которая убрала медленный «мост» между JavaScript и нативным кодом и заметно ускорила взаимодействие.

С чего начинают проект

Официальная документация рекомендует начинать с фреймворка Expo, который берет на себя сборку, обновления и доступ к функциям устройства. Android-приложения публикуют в Google Play и в российском магазине RuStore. React Native хорошо подходит для личных кабинетов, клиентских приложений сервисов, внутренних приложений для сотрудников — всего, где важны формы, списки, уведомления и работа с API. Альтернатива с собственным движком отрисовки — Flutter. Мобильные приложения входят в разработку и сопровождение информационных систем.