Куда на море
Туризм и отдых
Россия
Android
Июль 2024
«Куда на море» — агрегатор объявлений для аренды гостиниц и отелей на юге России. Отельеры оплачивают подписку, размещают свои объекты, а пользователи бронируют номера через сайт.
Однако вести учет бронирований номеров на сайте было неудобно, поэтому отельеры редко его использовали и предпочитали вести учёт на бумаге или в заметках на телефоне.
— Отельеры редко обновляли статусы номеров. Когда под рукой не было ноутбука, они вели учет бронирований в бумажных блокнотах. Зафиксировать информацию о клиентах на сайте через смартфон не всегда получалось: веб-версия тормозила и долго загружалась с мобильного интернета.
— Пользователи сталкивались с неудобствами, например, номера, отмеченные как свободные, были уже заняты.
Клиент хотел разработать мобильное приложение, которое заменило бы бумажные записи и обеспечило удобный инструмент для управления бронированиями.
Приложение должно было:
1. Побудить отельеров чаще обновлять данные;
2. Работать плавно даже при большом объеме данных;
3. Работать офлайн и синхронизироваться с сервером при появлении сети.
Клиент планировал создать приложение с командой Flutter-разработчиков. Но у них возникли сложности: интерфейс зависал, обработка данных занимала слишком много времени, а главную фичу приложения не удалось сделать плавной и отзывчивой.
Тогда клиент обратился в KTS. Вместо Flutter мы предложили использовать Kotlin Multiplatform (KMP). Эта технология позволяет создавать нативные и производительные интерфейсы для каждой платформы, сохраняя при этом возможность переиспользования бизнес-логики для iOS и Android.
Чтобы продемонстрировать возможности KMP, мы за два дня разработали прототип шахматки. Интерфейс работал плавно, а приложение обрабатывало сотни бронирований одновременно. Этот результат и убедил клиента работать с нами.
Ключевая функция приложения — шахматка, где строки — это номера, а колонки — дни и месяцы. Она обеспечивает удобное визуальное управление статусами номеров.
В мобильном приложении были реализованы:
1. Бесконечная прокрутка и удобный выбор дат. Благодаря Jetpack Compose в приложении есть бесконечная прокрутка календаря, которая обеспечивает плавную работу интерфейса даже при больших объемах данных. Это особенно важно для отельеров, ежедневно управляющих десятками бронирований. Также был добавлен удобный календарь для выбора дат, похожий на Airbnb.
2. Управление статусами номеров с цветовой маркировкой. Например, «ждем предоплату» или «требуется уборка».
3. Добавление новых объектов. Возможность создавать новые номера или гостиницы прямо из приложения.
4. Синхронизация офлайн. Учитывая работу в условиях нестабильного интернета, мы добавили офлайн-режим. Он сохраняет изменения и автоматически синхронизирует их при появлении сети.
«Предыдущий опыт реализации системы синхронизации в offline-first приложениях для ПИК и KLEO позволил сразу реализовать оптимальную синхронизацию в приложении “Куда на море”. В частности, было реализовано обновление только измененных данных и многопоточная загрузка больших объемов информации»
— Максим Мялкин, управляющий партнёр KTS и лид мобильной разработки
«Куда на море» — это не просто агрегатор, а полноценная PMS-система для управления бронированиями.
В шахматкеинформация о доступности номеров и квартир отображается в режиме реального времени. Отельеры могут обновлять данные о номерах, находясь вдали от офиса или компьютера. Да, в горах или у моря тоже можно управлять бронированиями.
Гости реже сталкиваются с ситуациями, когда выбранный номер оказывается занят. Они видят актуальную информацию и не переживают за свой отпуск.
Кроме того, приложение открыло новые возможности для владельцев бизнеса — оно оказалось настолько удобным, что отельеры использует его для учета аренды автомобилей. Вместо гостиничного объекта они создают в личном кабинете свой автопарк и отмечают в приложении арендованные автомобили.
![]()
Максим Павлов
«KMP, как и Flutter, и любая другая технология, — это не универсальное решение и не серебряная пуля. В случае с “Куда на море” ключевой задачей было создание нетипового интерфейса, который оставался бы отзывчивым и плавным даже при работе с большими объемами данных. В отличие от Flutter, накладывающего ограничения на реализацию интерфейсов, KMP справился с этим безупречно»
![]()
Никита Лютов
Владелец сервиса «Куда на море»
«Мы начали с подрядчиком, который предложил выгодную цену на Flutter. Но уже на первом важном экране — шахматке — возникли проблемы с производительностью. KTS оперативно предоставил готовую демо на основе KMP, и я выбрал их решение»