Разработка мобильного приложения для нетворкинга на мероприятиях
Нетворкинговое приложение — это Tinder-механика, примененная к профессиональным контактам: свайп или взаимный интерес, мэтч, чат. Дополнительно: discovery рядом, обмен визитками, планирование встреч. Всё это работает в ограниченном временном окне конференции или события.
Профиль и matching
Профиль участника — имя, фото, компания, должность, интересы/теги, цели (ищу партнёра / ищу клиентов / открыт к найму). Теги — основа для алгоритма рекомендаций.
Matching алгоритм: пересечение тегов + косинусное сходство на векторах интересов (если список тегов большой). На стороне PostgreSQL: cube extension для векторного сходства или простой array && array оператор для пересечения тегов. Для небольших событий (до 1000 участников) — простая SQL-агрегация работает быстрее любого ML.
Двусторонний интерес — «лайк» скрыт до взаимности. Реализуется через таблицу interests(from_user_id, to_user_id), мэтч возникает когда существуют обе записи. Webhook или polling для уведомления о мэтче: push через FCM с вибрацией и звуком.
Discovery рядом: Bluetooth и геолокация
«Люди рядом» — популярная функция для нетворкинга на мероприятии. Два подхода:
Bluetooth Low Energy (BLE) beaconing. Каждое устройство периодически рассылает свой userId в BLE advertisement (Custom Service UUID). Другие устройства слушают через CBCentralManager.scanForPeripherals(withServices:) (iOS) или BluetoothLeScanner.startScan() (Android). RSSI (сила сигнала) даёт приблизительную дистанцию. Преимущество: работает без интернета и GPS. Проблема: на iOS в background режиме BLE scanning ограничен — только для зарегистрированных Service UUID.
Геолокация. CLLocationManager.requestLocation() (iOS) / FusedLocationProviderClient.getCurrentLocation() (Android). Клиент отправляет координаты на сервер, сервер возвращает список пользователей в радиусе N метров. Геолокация точнее BLE на открытых пространствах, хуже — внутри зданий.
Рекомендуем комбинацию: геолокация для крупного радиуса (весь venue), BLE для «стоим рядом» (< 10 метров).
Обмен контактами
Три механики обмена:
-
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). История сообщений сохраняется для доступа после события — ценный контакт не должен потеряться.
Процесс и сроки
Профили + matching + discovery + обмен контактами (QR) — 6–8 недель. Встречи + NFC + интеграция с расписанием + чат — 2–3 месяца. Стоимость рассчитывается после анализа требований.







