CASE STUDY–

ArcGIS Field Maps Rebuild

THE PRODUCT

ArcGIS Field Maps is an all-in-one field app that uses data-driven maps and mobile forms to help workers perform data capture and editing, find assets and information, and report their real-time locations. It is a B2B SaaS/Enterprise product.


It exists as native apps on iOS, iPadOS and Android.

THE OBJECTIVE

The app was rebuilt using SwiftUI and Jetpack Compose, and includes new capabilities for data capture and editing with overall UX and accessibility enhancements to match the newest OS requirements. We successfully migrated 80% of users so far.


Timeline: 2022 - 2025

UX STRATEGY

UX/UI

A11Y

CASE STUDY–

ArcGIS Field Maps Rebuild

THE PRODUCT

ArcGIS Field Maps is an all-in-one field app that uses data-driven maps and mobile forms to help workers perform data capture and editing, find assets and information, and report their real-time locations. It is a B2B SaaS/Enterprise product.


It exists as native apps on iOS, iPadOS and Android.

THE OBJECTIVE

The app was rebuilt using SwiftUI and Jetpack Compose, and includes new capabilities for data capture and editing with overall UX and accessibility enhancements to match the newest OS requirements. We successfully migrated 80% of users so far.


Timeline: 2022 - 2025

UX STRATEGY

UX/UI DESIGN

A11Y

KEY CAPABILITIES OF FIELD MAPS

Offline Web Maps + Parcel Data Edit/Sync

Data Collection via Smart Forms and Calculated Expressions

Marking of Assets (hydrants, utility networks, houses, construction poles, etc.) as Spatial Features on a Map

Location Tracking and Geofences

Displaying Related Assets and Records


and many more.

SO, WHY NATIVE?

Main workflows in Field Maps require that we provide reliable data across features so that users are able to view and collect information with minimal disruption. This means that having direct access to device capabilities and hardware during implementation increases efficiency.

Main workflows in Field Maps require that we provide reliable data across features so that users are able to view and collect information with minimal disruption. This means that having direct access to device capabilities and hardware during implementation increases efficiency.

Syncing

Background Processing

Continuity

Ongoing usage

Precise Location

Access to GPS + Sensor Data

Reliable Maps

Online + Offline Data

Reliable Maps

Online + Offline Data

THE REBUILD FOR DEVELOPMENT AND DESIGN

SwiftUI

Jetpack Compose

Apple’s HIG

Google’s MD3

Google’s Material Design 3

The aim of this rebuild, from a team perspective, was to set the foundation for easier maintenance of the app moving forward. This meant:


  • Keeping the code structure as close as possible between platforms.

  • Using the same simplified naming convention for Modules, Instances, Views and ViewModels, etc. in both codebases–to improve communication and efficiency when addressing issues or implementing new features.


What did this translate to for design?

What did this translate to for design?

STICK TO PROVEN CONVENTIONS

STICK TO PROVEN CONVENTIONS

Follow Apple’s Human Interface Guidelines & Google’s Material Design 3 specs.

Maximize the use of built-in components in the UI frameworks to optimize performance and accessibility.

Adopt native, first-party app patterns.

FACILITATE SIMPLICITY FOR USERS

Keep interactions familiar like consumer apps.

Keep interactions familiar like consumer apps.

Support non-GIS users that just need to complete the tasks they’re assigned.

Strip away complexity of workflows and make the user-facing experience digestible.

Strip away complexity & make the user-facing experience digestible.

FACILITATE SIMPLICITY FOR USERS

+

“Going with the Grain” – and what it gives us.

Typography

Consistency

A11Y Text Scaling

SF Symbols

Material Icons/Symbols

Iconography

Dark Mode

A11Y Contrast

Semantic Colors

In-Built Interactions

Optimized Behavior

Performance

SYSTEM AND CUSTOM DESIGN LIBRARIES

Apple’s Sketch Library + Custom iOS Library + System and Custom Material Design 3 Library

We have four separate libraries for main components, with the iOS Custom and Android libraries being manually constructed to follow the native guidelines. I took the lead in transitioning our Android libraries from Material Design 2 to Material Design 3 Guidelines and specs. Some examples are:

MD3 System Menus

MD3 Buttons

Custom Android Components for the Markup Feature

Custom Sheet Header

The components closely follow detailed anatomy guidelines listed by Google, and the custom ones are also built incorporating system font, colors, styles, etc. to maintain a consistent look.

BLENDING SYSTEM & CUSTOM CONTROLS

Example Flow – Identifying Features on a Map (iOS to Android)

Map with Multiple Item Types

Map List Showing Selected Cluster of Items

Detail View

Key Components


Bottom Sheet

Sheet Header

List Item

Section Header

Selected Feature Action Buttons

Data Fields


BUILDING FOR PLATFORM CONSISTENCY

Designing from the ground up, one platform to another

Custom Sheet Headers

Custom iOS Buttons

System MD3 Chips

Custom iOS List Item

System MD3 List Item

In most cases, we design for one platform before doing parity work on another. In the above example of the bottom sheet, components on iOS might exist as a pattern in first-party Apple apps, but they are not provided in the system sketch library. In these cases, we build them out as custom symbols in our library and codebase, and find the closest system alternative on Android if possible.

In most cases, we design for one platform before doing parity work on another. In the above example of the bottom sheet–for a design we want to go with, components on iOS might exist as a pattern in first-party Apple apps, but they are not provided in the system sketch library. In these cases, we build them out as custom symbols in our library and codebase, and find the closest system alternative on Android if possible.

BEYOND THE DESIGN - A11Y CONSIDERATIONS

Screen Readers and Dynamic Type

I took the reins for testing the previous version of Field Maps with screen readers and different text sizes, and did the same with QA builds for the app during the rebuild. It was apparent that work was required to make the app more accessible. For the first release, some key problems with iOS were addressed.


Navigation. The View structure needed tweaking so that VoiceOver read things out semantically.

Dynamic Type. Support for adaptable layouts as text size was increased to AX1 and beyond was necessary.

Intermittent States. VoiceOver previously did not focus on and read out any changes in state for input or submission, eg. errors.

Adaptable Layouts Between the Large Text Size to AX1

This work required establishing a standard for labels, states, hints, and any gestures or custom actions for different variable components in the design like form and media elements among other layouts.

A lot of the a11y groundwork for interactive elements was successfully established for Field Maps on iOS, with some work on Android as well. However, we were limited by the lack of ability to interact with the map using native a11y tools because the Runtime SDK team at Esri, whose work powers the app, doesn’t currently support it. We involved them in cross-team discussion along with the central Accessibility team to highlight the area of opportunity for mobile and foundational patterns we could establish at the company.

Create a free website with Framer, the website builder loved by startups, designers and agencies.