Приложение для бортпроводников c 20 интеграциями и работой без интернета

Корпоративный софт, Транспорт и логистика, Мобильные приложения

Высшая оценка от бортпроводников S7 Airlines

Корпоративный софт Транспорт и логистика Мобильные приложения
Tagline | #3 Лучший сервис для автоматизации работы RB Digital Awards | Шортлист операционная деятельность

Перед нами стояла задача — разработать мощный сервис (20 интеграций, backend, frontend, analytics, design), который решил бы сразу несколько проблем авиакомпании S7 и ее бортпроводников.

    Цели проекта

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

    Вызов проекта

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

    Еще одной сложностью стали интеграции с 20 динамически развивающимися сервисами.

    До DEVMAGNET

    Бортпроводники испытывали трудности в ознакомлении с новыми документами, а еще тратили от 20 до 60 минут на заполнение массы бумажных отчетов. Старший бортпроводник носил с собой стопку документации на рейс.

    Кроме того, администраторам было сложно обработать полученную информацию — например, из-за непонятного почерка.

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

    Процесс работы

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

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

    • функционал библиотеки;
    • информативный календарь рейсов;
    • питание пассажиров эконом-класса, бизнес-класса и спецпитание;
    • блок общей информации о рейсе;
    • система оповещений о дефектах пассажирского судна;
    • отображение всевозможных грузов;
    • схемы аварийно-спасательного оборудования;
    • анкетирование пассажиров;
    • два вида чатов для коммуникации с service desk и центром обслуживания пассажиров;
    • работа с отчетами;
    • блок работы с пассажирами;
    • информация об экипаже рейса.

    Приложение для бортпроводников c 12 интеграциями и работой без интернета

    Результат

    Мы разработали специальный сервис Cabin Crew Pad — основной рабочий инструмент для бортпроводников до рейса, во время и после него. Он включает в себя приложение на iPad для старших бортпроводников с расширенным функционалом.

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

    А еще мы разрабатываем Android-версию приложения для рядовых проводников. Приложение включает электронную библиотеку нормативных, накладных актов и других данных по отчетности. Помогает в адресном обслуживании пассажиров, содержит информацию по категориям пассажиров.

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

    Приложение для iPad

    Рассмотрим, что включает приложение для старших бортпроводников.

    Рейс

    Приложение для бортпроводников сообщает информацию о рейсе на дашборде по принципу атомарности.

    Приложение для бортпроводников S7 Airlines имеет календарь

    Отчеты

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

    Задача было крайне сложной, так как в самолете нет интернета и в аэропортах отображается обычно только «ешка». Пол года мы потратили на то, чтобы тяжелые отчеты с фотографиями и видео инцидентов перестали теряться и всегда доходили до админки.

    Приложение для бортпроводников S7 Airlines помогает создавать отчеты

    Карта салона

    Бортпроводник теперь получает самую актуальную информацию о пассажирах – видит, тех кто опоздал и не попал на рейс. Также выделены особые пассажиры, например с малой мобильностью, животными.

    Бортпроводник имеет возможность оперативно найти каждого пассажира с помощью текстового поиска или кликнуть по месту в салоне на своем планшете:

    Карточка пассажира

    Содержит в себе информацию об особенности его перевозки и ведет к дополнительной информации о нем:

    Меню

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

    Анкета и обратная связь

    Приложение для бортпроводников включает возможность заанкетировать пассажира или получить обратную связь, которая отобразится у руководителя службы бортпроводников:

    Компенсации

    На рейсе пассажир может получить компенсацию:

    Приложение для бортпроводников S7 Airlines помогает оформить компенсацию пассажиру из-за ошибок авиакомпании

    Накладные

    Накладные помогают в учете израсходованного на рейсе имущества, что помогает экономить на закупках:

    Приложение для бортпроводников S7 Airlines помогает оформить накладные

    Экипаж

    Приложение для бортпроводников отображает коллег на рейсе, также старший бортпроводник имеет возможность сменить позиции экипажа:

    Приложение для бортпроводников S7 Airlines показывает ваших коллег

    Чат

    Внедрен чат с наземными службами:

    Библиотека

    Больше 300 нормативных актов перевели в удобный интерфейс с поиском, интерактивным оглавлением и закладками:

    Виджет

    Приложение для бортпроводников включает даже виджет.

    UI-kit

    Собрали красивый ui-kit

    Тестирование и производительность Backend

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

    Наша система обладает высокой масштабируемостью благодаря семи контейнерам, работающим в режиме Master-Slave в реальном времени. Эти контейнеры постоянно мониторятся системой Zabbix, что обеспечивает поддержание 100-процентного SLA. База данных является распределенной, что способствует повышению надежности и производительности системы.

    Для взаимодействия с клиентами у нас разработаны три отдельных приложения. Еще три приложения используются для планирования задач, а одно приложение предназначено для сбора метрик. Этот комплексный подход позволяет эффективно управлять всеми аспектами работы системы и обеспечивать высокое качество обслуживания.

    Как обеспечить оффлайновый Backend

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

    Синхронизация данных осуществляется по принципу диффов (Diffs), что позволяет загружать только изменения, а не весь объем данных целиком. Этот метод обеспечивает быструю и эффективную актуализацию данных, снижает затраты на передачу и обработку информации.

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

    Почему сначала разрабатывали на iOS

    В 2016 году, когда начался проект, у нас был корпоративный сертификат разработки от Apple, который позволял нам устанавливать любое приложение на любое устройство без необходимости загрузки в Apple Store. Это дало нам значительное преимущество в начальной фазе разработки.

    Еще плюсы iOS

    • Высокий уровень безопасности: iOS предоставляет надежные механизмы безопасности, что особенно важно для корпоративных приложений.
    • Наличие MDM-систем: Системы управления мобильными устройствами (MDM) позволяют централизованно управлять устройствами и обеспечивать их безопасность.
    • Хороший уровень UI: iOS славится качественным пользовательским интерфейсом, что способствует созданию удобных и привлекательных приложений.

    Интеграции мобильного приложения iOS

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

    • Интеграция с сервисом продаж на борту: Обеспечивает доступ к данным продаж и управлению ими во время полета.
    • API интеграции: Подключение к локальной сети на борту (MediaHub) для обмена данными.
    • Операции с данными в оффлайне: Поддержка создания, изменения и удаления данных в оффлайн-режиме.

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

    Оптимизация и производительность мобильного приложения iOS

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

    Также пользователей раздражал крутящийся значок до Full Load — полной загрузки на страницы. Мы реализовали фоновую загрузку с отображением прогресса.

    Интеграции мобильного приложения Android

    Все ресурсы приложения проходят через API Backend. Для работы с системой продаж на борту (MediaHub) используется отдельное API. Важно отметить, что Backend рассматривает API сервисы одинаково как для Android, так и для iOS, что обеспечивает унифицированный подход к интеграциям.

    Оффлайн функциональность мобильного приложения Android

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

    Оптимизация и производительность мобильного приложения Android

    Система iOS унифицирована, и разработка ведется под ограниченное количество устройств. В случае с Android — разнообразие процессоров, архитектур и доступных GPU. Основные узкие места включают работу с сетью, графикой и обработку больших массивов данных.

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

    Проблемы, с которыми мы столкнулись

    Оказалось, что на iOS проще работать с графикой, поскольку графический ускоритель (GPU) унифицирован. Разнообразие процессоров, архитектур и GPU на устройствах Android затрудняет разработку и оптимизацию. Еще одной проблемой стало — ограниченное количество доступных библиотек: Нам пришлось создавать собственные «костыли» — части кода, которые заменяют недостающие функции, чтобы обеспечить нужную функциональность.

    Тестирование мобильного приложения Android

    Из-за высокой стоимости и значительной продолжительности проекта (восемь лет) мы отказались от прямолинейного тестирования, так как цена ошибки слишком велика. Вместо этого мы используем Firebase Crashlytics для отслеживания работы приложения и выявления ошибок. Кроме того, мы добавили Performance-метрику производительности, чтобы обеспечить высокое качество работы и своевременное выявление проблем в производительности приложения.

    В итоге

    • Сократили время на ведение послерейсовой отчетности с 60 до 2 минут;
    • Сэкономили 60 тонн бумаги: теперь вся информация — на электронном носителе;
    • Экипаж имеет доступ к актуальным данным, даже во время полета;
    • Более 60 процентов задач выполняются на планшете.

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

    А чтобы узнать абсолютно все подробности реализации проекта — переходите смотреть презентацию основателя компании и Александры Соколовой (S7), где они объяснили каждое рабочее решение.

Результаты

Это уже вторая версия приложения CCP, первую мы начали делать 5 лет назад и развивали ее все эти годы. Сейчас новое приложение обрастает функционалом, переехало с iOS на Android, и будет только расти. 

2500
пользователей
20
систем интеграции
3250
отчетов оцифровываем в день
в 2 раза
Ускорили заполнение отчетов
на 250
рейсах в день используется софт
8 000 000
отчетов оцифровали за все время
4 500 000
расходников учитывается в год
- час работы
отчеты высылаются онлайн

Технологии

Swift
Kotlin
PostgreSQL
Kafka
Angular
Yii2
PHP 8.2
NGINX Unit
Redis
Обсудить проект