Mobile App Development for Real Estate Agency
Large aggregators — Cian, Avito — satisfied the need for property search. But agency's own app serves different purpose: CRM in agent's pocket, instant client communication, property viewing with document signing right at meeting. This is a work tool, not a showroom.
Two Apps or One?
Common architectural mistake: trying to combine client and agent interfaces in one app with role switching. In practice this leads to bloated UI and complex access logic. Better — two separate Flutter apps, shared backend API.
Agent App: property database with filters, client card with showing history, daily route, documents for signature, chat with client and colleagues, deal status tracking.
Client App: curated properties by parameters, photo/video gallery, virtual tour, show request, chat with agent, deal status.
Where Problems Usually Arise
Maps and geolocation. Display properties on map via Yandex MapKit or Google Maps SDK — basic task. But clustering markers on 200+ properties without optimization lags noticeably on budget Android. Solution — server-side clustering via PostGIS (ST_ClusterKMeans function) and send ready clusters to app, not full database.
Media. Property is 20–50 photos, videos, sometimes 3D tour. Agent uploading iPhone 15 Pro photos in original quality — 10–15 MB per shot. Backend needs async processing pipeline: resize via Sharp (Node.js) or ImageMagick, generate WebP versions in multiple sizes, store on S3. App gets needed size via srcset logic.
Document signing. Agent at showing must let client sign data processing consent or preliminary agreement right on tablet. Implement via canvas component for handwritten signature + PDF generation with embedded signature via pdf_flutter or server-side via WeasyPrint.
Integrations
- Property sync with Cian, Avito via XML feeds (auto via Laravel Queue)
- Integration with AmoCRM or Bitrix24 via their REST API — bidirectional client database sync
- SMS and WhatsApp notifications via SMSCenter or WABA API
Stack
Flutter 3.x (two apps), Laravel 10 + PostgreSQL + PostGIS, MinIO for media, Redis for caches and queues.
Stages and Timeline
Analytics → two-client and API design → UX/UI → development → Android/iOS device testing → publication → support.
MVP (agent app + client app, properties, showings, chat) — 14 to 20 weeks. Full CRM, aggregator integration, and document workflow — 28+ weeks.
Pricing is calculated individually after requirements analysis.







