Разработка мобильного приложения для риелторского агентства
Крупные агрегаторы — Циан, Авито — закрыли потребность в поиске объектов. Но собственное приложение агентства решает другую задачу: CRM в кармане у каждого агента, мгновенная связь с клиентом, показ объектов с подписанием документов прямо на встрече. Это инструмент работы, а не витрина.
Два приложения или одно
Типичная архитектурная ошибка — пытаться совместить клиентскую часть и агентскую в одном приложении с переключением роли. На практике это приводит к перегруженному интерфейсу и сложной логике доступа. Лучше — два отдельных Flutter-приложения, общий бэкенд API.
Приложение агента: база объектов с фильтрами, карточка клиента с историей показов, маршрут на день, документы для подписи, чат с клиентом и коллегами, фиксация статуса сделки.
Приложение клиента: подборка объектов под параметры, фото/видео галерея, виртуальный тур, запись на показ, чат с агентом, статус сделки.
Где обычно возникают проблемы
Карты и геолокация. Отображение объектов на карте через Yandex MapKit или Google Maps SDK — базовая задача. Но кластеризация маркеров при zoom out на 200+ объектах без оптимизации даёт заметный лаг на бюджетных Android. Решение — server-side clustering через PostGIS (функция ST_ClusterKMeans) и передача готовых кластеров в приложение, а не вся база.
Медиа. Объект недвижимости — это 20-50 фотографий, видео, иногда 3D-тур. Загрузка агентом фото с iPhone 15 Pro в оригинальном качестве — это 10-15 МБ на снимок. На бэкенде нужен асинхронный pipeline обработки: resize через Sharp (Node.js) или ImageMagick, генерация WebP-версий нескольких размеров, хранение на S3. Приложение отдаёт нужный размер через srcset-логику.
Подпись документов. Агент на показе должен дать клиенту подписать согласие на обработку персональных данных или предварительный договор прямо на планшете. Реализуем через canvas-компонент для рукописной подписи + генерация PDF с embedded signature через pdf_flutter или server-side через WeasyPrint.
Интеграции
- Синхронизация объектов с Циан, Авито через XML-фиды (автоматически по расписанию через Laravel Queue)
- Интеграция с AmoCRM или Bitrix24 через их REST API — двусторонняя синхронизация клиентской базы
- SMS и WhatsApp уведомления через СМСЦентр или WABA API
Стек
Flutter 3.x (два приложения), Laravel 10 + PostgreSQL + PostGIS, MinIO для медиа, Redis для кешей и очередей.
Этапы и сроки
Аналитика → проектирование двух клиентов и API → UX/UI → разработка → тестирование на Android/iOS устройствах → публикация → поддержка.
MVP (агентское приложение + клиентское, объекты, показы, чат) — от 14 до 20 недель. С полной CRM, интеграцией с агрегаторами и документооборотом — от 28 недель.
Стоимость рассчитывается индивидуально после анализа требований.







