В последние 2-3 месяца по сети пролетела волна репостов двух статей от Airbnb и Udacity под общим заголовком "Мы сворачиваем разработку на React Native". Как и любая другая негативная повестка, эти статьи довольно широко разлетелись по сети. При этом читатели часто за основным заголовком не видят, например, что в том же Udacity разработчики в целом позитивно отнеслись к опыту работы с RN, а отказываются по другим причинам.
Краткий обзор статей с опытом использования React Native
В целом отрицательный опыт
- React Native at Airbnb — серия из 5 статей о двухлетнем опыте использования RN для реализации порядка 500 экранов в iOS и Android приложениях. Является, пожалуй, самым "шумным" примером отказа от RN в последнее время, т.к. Airbnb известны своим вкладом в open-source и в RN экосистему в частности.
- React Native: A retrospective from the mobile-engineering team at Udacity — история о том, как в Udacity использовали RN для реализации экспериментальных фичей в рамках нативного приложения и почему они решили в дальнейшем отказаться от RN. Стоит отметить, что с RN экспериментировала команда из одного iOS-разработчика и двух Android, которая спустя 1.5 года выросла до 4 iOS и 3 Android-разработчиков. Отметим, что все это время в команде не было ни одного frontend разработчика. Вывод статьи — это не "отказ от RN", а "возможно, iOS команда будет делать что-либо в будущем на RN для iOS, т.к. в целом им понравилось больше [чем Android команде]".
Положительный опыт
- Building Skype on ReactXP — инженеры Microsoft о разработке библиотеки Reactxp поверх RN для реализации кросс-платформенного обновленного Skype. Reactxp даёт возможность релизить RN приложения также в Веб и Windows 10 (UWP).
- Supporting React Native at Pinterest — положительный опыт Pinterest реализации вторичных экранов на React Native, приняли решение использовать RN в дальнейшем.
- React Native at Instagram — опыт Instagram о переводе с WebView на RN ряда вторичных экранов в приложении на iOS и Android. Есть немного про то, как они улучшали скорость первоначального запуска приложения. В среднем на 5 экранах удалось добиться 92% шаринга кода, что авторами трактуется как увеличение скорости разработки на эти 92%.
- Using React Native: One Year Later — опыт Discord (ежедневная аудитория 2 млн., альтернатива Slack) с точки зрения iOS разработчика, которому в целом все понравилось и планируют использовать RN дальше. Разработчик отмечает, что удалось шарить порядка 95% кода с веб-версией, за счет использования Flux архитектуры. Также довольно быстро собрали Android версию на RN, но она не удовлетворила требованиям скорости работы, поэтому её решили писать нативно.
- Why Discord is Sticking with React Native — еще одна совсем свежая статья (26 июля 2018 года), почему Discord спустя 3 года продолжает использовать RN. Авторы подчеркивают, что RN даёт возможность быстро развиваться iOS-версии с небольшой командой из 2 разработчиков.
- Powering UberEATS with React Native and Uber Engineering — опыт Uber о реализации некоторых экранов в iOS-приложении UberEATS заказа и доставки еды. В основном рассказывается об архитектуре приложения, схожей с архитектурой обычного web react+redux+saga приложения.
- 18 Months of Experience with React Native at Netguru: Lessons Learned, Mistakes Made and a Look into the Future — 1.5 года и 20 проектов опыта использования React Native довольно крупной веб-студией с 15 RN разработчиками.
- How We Use React Native Within Our Products At Runtastic — 130 млн. зарегистрированных пользователей.
Свой опыт подробно описывают далеко не все, однако известно, что приложения Walmart, Bloomberg, SoundCloud, Wix и др. либо полностью написаны на RN, либо реализуют на RN вторичные экраны.