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

Медиа

Run Loop 1

Роман Бусыгин, Алексей Милеев и Илья Царев запустили новый подкаст про iOS-разработку.

AppTractor

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

/

Автор:

В первом выпуске подкаста – Максим Ефимов, инженер из Uber.

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

Новости

Digest MBLTdev: Новости для iOS разработчиков №177

В течение недели топовые iOS-разработчики Руслан Гуменный, Саша Черный и Саша Зимин, а также директор по продукту VK Иван Козлов собирают для вас интересные и полезные ссылки на статьи, необходимые для прочтения каждому начинающему и опытному разработчику. В каждом выпуске – новости, коды, инструменты, дизайн и прочее.

e-Legion

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

/

Автор:

NSHipster вернулся! Вот буквально за день до этого обсуждали, что что-то давно ничего не было, а тут оп, и на блюдечке. Не иначе Мэт ждал выхода нового мощного MacBook Pro с 32 Гб ОЗУ, потому что на его старом тормозила сборка проекта на Swift, а душевная организация у блогеров тонкая, ранимая. И вот Мэт, увидев, что ObjC в рейтинге TIOBE укрепил позицию, уже было задумался, но MacBook спас положение. Раньше, когда Interface Builder был отделён от Xcode, обходились и без 32 Гб. Сейчас, когда App Store отмечает 10 лет, 32 Гб уже не так впечатляют и не кажутся чем-то избыточным. Была бы память, а чем её занять — найдётся.

1

Run Loop Podcast

Небезызвестные отечественные разработчики в лицах Ромы Бусыгина, Ильи Царёва и Лёши Милеева запустили новый подкаст про iOS. Радует первый комментарий к подкасту в iTunes: «Осталось всего 68 выпусков, чтобы догнать Подлодку!». Хех, может, и так, но лиха беда начало. Дело правильное. Мужики одобряют. Мужики качают не только бицуху, рейтинг на TopCoder и курсы с Coursera, но и подкаст Run Loop наравне с Podlodka. А так — время покажет. P. S. Хотелось бы не только в Podcasts иметь, м?

ITUNES.APPLE.COM

Shortcuts App using Realm

Появилось приложение Shortcuts для разработчиков, распространяемое через Testflight. Интересно, что он основан на Workflow и (!!) использует Realm. Если так уйдёт в релиз, то это будет нонсенс для Apple.

TWITTER.COM

Swift GYB

Как мы и сказали, NSHipster вернулся. А вот и первая статья после перерыва про бойлерплейты в Swift — легковесная замена Sourcery от создателей языка.

NSHIPSTER.COM

JetBrains учредила премии для учителей за подготовку школьниц, ставших призёрками олимпиад по математике и физике

Заголовок как будто и так достаточно объясняет произошедшее. Радостно на душе. Кстати, если вы читаете и думаете: «э, а остальные?», знайте, что у JetBrains есть и другие аналогичные инициативы. Да и не так важно, кто. Важно, чтобы была поддержка. Спасибо, JetBrains!

PAPERPAPER.RU

MongoDB Mobile

Вообще так-то на фронте мобильных БД не видать боевых действий. Что назовёт честный горожанин? SQLite с обёртками разной высоты. Realm. Едва ли больше. Может, потребности нет. Может, никто и не думает, как хорошо могло бы быть, если… MongoDB открыла регистрацию для доступа к бете своей БД для iOS.

WWW.MONGODB.COM

4

iOS 12: группировка уведомлений

Юра Петухов написал вторую статью про работу с нотификациями в iOS 12. В этот раз — детали про группировку уведомлений.

HABR.COM

Partial in Swift

Пошли хитрые способы использования subscript. Например, создание структур. Не безопасно, но довольно-таки занятно.

JOSEPHDUFFY.CO.UK

Custom container view controllers in Swift

ViewController, выступающий в роли контейнера — очень удобная штука. Подробности в статье.

WWW.SWIFTBYSUNDELL.COM

3

What every product designer should take away from Lyft’s new UI

Пожалуйста-пожалуйста-пожалуйста, адаптируйте вы уже свои интерфейсы под высокие экраны, как это сделали Lyft или хотя бы Тинькофф.

UXDESIGN.CC

Watching bottom sheets take over Apple’s iOS apps

Ну и раз мы заговорили о такой проблеме, то вот вам визуальный вектор базовых iOS-приложений.

TWITTER.COM

App Store 10 лет

Можно полистать подборку эволюции дизайна разных приложений. Facebook доставляет. Покажешь сейчас какому-нибудь миллениалу, так его лицо потом FaceID не распознает!

9TO5MAC.COM

CoreML и его практическое применение

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

Июльская встреча CocoaHeads

25 июля, в среду, в 19:00 в московском офисе Mail.Ru. Регистрация через приложение. В частности, заявлен доклад Сэма Меджлумяна про базы данных для iOS. Совпадение? Не думаем.

ITUNES.APPLE.COM

16f106c0eaa442b184873f18f426a916

ARStarter

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

GITHUB.COM

Предыдущие выпуски Digest MBLTDEV и подписка доступны на официальном сайте. Всё бесплатно и никакого спама, честно!

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

Разработка

Интересные материалы для разработчика мобильных приложений #221 (9-15 июля)

На этой неделе случилась бомбическая история с приложением Burger King и аналитикой Appsee, App Store исполнилось 10 лет, мы узнали про чат-боты, банковские приложения, архитектуру приложений и нейронных сетей.

AppTractor

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

/

Автор:

11 июля появился на Pikabu, а 12 июля был продублирован на Хабре пост, в котором пользователь fennikami изучает данные трафика мобильного приложения Burger King и делает вывод, что за ним следят: записывают видео с экрана, когда он вводит данные своей банковской карты, а потом передают эту информацию третьим лицам.

Burger King и тайная запись экрана вашего телефона
Запись видео с вашего экрана не такая уж тайная. Версии Бургер Кинга и Appsee
А что такое этот ваш AppSee?
Разбираемся, что записывает, а что не записывает приложение Burger King
Басня о Burger King и данных пользователей. Комментарии разработчика
Приложение Burger King: насмешка над защитой персональных данных. Исправляем?

 iOS

 Android

 Разработка

 Аналитика, маркетинг и монетизация

 AI, Устройства, IoT

 Вакансии

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

Новости

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

Обсуждаем Burger King, чат-боты и машинное обучение.

AppTractor

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

/

Автор:

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

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

Реклама

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

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

Вакансии

Популярное

X
X

Спасибо!

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