bolor/ senior product designer
back to Latista → Oracle Prime Field
Latista (acquired by Textura, later Oracle)Construction Technology / Field Operations2016

Latista Foreman App

A mobile issue-resolution app for the subcontractor foremen on the other side of Latista's construction QA platform.

Role
Product Designer — flows, wireframes, visual design, spec handoff
Year
2016
Platform
Android (Material Design), iOS (companion concepts), Sketch, PDF flow documentation
Industry
Construction Technology / Field Operations
01 / Context

Latista is a construction QA platform that general contractors use to run punchlists across large commercial projects. The desktop side was already working well for GCs and project managers. This project (internal ticket MBL-2033) built the Android app for the other end of the loop: the subcontractor's foreman who walks the floor, does the fix, and needs to prove it was done. The whole design was built around one constraint. A foreman gets credentials from the GC, opens the app cold, and has to be productive inside a minute. No training, no manual, no walkthrough.

Latista is a construction QA and punchlist platform used on the kind of jobs that have dozens of subcontractors, hundreds of floors, and thousands of open items at any given moment. The desktop product was already in good shape for the GC and project manager audience. What was missing was the app for the other end of the loop: the subcontractor's foreman doing the physical work.

The scenario is straightforward. The GC assigns an issue in Latista ("wrong chandelier, Building M, 56th floor, conference room"), and the subcontractor's foreman needs to see it on their phone, walk to the location, fix it, and close it out with photo proof. On paper this is simple. On a jobsite it is not.

One note on the source material: the archive folder from that time is labeled "Foreman App" but also contains some unrelated consumer service-booking wireframes at the top level. The Latista work — the Android issue-resolution flow, the Sketch files, the screen flow PDF, and the MBL-2033 ticket — lives in the archive. That is the work described here.

02 / The Challenge

What was broken.

Punchlist work is where construction projects lose money. A GC's superintendent walks a floor, finds a wrong chandelier or a scratched panel or a missing gasket, and logs it in the desktop Latista system. The fix depends on a subcontractor's foreman who is somewhere else on the site, doesn't want to type on a phone in a jacket pocket, and does not have time to learn a new interface. If the loop from "issue assigned" to "issue verified fixed" takes days instead of hours, the schedule slips.

The design problem was to give the foreman the smallest possible surface area for seeing what was assigned, doing it, and proving it. No manuals. No walkthroughs. The onboarding is a GC handing over credentials and saying "check your issues on here."

The constraints matched the environment. Users belong to multiple projects, so context can't be assumed. Data on a jobsite is spotty; there is a bar of LTE in the parking lot and nothing on the 56th floor. Gloves and sun glare mean large touch targets and high contrast. And the GC needs verifiable proof the work was done, not a checkbox someone tapped by accident.

03 / Workflow-first

Workflow first — the assigned-issue resolution loop

The workflow on this project was the product. The screens were where the flow surfaced. The diagram below is the assigned-issue resolution loop from ticket MBL-2033, as it shipped. Every step has an actor and a real requirement, which is how we decided what to keep and what to cut.

flow diagram · v1
8 steps
  1. 01

    Issue created in desktop Latista

    A superintendent walks the site, finds a defect, logs it in the desktop Latista system, and assigns it to a subcontractor's foreman with a location, description, and due date.

    GC / Superintendent
  2. 02

    Login and select project

    The foreman opens the Android app with credentials from the GC. The first-launch flow requires a project pick from a dropdown because foremen often work across multiple active jobsites. That choice sticks until they change it.

    Foreman
  3. 03

    Browse assigned issues

    The Issues list has two tabs: My List (what's assigned to me) and Company List (everything my subcontractor company owns). Each row leads with location: building, section, hall. A foreman sorts by where to walk next, not by issue name.

    Foreman
  4. 04

    Open a single issue

    Tapping an issue opens a screen with the location down to the room, the assigner's name, the due date, and the correction needed. One primary action dominates: MARK AS FIXED. It is sized for gloved hands and tuned for high contrast in sun.

    Foreman
  5. 05

    Do the physical work

    The foreman walks to the location and does the fix. The app can't help with this part. Its job is to get them out of the app and back to work quickly.

    Foreman
  6. 06

    Photo-required prompt

    Tapping MARK AS FIXED opens a modal: "Progress photo is required." Options are Take a Photo or Cancel. Without a photo there is no closure. That is the QA gate.

    Foreman + System
  7. 07

    Camera capture and queued sync

    The native Android camera opens. The foreman shoots the completed work and the photo attaches to the issue. If WiFi-only sync is on, the upload queues until they're back near a router. Ask-before-upload can force a confirmation to protect data plans.

    Foreman
  8. 08

    Closure and GC verification

    The issue moves to Fixed on the desktop side with the photo attached as evidence. The superintendent verifies on the next walk. If it's genuinely fixed the loop closes. If not, the issue re-opens with a comment and the cycle restarts.

    GC / Superintendent
04 / Process

From tangled to shipped.

01

Map the workflow before drawing any screen

Before opening Sketch I mapped what a foreman actually does in a day. They show up on site, find out what's on their plate, walk to a location, do the work, and someone verifies it. The app had to compress that loop rather than add ceremony to it. I wrote the flow out as a linear sequence — Login, Select Project, Issues list, Single issue, Mark fixed, Photo required, Camera, Done — and stress-tested each step by asking what would break if a foreman skipped it.

02

Field research and stakeholder interviews

I talked to Latista's PMs and support team about what was going wrong in the field. The recurring theme was proof. GCs were closing issues in the desktop system based on a subcontractor saying "yeah it's done," and then finding the same defect two weeks later on a walkthrough. The photo requirement came out of that pattern. I also learned that foremen often float between two or three active projects, which is why "which project am I in right now" needed to be a first-class decision rather than a buried setting.

03

Wireframes and visual system

I wireframed in Sketch (MBL-2033.sketch, 2033.sketch in the archive) and kept the visual language plain: Material Design, teal-green primary, Roboto, standard Android system navigation. No custom controls unless there was a specific reason. The single-issue detail took the most iteration. Early versions had metadata everywhere. The final version showed location, assigner, due date, what to fix, and one button.

04

Edge cases and offline behavior

I worked through the edge cases the flow diagram surfaced. What happens when a foreman taps Mark As Fixed with no signal? Queue the photo, sync when WiFi returns. What if they belong to twelve projects? Searchable dropdown that remembers the last-used project. What if a notification lands while they're mid-camera? Don't interrupt the capture. Most of the design at this stage was writing rules rather than drawing screens.

05

Spec and handoff

I handed off to engineering with the flow PDF, the Sketch source, and a written spec on the sync rules. The ticket (MBL-2033) tracked the build. What I would do differently now: spend more time on the notifications side. I designed the list but under-specified the push-notification copy, and the dev team figured it out in-flight. It worked, but I should have owned it.

05 / Solution

The moves that worked.

01 / solution

Issues sorted by location, not by description

Each row in the Issues list leads with building, section, and hall. A foreman on the 56th floor sorts by where to walk next rather than by issue name. Moving location to the top of the row changed how fast the list scanned.

02 / solution

One screen, one decision, one button

The single-issue detail is stripped down: location, who assigned it, when it's due, what to fix, and one primary button (MARK AS FIXED). No comments thread, no attachments panel, no status dropdown. Anything the foreman didn't need to make the next decision was cut.

03 / solution

Photo-required closure

An issue can't be closed without an attached photo. Tapping Mark As Fixed brings up the prompt: Take a Photo or Cancel. The GC side needed verifiable evidence, and enforcing it at closure was the cleanest place to put that requirement.

04 / solution

Field-aware settings

Sync only on WiFi. Ask before upload. Enable notifications. Three toggles that read as ordinary settings but represent the entire offline strategy exposed as user control. Construction sites eat cellular data and drop uploads mid-flight, so giving foremen explicit control worked better than any silent "smart" sync we could have built in 2016.

05 / solution

Multi-project context as a first-class concern

Project selection is the first thing after login and can be changed from the navigation any time. Foremen who work across multiple jobs never have to guess which context they're in. The dropdown is searchable because some GCs name projects "HQ-Tower-East-Phase-2-Retail-Level."

06 / solution

Voice search for gloved use

Search supports Android's built-in voice recognition. A foreman with dirty gloves can hold the phone up and say "chandelier" to filter their list. It costs nothing because it's OS-native, and it makes the app usable in the exact conditions where typing isn't.

06 / Gallery

Screens and scraps.

Android app user flow — the assigned-issue resolution loop, drawn as one diagram before a single screen existed.
Android app user flow — the assigned-issue resolution loop, drawn as one diagram before a single screen existed.
Issues list — My List vs. Company List, with rows sorted by location because that is how a foreman decides where to walk next.
Issues list — My List vs. Company List, with rows sorted by location because that is how a foreman decides where to walk next.
Single issue view — one primary action dominates: MARK AS FIXED. Sized for gloves, tuned for high contrast.
Single issue view — one primary action dominates: MARK AS FIXED. Sized for gloves, tuned for high contrast.
The QA gate — no photo, no closure. This turns a checkbox into evidence.
The QA gate — no photo, no closure. This turns a checkbox into evidence.
Native camera capture. Queued for upload when WiFi is available; ask-before-upload protects data plans.
Native camera capture. Queued for upload when WiFi is available; ask-before-upload protects data plans.
Project selection at first launch — foremen work across multiple sites, so context has to be explicit.
Project selection at first launch — foremen work across multiple sites, so context has to be explicit.
Search with Android voice input, for anyone whose hands are full or dirty.
Search with Android voice input, for anyone whose hands are full or dirty.
Settings — WiFi-only sync, ask-before-upload, notification controls. Every toggle earned its place.
Settings — WiFi-only sync, ask-before-upload, notification controls. Every toggle earned its place.
07 / Outcome

What shipped. What changed.

What shipped: an Android app a subcontractor foreman could open cold, pick their project, see their assigned issues, walk to the location, fix the item, take a photo, and close the issue. No training call. No PDF manual. The photo-required rule became the most valuable feature of the app, because it gave GCs verifiable evidence that work had happened. Field settings for WiFi-only sync and ask-before-upload meant crews on data-hostile sites weren't burning plans or losing captures.

I don't have hard adoption metrics from this distance. This was 2016. Latista later became Textura and then Oracle, and I would rather leave the metric blank than invent one. What I can say: the shipped app matched the flow diagram in MBL-2033 almost step for step, which is unusual for construction software of that era.

What I’d do differently

If I were doing this project again today, I would design offline-first from day one. The sync rules got layered on later rather than baked in, and that showed up in a settings screen full of toggles that a better-designed system would have hidden. I would also spend real time on the notification copy and the empty states, both of which I treated as afterthoughts. The one habit I would keep is mapping the workflow before opening Sketch. Every good decision on this project traced back to that flow diagram. Every weak decision traced back to a screen I designed before I understood where it sat in the loop.

next chapter →

Quick Punch — draft issues at punch-walk speed

Cutting the intake time for a single issue in Oracle Prime Field from three-plus minutes down to a few seconds, without losing anything QA needed later.