Начать проект

Обсудим проект?

Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности.

Отправлено!

Спасибо за заявку, мы свяжемся с вами в ближайшее время!

React Native в 2026: как устроен, кому подходит и когда лучше Flutter

React Native и Flutter — выбор стека для кроссплатформенного приложения

Вопрос обычно звучит так: подрядчик предложил React Native, а знакомый говорит, что все ушли на Flutter — кому верить. Сразу раскроем карты: мы в Code Pilots делаем мобильные приложения на Flutter и на React Native не работаем. Поэтому дальше — не защита своего стека, а разбор, при каких ограничениях выбор одного или другого меняет результат проекта.

Если совсем коротко. React Native в 2026 году — не тот фреймворк, о котором писали в 2022: моста больше нет, JavaScript вызывает нативный код напрямую, а Expo стал стандартным тулчейном. По производительности разрыв с Flutter сократился настолько, что технический спор перестал быть решающим.

Выбор теперь про другое: кто будет писать и поддерживать код, какой у продукта интерфейс и как быстро нужно выйти в сторы. JavaScript-команда с опытом React разумно останется на React Native. Если команды нет, а интерфейс нестандартный и важна одинаковая картинка на всех устройствах — выигрывает Flutter.

Что такое React Native и как он устроен

React Native — фреймворк от Meta, который позволяет писать мобильные приложения на JavaScript и TypeScript, используя подход React. Ключевое отличие от веб-обёрток: интерфейс собирается из настоящих нативных компонентов платформы, а не рисуется внутри браузерного окна.

Разница между такими подходами — отдельная тема; кто путает гибридные приложения с кроссплатформенными, найдёт разбор в материале про нативную, гибридную и кроссплатформенную разработку.

Практическая ценность React Native всегда была в одном: если в компании есть веб-команда на React, она может делать мобильное приложение почти тем же инструментом. Это не маркетинг, а реальная экономия на найме и обучении — и главный аргумент фреймворка до сих пор.

Второй элемент экосистемы, без которого сейчас не обходится ни один проект, — Expo. Изначально это была надстройка «для новичков», сегодня это стандартный набор инструментов: сборка, обновления, работа с нативными модулями, публикация. Проект на React Native без Expo в 2026 году — скорее исключение, требующее объяснения.

Что изменила новая архитектура

Главные претензии к React Native касались моста — прослойки, через которую JavaScript общался с нативной частью, упаковывая данные в JSON. Мост давал задержки в анимациях, тормозил длинные списки и делал производительность непредсказуемой.

С января 2026 года эта история закрыта: новая архитектура стала единственной, а мост полностью удалён начиная с версии 0.82. Вместо него работают три механизма.

JSI — прямой вызов нативного кода из JavaScript через C++, без сериализации в JSON. Это фундамент, на котором держится всё остальное.

Fabric — новый рендерер, синхронизирующий поток интерфейса с потоком JavaScript. Отсюда корректные синхронные измерения вёрстки и заметно более плавные анимации.

TurboModules — нативные модули, которые подгружаются только тогда, когда нужны. Меньше памяти и быстрее старт приложения.

Что это значит для заказчика: аргумент «React Native тормозит» устарел. Сравнения производительности, написанные до 2025 года, описывают другой фреймворк — их нельзя брать в основу решения.

Что это значит для действующих проектов: приложения, которые годами жили на старой архитектуре, придётся переводить. Библиотеки, не обновлённые под новую архитектуру, отваливаются, а самописные нативные модули требуют переписывания.

Если у вас RN-приложение старше двух-трёх лет, это отдельная работа с отдельной оценкой, и она не про новые функции. Как устроена клиентская часть и почему такие обновления затрагивают приложение целиком — в материале про архитектуру мобильного приложения.

Новая архитектура React Native: JSI, Fabric, TurboModules вместо моста

Спор «что быстрее» в 2026 году потерял смысл: и React Native, и Flutter упираются не во фреймворк, а в архитектуру приложения.

Flutter или React Native: сравнение по делу

Критерий React Native Flutter
Язык и подход JavaScript и TypeScript, React-подход, знакомый веб-разработчикам Dart, собственная модель виджетов, изучается с нуля
Как рисует интерфейс Нативными компонентами платформы Своим движком; одинаковая картинка на всех устройствах
Производительность После перехода на JSI и Fabric разрыв с Flutter сократился до незначимого для большинства продуктов Стабильно предсказуемая, особенно в сложных анимациях
Ощущение платформы Ближе к «родному» виду iOS и Android из коробки Точный контроль дизайна, но платформенные привычки настраиваются вручную
Экосистема Огромный JavaScript-пул пакетов, но не всё поддерживает новую архитектуру Меньше пакетов, зато выше доля актуальных под текущие версии
Найм Кадровый рынок в разы больше: React-разработчик переходит в RN за месяц-два Специалистов меньше, но в России они пока обходятся дешевле
Стабильность API Экосистема быстро меняется, обновления требуют внимания Обновления предсказуемее, ломающих изменений меньше
Кому исторически подходит Продуктам, у которых уже есть React-команда Продуктам со сложным кастомным интерфейсом и высокими требованиями к единообразию

Про пакеты полезно уточнение, которое обычно опускают: в npm действительно на порядки больше библиотек, чем в pub.dev, но это вся JavaScript-экосистема, а не мобильные решения. Для мобильного проекта важнее не общее число, а актуальность конкретных нужных библиотек — и здесь после перехода на новую архитектуру у React Native появился отдельный чек-лист проверок.

Поможем выбрать стек под ваш продукт

Посмотрим на функции, команду и сроки и скажем, где выбор реально влияет на результат, а где спор бессмысленный.

Обсудить проект

Кому подходит React Native

Честный список ситуаций, где React Native — рациональный выбор:

  • У вас есть веб-команда на React. Те же люди, тот же язык, общая часть логики. Это самый весомый аргумент, и он перекрывает большинство технических нюансов.
  • Нужен максимально широкий рынок найма. Заменить или добить команду проще: JavaScript-разработчиков на рынке в разы больше.
  • Интерфейс близок к стандартному для платформ, без тяжёлой кастомной графики и нестандартных анимаций.
  • Планируется общий код с веб-версией — часть логики, типы, работа с API переиспользуются.
  • Проект уже на React Native. Переписывать работающее приложение без причины — худшая идея из возможных.

В этих случаях спор о стеке не имеет практического смысла: команда и найм важнее фреймворка, а технический разрыв в 2026 году слишком мал, чтобы перекрыть организационные плюсы.

Почему мы выбрали Flutter

Наша позиция объясняется профилем проектов, а не абстрактной любовью к технологии.

Предсказуемая картинка. Flutter рисует интерфейс своим движком, поэтому дизайн выглядит одинаково на десятках устройств — от флагманов до бюджетных Android. Для продуктов с кастомным брендовым интерфейсом это снимает целый класс правок.

Меньше зависимость от чужой экосистемы. Библиотек меньше, но обновляются они предсказуемее, а ломающих изменений в проекте меньше — на длинных проектах это дешевле.

Один кластер компетенций внутри. У нас Flutter-разработчики работают вместе годами, есть собственные каркасы приложений с авторизацией, правами и тестовым контуром. Старт нового проекта не начинается с нуля, поэтому кликабельный прототип появляется на первой неделе.

Проверено на нагрузке. Для VK Fest мы собрали MVP за два месяца командой из пяти человек: 90 тысяч скачиваний, до 100 тысяч одновременных пользователей и первое место в Google Play. Для PetShop приложение на готовой API-платформе вышло за две недели.

Где нужна нативная вставка, мы её делаем — это нормальная практика для обоих фреймворков. А React Native не берём именно потому, что не хотим держать вторую экосистему на уровне «умеем немного»: в мобильной разработке цена поверхностной экспертизы всегда всплывает в поддержке.

Когда кроссплатформа не подходит вообще

Есть класс задач, где спор RN против Flutter не имеет смысла, потому что нужна нативная реализация — полностью или для отдельного модуля.

Задача Почему нативно Что делают на практике
Тяжёлая графика и обработка видео в реальном времени Нужен прямой доступ к графическому конвейеру и кодекам Нативный модуль внутри кроссплатформенного приложения
Сложная работа с Bluetooth, датчиками, промышленным оборудованием Поведение зависит от платформенных API и прошивок Нативный слой плюс кроссплатформенный интерфейс
Фоновая работа с жёсткими требованиями Ограничения энергосбережения на каждой платформе свои Нативные сервисы, интерфейс общий
Часы, ТВ, автомобильные платформы Отдельные SDK и правила интерфейса Отдельное нативное приложение
Приложения с требованиями по сертификации Проверяющая сторона предъявляет требования к платформенным механизмам Нативная реализация критичных частей

Практический вывод: кроссплатформа не бинарный выбор. Правильная постановка вопроса — «какие 5–10% функциональности потребуют нативного кода», а не «нативно или нет».

Что спросить у подрядчика, который предлагает React Native

Если стек уже предложен, проверять надо не фреймворк, а понимание подрядчиком его особенностей. Шесть вопросов и то, что вы хотите услышать в ответ:

Вопрос Хороший ответ Тревожный ответ
На какой версии и архитектуре будете делать? Актуальная версия, новая архитектура, Expo как тулчейн «Разберёмся по ходу», версия не называется
Какие библиотеки закладываете и все ли они под новую архитектуру? Список с проверкой поддержки и планом на замену «Библиотек полно, найдём»
Что будете писать нативно? Конкретные модули: пуши на устройствах без сервисов Google, работа с камерой, фоновые задачи «Всё сделаем на React Native»
Как решается публикация в RuStore и доставка уведомлений? Отдельный канал доставки, тесты на реальных устройствах «Firebase закроет всё»
Кто поддерживает приложение после релиза и по какому SLA? Названы люди, регламент и сроки реакции «Обращайтесь, если что»
Что останется у нас: код, доступы, сборочный контур? Репозиторий, ключи, инструкция сборки на вашей стороне Всё живёт у подрядчика

Последний пункт важнее выбора между RN и Flutter. Приложение, собранное на чужих ключах и в чужом репозитории, вы не сможете передать другой команде — и тогда стек уже не имеет значения.

Кадры и ставки: что происходит на российском рынке

Стек выбирают на годы, поэтому кадровый вопрос весит больше бенчмарков.

Пул специалистов. JavaScript-разработчиков на рынке кратно больше, чем Flutter-разработчиков, и React-специалист переходит в React Native за один-два месяца практики. Для компании, которая собирает команду в штат, это ощутимый плюс.

Стоимость. В России Flutter-разработчики пока обходятся работодателю дешевле — рынок ещё не выровнялся. Разница не так велика, чтобы решать ей исход, но в смете на год она заметна.

Риск «одного разработчика». Более узкий рынок Flutter означает: если приложение писал один человек и ушёл, замену искать дольше. Лечится не выбором стека, а требованиями к коду и документации на входе.

Что важнее обоих пунктов. Кто будет поддерживать приложение через два года: ваша команда, подрядчик или никто. Ответ «никто» встречается чаще, чем кажется, — и тогда любой стек становится проблемой.

Что решает выбор стека: команда, интерфейс, платформенные функции

Стек выбирают не по бенчмаркам, а по тому, кем вы будете его поддерживать через два года.

Сроки и стоимость

Кроссплатформенная разработка экономит на том, что одна команда пишет один код под две платформы: по рыночным оценкам это заметно сокращает и сроки, и бюджет по сравнению с двумя параллельными нативными командами. Но экономия не бесконечна: чем больше платформенной специфики, тем сильнее кроссплатформа приближается по стоимости к нативной разработке.

На сроки сильнее влияет не фреймворк, а объём интеграций и требования к дизайну. Одинаковое по функциям приложение на RN и на Flutter выходит примерно за одно время, если команда владеет своим инструментом. Порядок бюджета под свой объём экранов и интеграций можно посчитать в бесплатном калькуляторе.

Ориентиры по нашим работам: мобильная разработка начинается от 1,8 млн ₽, аудит кода и архитектуры существующего приложения — от 200 до 600 тыс. ₽. Точная сумма зависит от числа экранов, интеграций и офлайн-требований: оценка проекта бесплатная — опишите задачу. Как складывается смета мобильного проекта в деталях, разобрано в материале про стоимость разработки приложения.

Что происходит с приложением через год

Мобильное приложение — не сайт: оно живёт в чужих правилах, и правила меняются без вашего участия. Это часть стоимости владения, которую в первой смете обычно не видят.

Платформы поднимают требования. Apple и Google регулярно повышают минимальную версию SDK, под которую собирается приложение, и без обновления сборка перестаёт принимать в стор. Работы немного, но она обязательная и повторяется ежегодно.

Фреймворк уходит вперёд. У React Native релизы выходят часто, и экосистема ждёт обновления вместе с ними; крупный переход вроде новой архитектуры случается редко, но стоит отдельного проекта. Flutter обновляется предсказуемее, с меньшим числом ломающих изменений — на длинных проектах это заметная экономия нервов.

Библиотеки перестают поддерживаться. Автор пакета потерял интерес — и через год у вас зависимость без обновлений безопасности. Проверять актуальность нужно не только на старте, но и в ходе поддержки.

Устройства и ОС меняются. Новые размеры экранов, новые ограничения энергосбережения, новые правила уведомлений. Всё это ловится тестированием на реальных устройствах, а не в эмуляторе.

Практический вывод: закладывайте регулярное обслуживание отдельной строкой — обновления версий, зависимости, тесты на новых устройствах. Приложение, к которому не прикасались год, обычно требует не «пары правок», а спринта работы, и это правило не зависит от того, RN у вас или Flutter.

Миграция между стеками

Вопрос «переписать RN-приложение на Flutter» задают часто, и в большинстве случаев правильный ответ — не переписывать.

Когда миграция не нужна. Приложение работает, команда его поддерживает, критичных ограничений нет. Переписывание с нуля означает несколько месяцев без новых функций и повторение всех старых ошибок в новом коде.

Когда о миграции стоит думать. Кода никто не поддерживает, а команду на нём собрать не получается. Приложение застряло на старой архитектуре, а нужные библиотеки под новую уже не выпускаются. Производительность упирается в решения, заложенные на старте. Или продукт меняется настолько, что новая версия — это другое приложение.

Как это делают. Не «большим взрывом», а по частям: новый функциональный блок пишется на целевом стеке, старое приложение продолжает работать, экраны переезжают постепенно. Переносится серверная часть, API и логика; интерфейс и нативные модули переписываются.

Перед решением полезен аудит: сколько кода живого, что покрыто тестами, где узкие места, какие библиотеки без поддержки. По итогам обычно выясняется, что дешевле обновить архитектуру существующего приложения, чем начинать заново.

Оценим состояние вашего приложения

Аудит кода и архитектуры покажет, что можно развивать дальше, а что придётся переписать — с цифрами, а не на глаз.

Получить консультацию

Публикация в России: RuStore и сторы

Техническая часть выбора стека почти не влияет на публикацию — влияет география.

Три канала вместо двух. App Store, Google Play и RuStore. Для российской аудитории RuStore перестал быть опцией: на части устройств это единственный работающий магазин.

Устройства без сервисов Google. Стандартная доставка push-уведомлений через Firebase на них не работает. Нужен альтернативный канал — и это архитектурное решение, а не настройка перед релизом. Оба фреймворка требуют здесь ручной работы; подробности зависят от платформы, и на Android их больше — как и всей платформенной специфики в разработке Android-приложений.

Зарубежные SDK. Часть аналитики, платежных и картографических решений в России недоступна или работает нестабильно. Список замен формируется на этапе проектирования, иначе на релизе выясняется, что половина интеграций не проходит.

Сборы платформ. Apple берёт плату за аккаунт разработчика ежегодно, Google — разово, RuStore на момент публикации бесплатен. Это не главная строка бюджета, но её стоит держать в плане.

Ошибки выбора

Опираться на сравнения 2022–2024 годов. До удаления моста React Native был другим фреймворком; старые бенчмарки описывают несуществующую ситуацию.

Выбирать стек без учёта команды. Технически лучший вариант, который некому поддерживать, дороже среднего варианта с доступным наймом.

Переписывать работающее приложение из-за моды. Миграция оправдана ограничениями, а не тем, что «Flutter сейчас популярнее».

Считать, что кроссплатформа исключает нативный код. В любом серьёзном проекте есть модули, которые пишутся нативно; их надо заложить в план, а не обнаруживать в середине.

Игнорировать российскую специфику. RuStore, устройства без сервисов Google и недоступные SDK всплывают на релизе и стоят недель работы.

Верить студии, которая владеет одним стеком и говорит, что он лучший для всего. Мы тоже владеем одним — поэтому и объясняем, при каких ограничениях он не подходит.

С чего начать

Три вопроса, которые снимают спор о стеке. Первое — кто будет писать и поддерживать приложение: своя команда, подрядчик или смешанный вариант; если есть React-разработчики, чаша сильно склоняется к React Native. Второе — насколько нестандартный интерфейс: брендовые анимации и сложная графика — довод за Flutter. Третье — какие функции требуют платформенного кода: Bluetooth, фоновые задачи, оборудование, часы.

С этими ответами выбор занимает один разговор, а не месяц сравнений. И если приложение уже существует, начинать стоит не с выбора стека, а с оценки того, что есть.

С чего начать: кто поддерживает код, насколько нестандартный интерфейс, что нужно нативно

Обсудим ваше приложение?

Кликабельный прототип на первой неделе, рабочий продукт за два-три месяца. Оценка бесплатная.

Обсудить проект

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

Технически они сравнимы: после перехода React Native на новую архитектуру с JSI и Fabric разрыв в производительности перестал быть значимым для большинства продуктов. Выбор решают три вещи: наличие React-команды (довод за RN), сложность кастомного интерфейса и требования к одинаковому виду на всех устройствах (довод за Flutter) и то, кем вы будете поддерживать код через два года.

Это утверждение устарело. Задержки возникали из-за моста между JavaScript и нативной частью; мост полностью удалён в версии 0.82, а с января 2026 года новая архитектура стала единственной. Сейчас узким местом становится не фреймворк, а архитектура приложения: тяжёлые списки, лишние перерисовки, неоптимальная работа с сетью и изображениями.

Нет. Мы работаем на Flutter и добавляем нативные модули там, где это нужно, — держать вторую экосистему на уровне «умеем немного» считаем нечестным по отношению к заказчику. Если у вас приложение на React Native, мы можем сделать аудит кода и архитектуры и посчитать варианты: обновление существующего приложения или поэтапная миграция.

В большинстве случаев нет. Переписывание с нуля — это месяцы без новых функций и риск повторить старые ошибки. Думать о миграции стоит, если приложение застряло на старой архитектуре и нужные библиотеки не обновляются, команду на этом стеке собрать не удаётся или производительность упирается в решения, заложенные на старте. Делают её по частям, а не разом.

Почти всё, но не всегда экономично. Тяжёлая графика и обработка видео, сложная работа с Bluetooth и промышленным оборудованием, жёсткие фоновые задачи, приложения для часов и ТВ — это нативные модули или отдельные нативные приложения. Правильный вопрос на старте: какие 5–10% функциональности потребуют платформенного кода, — и заложить их в план сразу.

Разработка с Code Pilots

Code Pilots — студия заказной разработки полного цикла: веб- и мобильные продукты с нетривиальной бизнес-логикой, интеграциями и высокими нагрузками. В мобильной разработке наш стек — Flutter, с нативными вставками там, где без них не обойтись; React Native мы не берём и говорим об этом сразу.

Внутри — кластер Flutter-разработчиков, который работает вместе годами, плюс аналитики, дизайнеры, backend, QA и DevOps: команда middle+ и senior без джунов. Начинаем не с нуля — есть свои каркасы приложений с авторизацией, правами и тестовым контуром, поэтому кликабельный прототип появляется на первой неделе, а рабочий продукт собирается за два-три месяца.

Если у вас уже есть приложение — на любом стеке — начнём с аудита кода и архитектуры и честно скажем, что стоит развивать, а что переписывать. Обсудить проект →

Обсудим проект?

Заполните форму или напишите нам
на airmail@code-pilots.ru
Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности.

Спасибо!

Спасибо за сообщение, мы свяжемся
с вами в ближайшее время!
success