Разработка мобильного приложения для авиабилетов

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Разработка мобильного приложения для авиабилетов
Сложная
от 2 недель до 3 месяцев
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    760
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    640
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1056
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    878
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    449

Разработка мобильного приложения для авиабилетов

Авиационный ticketing — технически самая сложная ниша транспортных приложений. Данные о рейсах поступают через GDS (Global Distribution System) — Amadeus, Sabre, Travelport — и обновляются в реальном времени. Прямой доступ к GDS требует сертификации; большинство независимых разработчиков идёт через агрегаторные API.

Источники данных: GDS и агрегаторы

Amadeus for Developers — самый доступный GDS API. Free tier до 2000 вызовов в месяц, продакшен через партнёрское соглашение. Авторизация OAuth2, REST/JSON. Основные endpoint'ы:

  • GET /shopping/flight-offers — поиск предложений
  • POST /shopping/flight-offers/pricing — верификация цены перед бронированием
  • POST /booking/flight-orders — создание бронирования

Важно: цены в авиации меняются секундно. Между flight-offers и flight-orders обязательно вызываем pricing — цена может измениться. Без этого — бронируем по устаревшей цене, GDS вернёт ошибку.

// iOS: поиск рейсов через Amadeus API
struct FlightSearchParams {
    let origin: String       // "SVO"
    let destination: String  // "AYT"
    let departureDate: String // "2025-07-10"
    let adults: Int
    let travelClass: String  // "ECONOMY", "BUSINESS"
    let nonStop: Bool
}

class FlightSearchViewModel: ObservableObject {
    @Published var offers: [FlightOffer] = []
    @Published var isLoading = false
    @Published var error: SearchError?

    func search(params: FlightSearchParams) async {
        isLoading = true
        do {
            // Запрос к нашему бэкенду, который проксирует Amadeus
            offers = try await flightAPI.searchOffers(params)
        } catch {
            self.error = .networkError(error.localizedDescription)
        }
        isLoading = false
    }
}

Если нужна мультисистемность (несколько GDS + low-cost авиакомпании) — агрегаторы Travelpayouts API, Kiwi.com API, Skyscanner Partner API. Последний требует партнёрского статуса с трафиком от 100K поисков в месяц.

Для российского рынка: Aviasales API — доступ через partners.aviasales.ru, хорошее покрытие по СНГ, партнёрская модель.

Сложный поиск: мультисегментные маршруты

Прямые рейсы — просто. Сложнее — мультисегментные маршруты с пересадками. GDS возвращает itineraries с несколькими segments. Нужно корректно отображать:

  • Общее время в пути vs время перелёта (без пересадок)
  • Время пересадки (layover) с предупреждением при < 60 минутах
  • Аэропорт пересадки — другой аэропорт в том же городе (например, CDG vs ORY в Париже) — красный флаг

Фильтрация: только прямые, максимум 1 пересадка, время вылета (ночной/дневной/утренний), авиакомпания, аэропорт вылета (для городов с несколькими аэропортами).

Сортировка: по цене, по времени в пути, по удобству (составной индекс). Amadeus возвращает amenities для каждого предложения — место у прохода, багаж, питание — включаем в карточку рейса.

Выбор мест и дополнительные услуги

Выбор места в самолёте — интерактивная схема салона. Amadeus Seat Map API возвращает схему: строки, колонки, тип класса, статус (доступно / занято / заблокировано). Рендерим через Canvas/custom View.

Схема существенно отличается у разных типов воздушных судов. A320 и Boeing 737 имеют разную компоновку. Данные о схеме живые — занятые места обновляются при каждом вызове API.

Дополнительные услуги: дополнительный багаж, выбор питания, страхование. Каждая услуга — отдельный POST /booking/flight-orders/{id}/ancillaries или аналогичный endpoint авиакомпании. Цены на допуслуги приходят из Additional Bag Offers от Amadeus.

Посадочные талоны и управление поездкой

После успешного бронирования — PNR (Passenger Name Record) и электронный билет. Посадочный талон доступен за 24 часа до вылета через Check-in API авиакомпании (если поддерживается). Стандарт — BCBP (Bar Coded Boarding Pass): строка данных, кодируемая в Aztec или QR.

На iOS: PKBoardingPass через PassKit — добавление посадочного талона в Wallet с автоматическим напоминанием на экране блокировки в нужный момент:

// Добавление посадочного талона в Apple Wallet
func addBoardingPassToWallet(pass: PKPass) {
    let passLibrary = PKPassLibrary()
    if passLibrary.containsPass(pass) { return }

    let addPassVC = PKAddPassesViewController(pass: pass)
    present(addPassVC, animated: true)
}

На Android: аналог через Google Wallet API с BoardingCardObject.

Push-уведомления через FCM/APNs: задержка рейса (через FlightAware API или AviationStack), открытие регистрации, изменение выхода на посадку, напоминание о посадке.

Offline и плохая связь в аэропорту

Посадочный талон должен работать без интернета. Кэшируем данные в Core Data / Room при получении: номер рейса, PNR, штрихкод, данные пассажира. QR-код генерируем из локальных данных — не запрашиваем сервер при показе.

Возврат и обмен билетов

Возврат/обмен через API авиакомпании или GDS. У каждого тарифа своя fare conditions — отображаем их на экране покупки: невозвратный, частично возвратный, свободный обмен. Amadeus Branded Fares API помогает структурировать условия тарифов для пользователя.

Этапы и сроки

Этап Срок
Интеграция GDS / агрегатора 1–2 недели
Поиск: одиночные и мультисегментные рейсы 2 недели
Бронирование, оплата, PNR 2 недели
Выбор мест, допуслуги 1 неделя
Посадочные талоны, Apple/Google Wallet 1 неделя
Уведомления о статусе рейса 1 неделя
Тестирование, iOS + Android 1 неделя

Итого: 9–12 недель. Стоимость рассчитывается индивидуально после анализа требований.