Running construction sites from a phone
A Flutter app for a construction company that replaced paper registers: sites, tasks, materials and people, with each role seeing only what it needs.
- Role
- Flutter developer, Cipher Craft
- Platform
- iOS & Android
- Year
- 2025
- Stack
- Flutter, Dart, REST APIs, Bloc / Provider, Role-based access

Client app under NDA. Screens are illustrative recreations with sample data.
Where this started
The client ran several sites on paper registers and phone calls. Owners had no live picture of progress, and supervisors re-wrote the same numbers every evening.
What made it hard
- 01Users on site are busy, outdoors and often on low-end Android phones.
- 02An owner, a site engineer and a supervisor need very different screens from the same data.
- 03The app had to match how the business already worked, not force a new process.
How it came together
- 01
Shadow the real workflow
Mapped the paper registers line by line before drawing a single screen.
- 02
Model roles first
Login decides the role, and the role decides navigation, actions and data visibility.
- 03
Build on clean APIs
Every screen talks to REST endpoints through a thin repository layer, so UI and data change independently.
- 04
Ship and iterate
Released to the client and refined with feedback from the people using it on site.
Choices that shaped it
Role-based navigation
Rather than hiding buttons, each role gets its own home screen. Less to learn, fewer mistakes.
Bloc for predictable state
Site data changes from many directions. Bloc keeps each change traceable.
Big targets, few fields
Forms ask for the minimum, with large tap targets for use with gloves or dusty hands.
Shipping to people who never asked for an app taught me that adoption is a design problem. The best feature was the one that removed an evening of paperwork.
A CRM that fits in a pocket
