Construction (ConTech) Mobile App Development
Foreman photographs a defect on site — a week later can't find which floor, which axis, which structure. Photo exists, geolocation exists, but BIM model binding — doesn't. This is the gap between field reality and project documentation that ConTech apps should close.
Working with BIM Models on Mobile Device
BIM model of industrial object in IFC format weighs 200–800 MB. Opening this on iPhone in native viewer — non-trivial task. Two approaches:
Streaming rendering from server. Forge API (Autodesk) / Trimble Connect convert IFC/RVT to optimized SVF2 format, mobile client gets only visible objects for current camera via WebGL viewer in WKWebView/WebView. Works on any device but requires internet and paid API.
Native lightweight viewer. For offline work convert IFC to glTF via IfcOpenShell, slice into LOD levels (rough geometry for distant view, detailed for zoom in) and render via SceneKit (iOS) or Filament (Android). Control memory consumption via streaming geometry — load only blocks in current frustum.
Defect binding to BIM element: user taps object in viewer, gets guid of IFC element that remark attaches to. On server — PostgreSQL with ltree for storing BIM object hierarchy.
Field Control and Remark Management
Each job site remark — this is:
- Defect photo (
CameraX/AVFoundation, save withEXIF GPS) - Geolocation (GPS coordinate + binding to floor/section)
- Defect type (from classifier matching GOST or EN ISO)
- Responsible contractor
- Deadline for correction
- Status:
open → in_review → resolved → closed
Offline sync — mandatory. Construction site often in weak coverage zone. Room + WorkManager (Android) or CoreData + BGAppRefreshTask (iOS).
Integration with construction platforms: PlanGrid (Autodesk), Procore (REST API + OAuth 2.0), Buildertrend, BIM 360 — all provide API for pushing remarks. If client has active license — integrate, don't duplicate.
Geolocation on Site
GPS inside building under construction gives ±15–50 meters — useless. For precise binding use:
- Indoor positioning via BLE (iBeacon from Estimote / Kontakt.io): enough for floor navigation (~3–5 meters)
- UWB (Ultra-Wideband): Apple U1 / NXP SR040 — centimeter accuracy but requires beacon infrastructure and Android support limited
- QR-codes on structures: stickers with QR on columns, manual scanning, section binding — cheap, reliable, no infrastructure
For most projects QR-codes on floors and sections + GPS coordinate outside building sufficient. UWB only if site is large and budget allows beacon infrastructure.
Construction Drawings and Markup
PDF drawing viewing with ability to add pin-remark — basic function. PDFKit (iOS) or PdfRenderer (Android). On large A0-format drawing iPhone SE PDFKit performance drops — need tile-based pagination: render only visible sheet part.
Drawing editing (lines, text, clouds for remarks) — CoreGraphics / Canvas API over PDF layer. Save annotations separately from original PDF (overlay pattern), don't modify original.
Attendance and Work Time Logging
Workers check in via QR on site or GPS geofence. Record entry/exit time + photo verification (selfie with liveness detection — Onfido or custom TFLite model).
Technology Stack
| Component | iOS | Android |
|---|---|---|
| BIM viewer | SceneKit / WKWebView + Forge | Filament / WebView + Forge |
| Maps | MapKit / MapLibre | Google Maps SDK / MapLibre |
| Offline data | CoreData + CloudKit | Room + WorkManager |
| PDF drawings | PDFKit | PdfRenderer |
| Construction platforms | Procore API, BIM 360 API | Procore API, BIM 360 API |
Development Stages and Timeline
- Audit: what platforms client uses (Procore, Autodesk, 1C), what BIM format (IFC/RVT)
- Choose offline strategy — what should work without network, what not
- Design main screens: drawings, remarks, BIM viewer, attendance
- Development + integration with external systems
- Pilot on one site (3–4 weeks), collect feedback from foremen
- Scale
MVP (remarks, photos, PDF drawings): 8–12 weeks. Full ConTech platform with BIM, geolocation and ERP integration: 5–8 months. Cost calculated after requirements audit.







