03 · Mobile · Flutter · Production

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
Three phones showing a construction management app

Client app under NDA. Screens are illustrative recreations with sample data.

LiveIn daily use by the client
RolesOwner, engineer, supervisor
Paper → appRegisters retired
01 · Context

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.

02 · Challenge

What made it hard

  1. 01Users on site are busy, outdoors and often on low-end Android phones.
  2. 02An owner, a site engineer and a supervisor need very different screens from the same data.
  3. 03The app had to match how the business already worked, not force a new process.
03 · Process

How it came together

  1. 01

    Shadow the real workflow

    Mapped the paper registers line by line before drawing a single screen.

  2. 02

    Model roles first

    Login decides the role, and the role decides navigation, actions and data visibility.

  3. 03

    Build on clean APIs

    Every screen talks to REST endpoints through a thin repository layer, so UI and data change independently.

  4. 04

    Ship and iterate

    Released to the client and refined with feedback from the people using it on site.

04 · Decisions

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.

05 · Reflection
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.
Next case study · 04

A CRM that fits in a pocket

All work