React Native в Airbnb

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

Andrey Melikhov
Jul 1, 2018 · 3 min read

Перевод статьи : . Опубликовано с разрешения автора.

Годы спустя, все еще можно назначить совещание в нашем Airstream

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

Когда Airbnb был запущен 10 лет назад, смартфоны находились в зачаточном состоянии. С тех пор смартфоны стали важным инструментом в повседневной жизни, тем более, что всё больше людей путешествуют по миру. Для нас, как сообщества, которое открывает новые формы путешествий для миллионов людей, имеет решающее значение наличие приложения мирового класса. Мобильные устройства часто являются основным или единственным средством коммуникации вдали от дома.

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

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

Делаем ставку на React Native

Мы постоянно оцениваем новые технологии, которые позволяют нам улучшить опыт использования Airbnb для гостей и владельцев, быстро развиваться и поддерживать хорошее восприятие со стороны разработчиков (developer experience). В 2016 году одной из этих технологий стал React Native. В то время мы узнали, насколько важно мобильное приложение для нашего бизнеса, но и насколько нам не хватает инженеров мобильной разработки для достижения наших целей. В результате мы начали изучать альтернативные варианты. Наш сайт построен в основном с помощью React. На тот момент это уже был очень эффективный и общепризнанный веб-фреймворк в Airbnb. Из-за этого мы обратили внимание на React Native как возможность быстрее открыть мобильную разработку для большего числа инженеров, а также ускорить доставку нового кода до конечных пользователй за счёт кроссплатформенного характера React Native.

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

  1. Быстро развивать приложение;
  2. Поддерживать планку качества, установленную нативным приложением;
  3. Писать общий код для двух платформ (iOS и Android);
  4. Дать разработчикам хороший developer experience.

Наш опыт

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

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

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

мы перечисляем, что работало хорошо и что не было не так с React Native с точки зрения технологии.

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

мы расскажем о том, где мы находимся сегодня с React Native и каково его будущее в Airbnb.

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


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

devSchacht

Подкаст. Переводы. Веб-разработка.

Andrey Melikhov

Written by

Web-developer in big IT company Перевожу всё, до чего дотянусь. Иногда (но редко) пишу сам.

devSchacht

Подкаст. Переводы. Веб-разработка.