Connect with us

Разработка

Закат React Native в Airbnb

В начале прошлой недели Airbnb объявил о «закате» React Native разработки в компании и переходе на нативный подход. На Medium компания опубликовала серию из пяти статей и это четвертая, резюмирующая сложности технологии.

AppTractor

Опубликовано

/

     
     

Хотя многие команды полагались на React Native и планировали использовать его в обозримом будущем, мы, в конечном счете, не смогли достичь наших первоначальных целей. Существует ряд технических и организационных проблем, которые мы не смогли преодолеть, и дальнейшая разработка с React Native превратилась для нас в проблему.

В результате, мы будем двигаться вперед без React Native, мы заканчиваем использование технологии в Airbnb, реинвестируя все наши усилия обратно в нативную разработку.

Неспособность достичь целей

Двигаться быстрее

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

Поддерживать качество

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

Писать код один раз

Несмотря на то, что код React Native практически идентичен для разных платформ, только небольшой процент нашего приложения был написан на React Native. Кроме того, требуется большое количество переходной инфраструктуры, чтобы инженеры-разработчики могли эффективно работать. В результате мы поддерживали код на трех платформах вместо двух. Мы видели потенциал в совместном использовании кода между мобильными платформами и веб-сайтом, имели возможность расшарить несколько npm-пакетов, но помимо этого кроссплатформенность никогда особо не работала.

Улучшение опыта разработчиков

Опыт разработчиков с React Native оказался разноплановым. Например, время сборки значительно улучшилось. Однако отладка значительно ухудшилась. Подробности вы можете найти во второй статье.

Закат солнца будет осуществляться вручную

Поскольку мы не смогли достичь наших целей, мы решили, что React Native больше нам не подходит. В настоящее время мы работаем с командами для создания правильного плана перехода. Мы остановили разработку всех новых функций на React Native и планируем перевести большинство экранов с самым высоким уровнем трафика на нативный код к концу года. Этому способствует запланированный редизайн, который должен был произойти независимо от кодовой базы. Наша собственная инфраструктурная команда будет поддерживать React Native до 2018 года. В 2019 году мы начнем снижать поддержку и сокращать присутствие React Native, убирая его вклад в работу приложений.

В Airbnb мы твердо верим в open source. Мы активно используем и вносим вклад во многие проекты с открытым исходным кодом по всему миру, а также открываем некоторые из наших работ на React Native. По мере того, как мы будем отходить от  React Native, мы будем публиковать наши наработки для сообщества. Так, мы уже выложили react-native-maps и выложим native-navigation и lottie-react-native.

Все не так уж плохо

Хотя мы не смогли достичь своих целей с помощью React Native, инженеры, которые использовали React Native, как правило, получили вполне положительный опыт.

Из этих инженеров:

  • 60% описывают опыт работы как восхитительный.
  • 20% в общем положительно относятся к платформе.
  • 15% в общем отрицательно.
  • 5% сильно недовольны.
  • 63% инженеров выбрали бы React Native снова, если бы им предоставили такой шанс, а 74% готовы рассмотреть React Native для нового проекта.

Стоит отметить, что опрос проводился среди тех, кто уже выбрал React Native.

Эти инженеры написали 80,000 строк кода для 220 экранов, а также 40,000 строк JavaScript-инфраструктуры. Для справки, у нас кода примерно в 10 раз больше, а количество экранов на каждой платформе больше в 4 раза.

React Native взрослеет

Эта серия статей отражает наш опыт работы с React Native. Facebook и сообщество React Native работают над улучшением платформы. React Native развивается быстрее, чем когда-либо. За последний год было более 2,500 коммитов, и Facebook только что объявил, что решил некоторые технические проблемы, с которыми мы столкнулись. Даже если мы больше не будем инвестировать в React Native, мы будем рады и дальше следить за разработками – технические победы React Native превращаются в реальные победы для людей во всем мире, которые используют наши продукты.

Выводы

Мы интегрировали React Native в большие существующие приложения, которые продолжали развиваться очень быстрыми темпами. Многие из трудностей, с которыми мы столкнулись, были связаны с использованием гибридного подхода. Тем не менее, наш масштаб позволил нам принять и решить некоторые сложные проблемы, с которыми небольшие компании, возможно, не смогли бы справиться. Заставить React Native бесшовно работать с нативным кодом можно, но это сложно. Каждая компания, использующая React Native, получит свой уникальный опыт, который будет зависеть от команды, уже существующего приложения, требований к продукту и зрелости React Native.

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

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

Статьи

 

Комментарии
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement
Click to comment

You must be logged in to post a comment Login

Leave a Reply

Кроссплатформенная разработка

Google выпустил последнюю превью-версию Flutter

На Google Developer Days China была объявлена финальная девелоперская версия Flutter.

AppTractor

Опубликовано

/

Автор:

Судя по всему, Flutter Release Preview 2  – последняя версия перед выпуском стабильной версии Flutter 1.0, которая должна выйти в этом году.

Это уже шестая итерация почти за полтора года – первый анонс Flutter состоялся на Google I/O в мае 2017 года, а первая бета вышла в феврале.

В Flutter Release Preview 2 – поддержка фонового выполнения задач, уменьшение размера приложений до 30%, «pixel-perfect» приложения для iOS и расширенная поддержка этой системы.

Как говорит Google, на Flutter уже есть приложения Alibaba (Android, iOS), Tencent Now (Android, iOS) и Google Ads (Android, iOS).

 

 

Комментарии
Продолжить чтение

Новости

Интересные материалы: 19.09

У нас сегодня инструменты, уроки, курсы и исследования.

AppTractor

Опубликовано

/

Автор:

Весь день мы собираем лучшие материалы о разработке и маркетинге технологий, стартапов, мобильных приложений и игр для iOS и Android из самых разных источников:

Комментарии
Продолжить чтение

Исследования

Новый отчет Developer Economics «Состояние нации разработчиков»

Компания SlashData опубликовала новый отчет из серии Developer Economics «Состояние нации разработчиков» за второй квартал 2018 года.

AppTractor

Опубликовано

/

Автор:

Это обобщенные данные опроса, который проходил весной, и на который ответило более 20,000 человек.

Ключевые выводы:

  • Data science и машинное обучение станут наиболее востребованными навыками в следующем году – 45% разработчиков хотят получить опыт в этих областях.
  • 33% разработчиков хотят изучать UI-дизайн, 25% – облачную разработку. Интерес к изучению других языков программирования меньше. Похоже, что разработчики хотят дополнять свои навыки, а не улучшать.
  • DevOps все более распространен – каждый восьмой в опросе работал над проектами из этой сферы.
  • У 40% есть интерес к роботам, но только 9% разработчиков работает над реальными проектами.
  • JavaScript остается самым популярным языком программирования:

  • Разработчики игр стали зарабатывать больше. Если в первой половине 2017 года только 29% опрошенных получали более 100 долларов в месяц от своих игр, то сейчас таких 48%.
  • Игровая разработка смещается в веб – в 2017 году 38% разработчиков игр работали для веба, а сейчас их 43%, в то время как доля смартфонов, планшетов и десктопов снизилась.

Весь отчет вы можете скачать по ссылке: http://sdata.me/DE2Q18DD.

Комментарии
Продолжить чтение

Новости

У Humble Book Bundle книги по разработке игр

В Humble Book Bundle новая распродажа – на этой неделе книги по разработке игр.

AppTractor

Опубликовано

/

Автор:

За 1 доллар вы можете получить руководства по Blender и SFML, учебник  по игровой физике, можете узнать основы Unreal Engine 4 и разработки игр на C++.

Заплатив 8 долларов вы получите еще 9 книг – про AI, OpenGL, VR, Unity, игровой дизайн.

Последний шаг – 15 долларов и еще 11 книг. Тут есть руководства по Vulkan, Godot, Swift, углубленные учебники по C++, Unity, Unreal.

 

Комментарии
Продолжить чтение

Реклама

Наша рассылка

Нажимая на кнопку "Подписаться" вы даете согласие на обработку персональных данных.

Вакансии

Популярное

X
X

Спасибо!

Теперь редакторы в курсе.