CASE STUDY — 02

Capital Tools

Web, native, and the gap between them.


Role
Lead UX designer
Duration
—
Constituencies
Tool coordinators · depot & L1/L2 support · vendors · finance
Stack
Angular · Capacitor (iOS) · Swift (native scanner) · design tokens

Summary

Context. Capital Tools is the sibling application to PIM, managing AT&T's high-value capital equipment (test sets and field tools) across a nationwide network of coordinators, depots, and vendors — tracked through procurement, tagging, assignment, and eventual archival.

Problem. Capital Tools needed to extend beyond the desktop web application into a native iOS experience, because field users needed direct access to hardware — specifically a barcode scanner — that a browser can't reach. The application also inherited PIM's core UX problem: dense, 100-field data records that work in a desktop grid and break completely on a phone.

Contribution. I designed the web-to-native bridge (an Angular app wrapped in Capacitor, integrated with a separately-built native iOS barcode scanner), rebuilt the core data-record pattern for mobile from first principles, and worked directly with a Swift developer to make sure the web design language and the native shell actually felt like one product rather than two.

Impact. A responsive/native pattern — record cards with a full-detail overlay — that solved the 100-field problem for mobile without losing the data itself, and a working integration model between PIM's web design system and a genuinely native iOS surface.

What Capital Tools actually manages

Capital Tools tracks high-value capital equipment — test sets and field tools — through a full lifecycle: ordering and funding approval (routed through AT&T's capital funding approval system), asset tagging and onboarding into the Mobile Work Force platform, assignment and reassignment across regions, and eventual archival with a documented reason code.

The operational roles involved give a sense of the scale: National Tool Coordinators, Area Tool Coordinators (ATCs), depot and Level 1/2 support teams, vendors, and finance — all touching the same records at different points in a tool's life. Every "correct the assigned owner" ticket sits on top of a real financial and operational workflow, not just a UI form.

The problem: a 100-field record doesn't fit on a phone

Capital Tools inherited the same data density problem as PIM: desktop tables capped at 8–10 visible columns to avoid horizontal scrolling, with an expandable row for records that can carry around 100 individual data points. That works on a desktop monitor. It does not work on a phone screen, and simply shrinking the table wasn't a real option.

The pattern I designed instead:

FIG_01 — desktop table → mobile record

Placeholder: sequence showing the desktop data table condensing into a mobile record card, then expanding into a full-detail overlay.
To be replaced with the actual sequence. Content shown: the same record represented as a dense desktop table, a mobile card surfacing only high-value fields, and a full-detail overlay for the rest.

The point of this pattern isn't that it looks clean — it's that it's a deliberate information-architecture decision: what does a field user need at a glance versus on demand, and how do you preserve access to the full record without forcing everyone to scroll past it every time. This is the same discipline SAP Fiori, Salesforce Lightning, and other enterprise mobile products apply to dense record types, and arriving at it independently — rather than copying a pattern library — is part of what I'd call out here.

From responsive web to a genuinely native app

Capital Tools needed something a mobile browser can't provide: real hardware access, specifically to a barcode scanner. The team's direction was Capacitor — a framework that wraps the existing Angular web application inside a native iOS/Android shell, giving it access to native device APIs (camera, Bluetooth, filesystem) while reusing the same codebase and, critically, the same design system.

That decision had UX consequences I had to design around, not just development consequences the engineering team absorbed alone:

FIG_02 — web vs. native shell

Placeholder: side-by-side comparison of the web PWA's browser chrome against the native shell's status bar and home indicator treatment.
To be replaced with real device captures. Content shown: the web PWA still carrying browser chrome, next to the Capacitor-wrapped native shell with the status bar and home indicator treated as design surfaces.

Designing for iOS without an iOS background

I'd mostly worked on web applications before this. Rather than porting web UI conventions directly onto iOS — which tends to feel subtly wrong to native users even when it's functionally fine — I worked through Apple's Human Interface Guidelines deliberately, translating web habits into their native equivalents rather than assuming they'd carry over:

Web habit Native iOS approach I designed toward
Dropdown menu Segmented control / native picker
Modal dialog Sheet / bottom sheet, gated appropriately by task weight
Table row List with disclosure, or record card
Tag / chip No direct iOS equivalent — capsule-styled buttons for filters, plain labels/badges for passive status

I met directly with the Swift developer building the native scanner to align on this rather than handing off a pure-web mockup and hoping it translated. Specific decisions that came out of that collaboration and independent HIG research:

None of this required me to become an iOS developer. It required treating "I don't have iOS experience" as a research problem to solve quickly, the same way I approached the wireline/hardwire domain gap on PIM — HIG documentation, direct conversation with the engineer who understood the platform constraints, and a willingness to deliberately not just reskin the web app.

Outcome, honestly stated