Розроблення мобільного додатку для риелтерської агенції
Великі агрегатори — Циан, Авіто — закрили потребу в пошуку об'єктів. Але власний додаток агенції розв'язує інше завдання: CRM у кармані кожного агента, миттєвий контакт з клієнтом, показ об'єктів з підписанням документів прямо на зустрічі. Це інструмент роботи, а не вітрина.
Два додатки чи один?
Типова архітектурна помилка — намагатися поєднати клієнтське та агентське в одному додатку з перемиканням ролі. На практиці це призводить до перевантаженого інтерфейсу та складної логіки доступу. Краще — два окремі Flutter-додатки, спільний бекенд API.
Додаток агента: база об'єктів з фільтрами, картка клієнта з історією показів, маршрут на день, документи для підписи, чат з клієнтом і колегами, фіксація статусу угоди.
Додаток клієнта: підбір об'єктів за параметрами, фото/відео галерея, віртуальний тур, запит на показ, чат з агентом, статус угоди.
Де зазвичай виникають проблеми
Карти та геолокація. Показ об'єктів на карті через Yandex MapKit або Google Maps SDK — базова задача. Але кластеризація маркерів на 200+ об'єктах без оптимізації дає помітний лаг на бюджетному Android. Рішення — серверна кластеризація через PostGIS (функція ST_ClusterKMeans) та передача готових кластерів у додаток, а не всієї бази.
Медіа. Об'єкт нерухомості — це 20–50 фотографій, відео, іноді 3D-тур. Завантаження агентом фото з iPhone 15 Pro в оригінальній якості — 10–15 МБ на фото. На бекенді потрібен асинхронний pipeline обробки: зміна розміру через Sharp (Node.js) або ImageMagick, генерація WebP-версій кількох розмірів, зберігання на S3. Додаток отримує потрібний розмір через srcset-логіку.
Підпис документів. Агент на показі має дати клієнту підписати згоду на обробку персональних даних або попередній договір прямо на планшеті. Реалізуємо через canvas-компонент для рукописної підписи + генерація PDF з вбудованою підписою через pdf_flutter або серверна через 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+ тижнів.
Вартість розраховується індивідуально після аналізу вимог.







