Как KMP в очередной раз уделал Flutter: кейс мобильного приложения для бронирования жилья

Когда Flutter не справляется, на помощь приходит KMP: реальная история о том, как нативный интерфейс и правильно выбранная технология преобразили бизнес отельеров

Как KMP в очередной раз уделал Flutter: кейс мобильного приложения для бронирования жилья

Привет, это KTS. Помните статью нашего управляющего партнёра Максима Павлова, где он рассказал, в каких ситуациях Kotlin Multiplatform (KMP) побеждает Flutter? Тогда комментарии буквально взорвались — было всё: споры, аргументы, жаркие обсуждения…

Мы решили не оставлять тему без продолжения. Принесли реальный кейс, где KMP показал себя во всей красе. Это история про отели, шахматку и то, как нативный интерфейс сделал жизнь отельеров гораздо проще. Поехали!

Удобное приложение вместо блокнотов и неудобного веба

«Куда на море» — агрегатор объявлений для аренды гостиниц и отелей на юге России. Отельеры оплачивают подписку, размещают свои объекты, а пользователи бронируют номера через сайт.

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

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

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

Приложение должно было:

  • Побудить отельеров чаще обновлять данные;
  • Работать плавно даже при большом объёме данных;
  • Работать офлайн и синхронизироваться с сервером при появлении сети.

«Мы начали с подрядчиком, который предложил выгодную цену на Flutter. Но уже на первом важном экране — шахматке — возникли проблемы с производительностью. KTS оперативно предоставил готовую демо на основе KMP, и я выбрал их решение»

Никита Лютов, владелец сервиса «Куда на море»

Почему Flutter не справился с задачей, а KMP стал идеальным решением

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

Тогда клиент обратился в KTS. Вместо Flutter мы предложили использовать Kotlin Multiplatform (KMP). Эта технология позволяет создавать нативные и производительные интерфейсы для каждой платформы, сохраняя при этом возможность переиспользования бизнес-логики для iOS и Android.

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

Шахматка бесконечности

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

В мобильном приложении были реализованы:

  • Бесконечная прокрутка и удобный выбор дат. Благодаря Jetpack Compose в приложении есть бесконечная прокрутка календаря, которая обеспечивает плавную работу интерфейса даже при больших объемах данных. Это особенно важно для отельеров, ежедневно у��равляющих десятками бронирований. Также был добавлен удобный календарь для выбора дат, похожий на Airbnb.
Как KMP в очередной раз уделал Flutter: кейс мобильного приложения для бронирования жилья

Управление статусами номеров с цветовой маркировкой. Например, «ждем предоплату» или «требуется уборка».

Как KMP в очередной раз уделал Flutter: кейс мобильного приложения для бронирования жилья

Добавление новых объектов. Возможность создавать новые номера или гостиницы прямо из приложения.

Как KMP в очередной раз уделал Flutter: кейс мобильного приложения для бронирования жилья

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

«Предыдущий опыт реализации системы синхронизации в offline-first приложениях для ПИК и KLEO позволил сразу реализовать оптимальную синхронизацию в приложении “Куда на море”. В частности, было реализовано обновление только измененных данны�� и многопоточная загрузка больших объемов информации»

Максим Мялкин, управляющий партнёр KTS и лид мобильной разработки

Результат: отдых без сбоев, бизнес без границ

Как KMP в очередной раз уделал Flutter: кейс мобильного приложения для бронирования жилья

«Куда на море» — это не просто агрегатор, а полноценная PMS-система для управления бронированиями.

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

Как KMP в очередной раз уделал Flutter: кейс мобильного приложения для бронирования жилья

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

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

«KMP, как и Flutter, и любая другая технология, — это не универсальное решение и не серебряная пуля. В случае с “Куда на море” ключевой задачей было создание нетипового интерфейса, который оставался бы отзывчивым и плавным даже при работе с большими объемами данных. В отличие от Flutter, накладывающего ограничения на реализацию интерфейсов, KMP справился с этим безупречно»

Максим Павлов, управляющий партнёр KTS

Итого: в этом раунде (снова) с уверенностью присуждаем победу KMP.

Мы в KTS создаём мобильные приложения для самых разных задач. В нашем списке:

15
4
15 комментариев