Назад

React Native: плюсы и минусы фреймворка в 2020 году

Привет, я Саша Пуртов, тимлид команды React Native разработки в Purrweb. Делюсь впечатлениями о том, насколько хорош фреймворк в бою, на реальных проектах.

Без красивых историй про то, как «Facebook перевернул мобильную разработку, подарив миру универсальную технологию». Это понятная статья «в лоб» о том, какие у React Native плюсы и минусы. А раз так, давайте сразу к сути 🙂

Преимущества React Native

Общая кодовая база. Фактически вы разрабатываете 2 отдельные версии приложения (под iOS и Android). Да, две версии приложения, но код в них на 65-70% одинаковый.

Общий код минимизирует количество багов по ходу разработки (объем кода будет почти в 2 раза меньше) и значительно упрощает поддержку продукта в будущем. Для стартапов это выливается в дополнительные дни и недели, которые можно потратить на активности со «звездочкой» — например, на проработку маркетинговой стратегии, анализ способов монетизации и планирование будущих итераций развития продукта.

READ MORE  SCRUM, щеночки и 5 000+ скачиваний в Google Play: как мы делали немецкое приложение для владельцев домашних животных

Максимально похож на нативный. В отличие от других кроссплатформенных решений, вроде Cordova, Ionic или Titanium, которые имитируют среду браузера (все равно, что сайт, который притворяется мобильным приложением), React Native использует нативные API.

Нет никаких проблем с табами и скроллированием, а интерфейс ведет себя так же отзывчиво, как и в классическом приложении — без WebView и схожих инструментов под капотом

Говоря о том, какой перворфманс можно получить с React Native, предлагаю посмотреть на экраны приложения, которое мы разработали в Purrweb:

React Native плюсы и минусы Сервис аренды жилья PAD. Свайп выглядит так, как если бы вы разрабатывали на Java/Swift

Различные наборы компонентов и библиотек для React Native (преимущество всех хороших фреймворков) помогают закрывать performance-задачи по ходу разработки продукта. Нужно только убедиться, что библиотека, которую планирует использовать ваш разработчик, достаточно часто обновляется и поддерживается сообществом.

Кстати, раз уж говорим про плюсы и минусы React Native, давайте поговорим и про сообщество.

Большое комьюнити. Жирный плюс в том, что фреймворк начинает обрастать «проверенными» библиотеками от сообщества React Native. Такие либы очень хорошо поддерживаются, для них гораздо быстрее выходят багфиксы и патчи под новую версию фреймворка. Также есть репозиторий, в котором можно получить помощь, если что-то не заладилось с обновлением версии React Native.

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

Быстрый поиск подрядчика. Тратить уйму времени на поиск Swift и Java разработчиков не придется. Достаточно отыскать того, кто знает JavaScript, и можно стартовать. Если найдете того, кто разбирается в React (тот же RN, только для веба), будет еще лучше.

READ MORE  Разработка на React Native для «узких» задач. Кейс Purrweb

Вот еще несколько плюшек:

  • Fast Refresh — сильно ускоряет разработку приложения, так как практически любое изменение в коде компонента влечет за собой его мгновенное обновление (re-render) без изменения состояния.
  • JS-движок Hermes для Android-версии, ускоряет запуск приложения, уменьшает размер bundl’a и снижает потребление памяти.
  • Автолинковка нативных модулей — упрощает установку библиотек. Ненативщикам не нужно прописывать импорты, что сильно экономит время.

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

Недостатки React Native

Молодой фреймворк. Это (пока) не версия 1.0.0, поэтому некоторые компоненты все еще отсутствуют и сама технология довольно часто обновляется.

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

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

Сложно адаптировать под все андроиды — cлишком большой пул девайсов, очень много разных разрешений и оболочек. По факту, это скорее проблема разработки под андроиды, нежели самого React Native.

Где использовать?

О плюсах и минусах React Native я рассказал. Разрабатывать на этом фреймворке или нет — выбор напрямую зависит от специфики вашего проекта. Чтобы как-то это все подытожить, пара слов о том, где эта технология работает на 5 с плюсом.

Минимально жизнеспособный продукт (MVP). Если планируете тестировать бизнес-гипотезу и нужно функциональное решение с крутой визуализацией, React Native — это отличный выбор. Возможность одновременного выхода на Android и iOS-рынки позволит быстро собрать первую обратную связь.

Какой MVP можно получить на выходе?

React Native плюсы и минусыТакой же крутой, как эта система приложений для мероприятий. Активация браслета гостя в три простых шага

Все, о чем я здесь рассказал, включая плюсы и минусы React Native — опыт, полученный за время реализации десятков проектов. Текущих и тех, что успешно зарелизились и перешли в фазу поддержки. За React Native я #топлюибудутопить, тут же старался дать максимально честную и четкую картинку того, что имеем по факту. Надеюсь, получилось 🙂

READ MORE  Как мы готовили захват рынка фриланс поваров России. Кейс Purrweb

Хотел, чтобы статья про плюсы и минусы React Native была полезной и для коллег по цеху. Господа-разработчики, охотно делюсь списком must-have ресурсов для разработки на React Native: