Engineering blog
Mobile engineering

Designing mobility apps for weak connectivity

How to handle stale route data, interrupted booking requests and changing EV charger availability.

A rider can lose their connection just after tapping Book. If the screen simply resets, they may tap again and submit a duplicate request. Design the app so that it can tell the difference between a request that failed and one whose outcome is still unknown.

Give each booking a stable identity

Assign the booking attempt a stable request ID before the first network call. If the connection drops, use the same ID to check the outcome or retry. Keep the original booking visible while the app resolves its state.

Show the age of trip information

A saved route can help someone orient themselves while offline. Charger availability and arrival estimates can change quickly, so display when they were last checked and make it clear when a refresh requires connectivity.

Test interrupted journeys

Test the same trip with airplane mode, intermittent connectivity and a slow response. Check what the rider sees before and after reconnecting and whether the server handles retries without creating extra bookings.