Your mobile app is not slow, your API is chatty
Users said the Android app felt sluggish, mostly outside cities. The app was fine. Its home screen needed eleven separate API calls, some of them dependent on each other, before it could draw anything meaningful. On a good connection that is invisible. On a bad one, latency multiplies and the screen takes six seconds to become a screen.
The temptation is to optimise the client: more caching, cleverer loading states, a skeleton for every box. Those help the feeling and not the cause. What helped the cause was one endpoint that returned exactly what the home screen needed, shaped the way the screen consumed it, in a single round trip.
That sounds like bad API design if you believe endpoints should be pure resources. In practice a screen-shaped endpoint alongside your resource endpoints is one of the cheapest performance wins available to a mobile product, and it keeps the logic on the side you can deploy without waiting for a store review — which matters more than architectural tidiness the week before a release.
Measure on the network your users actually have. Every mobile performance problem I have been hired to fix looked fine on office wifi.
Sitting on a version of this problem right now? I'd rather look at it than guess.
Email me