Подавайте работы до 3 июля (птн)18 000 Р,
с 4 июля (сб)24 000 Р
Церемония награждения
4 декабря 2026
Крупнейшая digital-премия в Европе

Как сохранить деловые контакты с конференции, если визитки остались дома. Бизнес-приложение на Kotlin Multiplatform

Заказчик: Юшков В.
Исполнитель: Софториум
Share
Share
Как сохранить деловые контакты с конференции, если визитки остались дома. Бизнес-приложение на Kotlin Multiplatform

Главное о кейсе

К нам обратился владелец компании из сферы Fashion Retail c идеей стартапа. Так родился проект I Saw you — мобильное приложение, которое автоматически фиксирует ваши встречи на конференциях или выставках и помогает в нетворкинге.

Цель была амбициозной: создать удобную альтернативу LinkedIn и TenChat, но с фокусом на реальные офлайн-взаимодействия. Без новостных лент, лайков и лишнего шума — только полезные связи, сохраненные в один клик.

Ключевые достижения: релиз в RuStore и первая в России устойчивая чат-архитектура на KMP.

Как проект изменил жизнь пользователей

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

Система использует геолокацию (до 50 метров) и автоматически фиксирует пересечения с другими участниками. Если вы были рядом — вы попадаете друг другу в список «Виделись».

После встречи на выставке или конференции можно:

- просмотреть всех, с кем пересекались;
- открыть профили;
- написать сообщение через встроенный чат.

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

Бизнес-задача и ее решение

По настоянию заказчика в архитектуру приложения была сразу заложена возможность масштабирования. При разработке серверной части была реализована микросервисная архитектура на платформе .NET.

Почему Kotlin Multiplatform?
На старте перед командой проекта стоял выбор: нативная разработка под iOS и Android, кроссплатформенные фреймворки (Flutter, React Native) или Kotlin Multiplatform (KMP).

Совместно с заказчиком выбрали KMP, и вот почему:
- Общая бизнес-логика, нативный UI.
- Бэкенд, сеть, навигация, логика хранения: все пишется один раз. А интерфейс остается нативным: Jetpack Compose для Android, SwiftUI для iOS. Это дает и экономию времени, и привычный UX.
- Заказчику нужен был рабочий MVP для демонстрации на мероприятиях. KMP позволил собрать обе версии параллельно без дублирования кода.
- Готовность к масштабированию.
- В перспективе web и desktop. Благодаря Compose Multiplatform расширение станет возможным без переписывания с нуля.
- У нас глубокая экспертиза по Kotlin. Мы понимали, на что идем, и были готовы решать сложные задачи там, где нет готовых решений.

Крафт (мастерство), реализация, технические детали

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

Геолокация: не все так просто, как кажется. Главная фича — определение близости участников — оказалась одной из самых нестабильных. Разные устройства (особенно Samsung и Xiaomi) по-разному обрабатывают GPS-сигналы: с задержками, неточностями, требуют нескольких разрешений в строгой последовательности.

Мы даже рассматривали альтернативы:

- сканирование QR-кодов;
- сравнение фоновых шумов (через микрофон) для подтверждения близости.

К счастью, доработка алгоритмов геолокации позволила обойтись без костылей.

На момент старта проекта не существовало готовых решений для чатов на KMP. Ни библиотек, ни стабильных гайдов — только теория и эксперименты.

Мы реализовали полноценный real-time-мессенджер с нуля:
- WebSocket-соединения с автоматическим переподключением;
- push-уведомления, даже когда приложение в фоне;
- статусы online/offline, прочтение, реакции;
- очередь сообщений при потере связи — без потерь и с соблюдением порядка;
- пагинация, навигация по чатам, открытие диалога по push;
- поддержка edge-кейсов: переключение между Wi-Fi и мобильным интернетом, сворачивание приложения, блокировка экрана.

Каждый элемент пришлось проектировать, тестировать и адаптировать под особенности iOS и Android. Например, навигация в Jetpack Compose оказалась нестабильной, а работа с фоновыми сокетами — разной на платформах.

Сегодня это одно из наших ключевых внутренних решений. Руководитель проекта даже написала статью на «Хабр» с разбором архитектуры чата на KMP.

В приложении заложена архитектура «на вырост».
Мы изначально проектировали систему с расчетом на рост. Если приложение станет популярным — оно не должно «упасть» под нагрузкой.

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

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

Для поиска внедрили ElasticSearch.

Заложили отказоустойчивость, очереди (Kafka), горизонтальное масштабирование — чтобы приложение работало стабильно в любой точке мира, при любом интернете и любом количестве пользователей.

Инсайты, гипотезы, процесс создания и взаимодействия с заказчиком

- Приложение I saw you — уже в RuStore;
- Готовая архитектура для масштабирования;
- Один из первых в России устойчивых чатов на Kotlin Multiplatform;
- План по запуску в Google Play и App Store;
- Готовность к тестированию на реальных конференциях.

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

Скриншоты

Share
Share

Номинации

Mobile, AR, VR, IoT → Сервис

Дата запуска

22 августа 2025 года

Ориентировочный бюджет

4 600 000 ₽

Авторы

Мешалов Андрей - проектирование и разработка серверной части.
Михалев Денис - разработка серверной части.
Коновалов Кирилл - iOS разработчик.
Нагель Александр и Шипицын Данил - KMP- разработчики.
Цыганов Андрей - DevOps.
Патрушева Александра - руководитель проекта.

Ссылки

rustore.ru
Крупнейший digital-конкурс в Европе
Подавайте работы до 3 июля (птн)18 000 Р,
с 4 июля (сб)24 000 Р

Церемония награждения — 4 декабря (пт)  •  Москва и онлайн
Купить билет
Количество билетов ограниченно, торопитесь!