Развлечение и спорт
Порталы и сервисы
iOS, Android
Сентябрь 2026
Приложения знакомств устроены как бесконечная переписка: люди листают анкеты, переписываются неделями и редко доходят до встречи. Заказчик хотел перевернуть логику — сделать сервис, где смысл в приглашении на конкретное место и время, а не в диалоге ради диалога.
Отсюда требования: карта с местами и заведениями, приглашения с датой, чат для деталей встречи, уведомления, которые доходят вовремя, и модерация — в таких сервисах без неё нельзя.
Нужны были приложения для iOS и Android, а не мобильный сайт: работа с картой, геопозицией и push-уведомлениями требует нативных возможностей.
Сделали приложения для iOS и Android на Flutter из одной кодовой базы, плюс веб-часть и админку для модераторов.
Карта мест. Пользователь видит на карте заведения и события, откуда можно позвать человека или принять приглашение. Работали над скоростью: когда меток на экране много, карта не должна тормозить и разряжать телефон.
Приглашения и лента. Смысл сервиса в приглашении с местом и временем, поэтому оно устроено как отдельная сущность со своим статусом, а не как сообщение в чате.
Чат в реальном времени. Отдельно доводили поведение при плохой связи: сообщения не теряются и не задваиваются, когда телефон в метро или переключается между сетями.
Уведомления. Push о приглашении и ответе должны приходить сразу, иначе встреча не состоится. Разбирались с доставкой на фоне и в спящем режиме, отдельно на iOS и Android.
Модерация. Анкеты и жалобы проходят через админку: в сервисах знакомств это не опция, а условие работы.
Бэкенд на NestJS с PostgreSQL и Redis.

Приложения собраны для iOS и Android, проект развивается. Около 600 файлов исходного кода, 180 коммитов.
Карта, приглашения, чат и уведомления работают в одном приложении, без переключений между сервисами: увидел место — позвал — договорились о встрече.
Технически самое ценное в проекте — то, что обычно ломается уже после запуска: карта не проседает при сотнях меток, чат переживает плохую связь, а push-уведомления доходят и на iOS, и на Android, включая спящий режим.
