Домашняя страница
/

Проект

Яндекс Путешествия

Приложение для покупки авиабилетов и бронирования отелей

trevel_gold

О проекте

О проекте

О проекте

«Яндекс Путешествия» — один из лидеров российского рынка для поиска авиа- и ж/д билетов и бронирования отелей. Doubletapp совместно с «Яндексом» разработали мобильное приложение для путешественников, в котором можно пройти весь путь планирования поездки от выбора направления до бронирования жилья.

Пользователь выбирает город в России или за границей, а приложение помогает ему сделать все необходимое, чтобы там оказаться: купить билеты на самолет по самой низкой цене, забронировать отель, гостевой дом или хостел — любое жилье, подходящее под заданные параметры стоимости, условий и времени проживания.

В марте 2022 года Booking, Airbnb и Skyscanner ушли из России, поэтому путешественники чаще начали использовать наши сервисы: в 2022 году число заказов в «Яндекс Путешествиях» выросло в 10 раз.

проект в цифрах

0 000+установок приложения

0,6средняя оценка в сторах

0человек работали на проекте

Задача

Задача

Задача

В 2020 году «Яндекс» объединил «Авиабилеты», «Расписания», «Автобусы», «Отели» и «Туры» в единый портал в вебе — «Яндекс Путешествия». Естественное развитие этой истории — создать мобильное приложение, которое улучшает пользовательский опыт за счет преимуществ смартфонов: мобильности, нативных и быстрых интерфейсов и т. д.

Для первой версии приложения были выбраны «Авиабилеты» и «Отели». С этой задачей CTO «Яндекс Путешествий» Лев Орехов и обратился в Doubletapp летом 2021 года.

Mask1yt.png

Авиабилеты

Авиабилеты

Авиабилеты

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

Скриншот Авиабилеты
Скриншот Авиабилеты 1
Скриншот Авиабилеты 2
Скриншот Авиабилеты 3
Скриншот Авиабилеты 4

Отели

Отели

Отели

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

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

Скриншот Отели
Скриншот Отели 1
Скриншот Отели 2
Скриншот Отели 3
Скриншот Отели 4

Пора в отпуск

Пора в отпуск

Пора в отпуск

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

Скриншот Пора в отпуск
Скриншот Пора в отпуск 1
Скриншот Пора в отпуск 2
Скриншот Пора в отпуск 3
Скриншот Пора в отпуск 4

Профиль

Профиль

Профиль

В приложении можно авторизоваться с помощью единого аккаунта для всех сервисов «Яндекса». В профиле доступна актуальная информация о подписке «Яндекс Плюс». Также есть круглосуточная связь со службой поддержки: вы можете написать сообщение в чат по теме любого раздела «Яндекс Путешествий», а еще — отправить туда ссылку, прикрепить файл или скриншот и выразить чувства с помощью эмодзи (да, это важно).

Скриншот Профиль
Скриншот Профиль 1
Скриншот Профиль 2
Скриншот Профиль 3
Скриншот Профиль 4

Результат

Результат

Результат

Разработка нативных iOS- и Android-приложений была начата в сентябре 2021 года и продолжалась более полутора лет. Публичный релиз состоялся 28 февраля 2023 года.

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

Пользователи могут оплатить отели и авиабилеты картами российских банков. Подписчикам «Яндекс Плюса» доступен кешбэк до 20% от общей стоимости заказа, который можно потратить на будущие путешествия или в других сервисах «Яндекса»: например, оплатить поездку в «Такси» или съесть вкусную еду из «Лавки».

Что касается процесса разработки: у нас была настоящая техно-феерия! Мы поигрались с новыми хайповыми технологиями, тесно повзаимодействовали с командой «Яндекса», но подробнее об этом всем расскажем в нашем блоге на Хабре и подкасте ЧТНП 😏.

Технологии

Swift
Swift

Swift

Kotlin
Kotlin

Kotlin

Наша суперкоманда

СергейProductionДмитрийAndroidНикитаAndroidЕвгенийAndroidПолинаiOSАннаiOSРоманiOSДмитрийiOSАлексейiOSЮрийQAАннаMLМаксимAndroidМихаилQA

iOS

iOS

iOS

Мы написали приложение полностью на SwiftUI. Это было рискованное, но очень обдуманное и дальновидное решение. Потому что хотелось двигаться в сторону новых технологий, и приложение «Путешествий» стало отличной площадкой для эксперимента. И, конечно, помимо всех плюсов в виде скорости разработки и входа в разработку, отличного симбиоза с Combine, перспективности, мы столкнулись еще и со сложностями.

По нескольким причинам архитектура получилась гибридная: с одной стороны сначала мы использовали известный и вроде бы очевидный в случае реактивного программирования MVVM, с другой — в какой-то момент эта архитектура начала стрелять нам в ноги. И пришлось, используя все преимущества SwiftUI, переходить на подход Unidirectional Data Flow и архитектуру со стейт-машиной.

И к такой архитектуре существующие решения навигации были не готовы, только позже вышла возможность отделять навигацию от UI-слоя — то, что нам было так необходимо для различных кастомных переходов. Пришлось пробовать писать что-то свое, и в итоге нашли библиотеку FlowStacks, реализующую паттерн Coordinator. Совместили расширенный ее вариант со стейт-машиной и получили навигацию, которой было уже удобно и реально пользоваться для тех кейсов, которые были прописаны у нас в дизайне.

Конечно, было бы идеально сделать минимальной поддерживаемой версией iOS 16, чтобы исключить все проблемы и не придумывать велосипеды с навигацией, но мы начали разрабатывать приложение до ее выхода, плюс для больших продуктов с широкой аудиторией необходимо было поддерживать более низкие версии. И, как у любого здорового проекта, использующего новый стек, с поддержкой низких версий iOS возникли проблемы. Изначально минимальной поддерживаемой версией был iOS 13, но, посчитав все риски и оценив стоимость ресурсов, которые пойдут на отладку багов и поддержание этой версии, мы смогли убедить менеджмент поднять таргет до 14-й версии iOS.

Еще мы столкнулись с необходимостью с нуля писать большие, тяжелые, но часто используемые элементы, которые не совсем удобно реализованы в текущих решениях для SwiftUI и для которых мало примеров в виде third-party библиотек. Однако благодаря очень мощной команде получилось справиться со всеми сложностями, нашлись люди, которые были готовы полностью погрузиться в процесс написания сложных элементов.

Опыт с «Яндекс Путешествиями» показал нам, что SwiftUI — перспективный и мощный фреймворк, который уже можно использовать, но всегда нужно быть готовыми к возможным рискам. В целом мы остались довольны выбором, заработали высокую экспертизу в SwiftUI, дотошно задокументировали свой опыт, научились обходить трудности и писать код так, чтобы все было наглядно, понятно и работало без багов. Ну и, кроме этого, на «Путешествиях» удалось попробовать несколько интересных библиотек (например, для логирования или снепшот тестирования), которые мы думаем использовать у себя в практиках.

Давайте работать вместе!

Прикрепить файл