На конференции с 2000 участников сложно найти нужного человека. Типичная ситуация: вы стоите у стенда, а потенциальный партнер — в другой части зала. Мобильное приложение для нетворкинга решает эту проблему с помощью matching и discovery. Задача — реализовать функционал matching, discovery рядом и чат в ограниченном временном окне. Наш опыт (5+ лет в мобильной разработке, 50+ проектов) позволяет гарантировать качество и соблюдение сроков. В этой статье расскажем, как мы проектируем такие приложения: от профилей и BLE до чатов после встречи. Создайте инструмент, который превратит случайные знакомства в ценные деловые связи. Закажите разработку и получите готовое решение под ключ.
Как разрабатывается мобильное приложение для нетворкинга?
Профиль участника — имя, фото, компания, должность, интересы/теги, цели (ищу партнёра / ищу клиентов / открыт к найму). Теги — основа для алгоритма рекомендаций.
Алгоритм matching строится на пересечении тегов и косинусном сходстве векторов интересов. На стороне PostgreSQL используем cube extension для векторного сходства или простой array && array оператор для пересечения тегов. Для небольших событий (до 1000 участников) простая SQL-агрегация работает быстрее любого ML. Шаги реализации:
- Сбор тегов при регистрации участника. Используем предопределённый словарь (50+ тегов) и свободный ввод.
- Хранение в таблице
tags(user_id, tag). Индексация поtag. - Запрос поиска:
SELECT user_id FROM tags WHERE tag = ANY(array['AI','blockchain']) GROUP BY user_id HAVING COUNT(*) > 2— находит участников с пересечением по трём тегам. - Двусторонний интерес — «лайк» скрыт до взаимности. Реализуется через таблицу
interests(from_user_id, to_user_id), мэтч возникает когда существуют обе записи. Webhook или polling для уведомления о мэтче: push через FCM с вибрацией и звуком.
Почему мы используем комбинацию BLE и геолокации?
«Люди рядом» — популярная функция для нетворкинга. Два подхода:
| Характеристика | Bluetooth Low Energy (BLE) | Геолокация (GPS) |
|---|---|---|
| Точность внутри помещения | Высокая (до 1 м) | Низкая (10–50 м) |
| Фоновый режим iOS | Ограничен (только сканирование зарегистрированных UUID) | Работает в фоне с CLVisit |
| Потребление энергии | Низкое | Среднее |
| Зависимость от интернета | Нет | Да (для передачи координат) |
Рекомендуемая архитектура: геолокация для крупного радиуса (весь venue), BLE для «стоим рядом» (< 10 метров). BLE использует CBCentralManager.scanForPeripherals (iOS) / BluetoothLeScanner.startScan() (Android) с кастомным Service UUID, RSSI даёт приблизительную дистанцию. Apple Developer Documentation подтверждает ограничения фонового сканирования: на iOS доступно только для сервисов с зарегистрированным UUID. Время реакции API при этом не превышает 200 мс.
Обмен контактами: три механики
- QR-код профиля — генерируем
QRCodeизuserId, сканируем черезAVMetadataOutput. Самый универсальный вариант. - NFC bump — iOS 14+
NFCNDEFReaderSession+NFCNDEFWriterSession. Android —NfcAdapter.enableForegroundDispatch(). Оба устройства должны поддерживать NFC и находиться вплотную. Крутой UX, но требует согласованного действия двух человек. - Deep link sharing — ссылка на профиль через
UIActivityViewController. Получатель открывает приложение, добавляет контакт. Самый медленный, но работает без NFC и камеры.
Сохранённые контакты — список с возможностью экспорта vCard (CNContact → .vcf файл через CNContactVCardSerialization). На Android — ContentProviderOperation для добавления в системную адресную книгу (с разрешением WRITE_CONTACTS).
Встречи и расписание
Запрос на встречу — участник предлагает время из доступных слотов. Интеграция с расписанием конференции: слоты между докладами из закладок автоматически отмечаются как доступные.
Принятие встречи — push-уведомление, добавление в личный календарь через EventKit.EKEventStore (iOS) или CalendarContract (Android). Место встречи — зал конференции, кофейня в venue, или кастомный текст.
Напоминание за 10 минут — локальное уведомление. При отмене встречи другой стороной — push немедленно.
Чат после мэтча
Чат открывается только при взаимном мэтче. WebSocket соединение на мэтч или готовый SDK (Stream Chat, SendBird с freemium). История сообщений сохраняется для доступа после события — ценный контакт не должен потеряться. Время доставки сообщения — менее 100 мс при нагрузке до 10 000 одновременных чатов.
Процесс и сроки
| Этап | Длительность |
|---|---|
| Аналитика и прототипирование | 1–2 недели |
| Разработка backend API | 2–3 недели |
| Разработка мобильных приложений | 4–6 недель |
| Тестирование и CI/CD | 1–2 недели |
| Публикация в сторы | 1 неделя |
Профили + matching + discovery + обмен контактами (QR) — 6–8 недель. Встречи + NFC + интеграция с расписанием + чат — 2–3 месяца. Стоимость рассчитывается после анализа требований. Благодаря оптимизации тестов и инфраструктуры вы сокращаете затраты на этапе внедрения. Свяжитесь с нами для оценки вашего проекта и расчёта бюджета.
Технические требования к серверу
- PostgreSQL 14+ с `cube` extension - Node.js 18+ / Python 3.10+ для API - Redis для кэширования сессий - Docker Compose для локальной разработкиЧто входит в разработку
- Документация: API spec (OpenAPI), архитектурная схема, инструкция по развёртыванию
- Доступы: App Store Connect, Google Play Console, Firebase
- Обучение: 2 часа для администраторов, видео-инструкция для пользователей
- Поддержка: 1 месяц после релиза (баги и мелкие правки)
Свяжитесь с нами для получения консультации по выбору стека и архитектуры. Рассчитаем бюджет под ваш проект и покажем, как нетворкинг-приложение окупится за счёт новых деловых контактов.







