Performance Improvements on the Contacts Page | List View

TL;DR The List View of the Contacts Page is now much faster.

Overview

We have been working on improving the performance of the CHT. Previously, we worked on the Detail View of the Contacts Page. To quantify these improvements, we’ve been running simulated user behavior on physical devices and evaluating apdex scores. To see more about how we tested these, see this post.

Area of Focus

We worked on speeding up the List View of the Contacts Page. This is the first thing users see when they tap on the tab, and it is probably the most visited screen in the app.

Results

Significant gains were achieved. The baseline score was 0.68 (Poor) and the score with the updates was 0.91 (Good). This page implements lazy loading, where only a subset of rows initially, and loads more rows as the user scrolls through the list. CHWs are normally seeing a list of households on this screen. Their phones typically show between 8 and 12 households within the frame of the screen and they typically have fewer than 150 households total in the list. The improvement was achieved by reducing the number of households loaded during the initial and subsequent loads from 50 down to 25.

Apdex scoring
apdex_legend-2024-05-06_12-29-04

Snapshot Satisfied Tolerable Frustrated Total Apdex Score Level
Baseline 22 37 1 60 0.68 (:heavy_multiplication_x:) Poor
After 50 9 1 60 0.91 (★) Good

Summary

The changes are expected to be included in 4.8.0 . The only thing you need to do to take advantage of this massive performance gain is to upgrade to this version.