Article development led by
Mobile performance issues?
Fix the back end, not just the client.
BY KATE MATsuDAiRA
MobiLe CLien Ts haVe been on the rise and will only
continue to grow. This means that if you are serving
clients over the Internet, then you cannot ignore the
customer experience on a mobile device.
There are many informative articles on mobile
performance, and just as many on general API
design, but you will find few discussing the design
considerations needed to optimize the back-end
systems for mobile clients. Whether you have an app,
mobile website, or both, it is likely these clients are
consuming APIs from your back-end systems. It is this
part of that infrastructure that this article is about.
Certainly, optimizing the on-mobile performance of
the application is critical, but software engineers can
do a lot to ensure mobile clients are remotely served
both data and application resources in a reliably
What is so special about mobile? If you were to go
back in time and use the Internet, you would notice
that most websites felt slower. The
technology has now evolved to the
point that clients can efficiently use
and negotiate low-bandwidth channels. Mobile clients, however, do not
have the computer power, storage, and
high-bandwidth connections of desktops, so mobile needs to be thought
about a little differently.
Here are some of the special considerations to take into account when
building mobile-based applications:
˲ Limited screen size. There is less
space for data and images.
˲ Smaller number of simultaneous
connections. This one is important because unlike Web browsers that can
run many concurrent asynchronous requests, mobile browsers have a limited
number of connections per domain at
any given moment.
˲ Slower network. Network performance is heavily affected by poor signal reception and multiple cellular
handovers (even though some clients
are on Wi-Fi, some networks are congested and can require additional lookups if a user changes cell towers).
˲ Slower processing power. Extensive
client-side computations, 3D graphics
can greatly affect performance.
˲ Smaller caches. Mobile clients are
generally memory-restricted so it is
best not to rely heavily on cached content for performance.
˲ “Special” browsers. In many ways
the mobile browser ecosystem is reminiscent of the fragmented desktop
browser scene of several years ago, with
mobile vendors producing versions with
fatal deficiencies and incompatibilities.
Although there are many ways to
tackle these unique obstacles, this article focuses on what can be done from
an API or back-end service to improve
the performance (or the perception
thereof) of mobile clients. The article
is divided into two parts:
˲ Minimizing network connections
and the need to transmit data—
efficient media handling, effective caching, and employing longer data-orient-ed operations with fewer connections.