API Development

How to Build Apps for Low Connectivity

Over 51% of the global population is now connected to the internet, with roughly 2/3 of users residing in developing nations. Emerging markets in India, Southeast Asia and Africa present a huge opportunity to cultivate an app user base. But this vast opportunity can also be weighed down by poor network infrastructure, which threatens to alienate potential users with slow load times and poor functionality.

Developers can’t afford to forget about this growing audience — even tech giants are turning their focus to capturing this segment. Take Facebook’s “2G Tuesdays,” which encourages their developers to use only super-slow networks to understand how users in developing areas experience their apps. It’s an exercise all developers should consider when eyeing expansion to emerging markets.

There are three common limitations that apps face in low connectivity areas, all of which are crucial for a developer to address in order to deliver a fast, functional user experience:

  • Images, animations and video: From icons to thumbnails to animated gifs and video to full resolution, apps generally use quite a few images. Developers have to deal with the size of images that they’re downloading, request access to the image and specify the type of image they want to download. This is a prominent problem when dealing with low bandwidth and low connectivity.
  • Data access & storage: Developers need to determine a strategy for gathering, storing and using data offline and moving it to the server for storage when connectivity is reestablished.
  • Server request volume: Servers are easily overwhelmed with requests in low connectivity situations. To function successfully, apps should be designed to request only resources they need for an immediate task.

Here are a few development strategies to ensure app functionality in all environments:

  • Cache: A good caching strategy is key to maintaining app performance. Make use of local storage by caching data on the device. When the device is back online, send a bulk upload request back to the servers. However, you’ll want to be mindful of cache expiration to avoid taking up too much storage on your user’s phone.
  • Optimize images with alternate formats: While rich images greatly enhance the user experience, the sacrifice in app loading speed is often not worth the higher resolution when connection is scarce. WebP images drastically reduce image file sizes without a noticeable visual difference to the naked eye from JPEG or PNG versions. You can still serve JPEG or PNG to networks that can handle it, but plan your image request calls to retrieve WebP on low connectivity networks. For offline mode, replace the image with a lower-resolution image stored partly in the app itself. This small thumbnail can be used as a placeholder until connection allows the app to retrieve the actual image.
  • Asynchronous calls: Rather than aiming for live requests, queue requests offline. When the network is back, the app can send all requests in the queue.
  • Server-side strategies: On the server side, use caching mechanisms to push data when available. For instance, Android has released server functionality that provides more of a permission-based data access. Under this scheme, the app sends data requests only when it is in the foreground or background, optimizing general performance.
  • Update with intention: While developers aim for continuous delivery with minor and frequent updates to the application, too many frequent updates can be unproductive — you don’t want resource-strapped users using precious data on minor updates. Instead, only release app updates if changes will improve the user experience in a significant way.
  • Preserve core features in a light app: Begin by testing your app on different devices at different speeds to identify features that are most often used and consume the most processing power and bandwidth. Once you determine an app’s core functionality and user behaviors, you can create a pared-down version of the app that’s optimized for low connectivity settings. Facebook Lite, for instance, is a data-saving version of Facebook that takes up under 1MB of storage, installs in five seconds and works well on 2G networks and older devices. It preserves basic Facebook features, but cuts out those like autoplay for videos, which isn’t necessarily users’ priority when they have low connectivity. Google and Twitter have both followed Facebook’s lead with similar “lite” apps.

Potential applications for low connectivity scenarios are endless, from insurance apps that let users file claims to medical apps that let researchers upload samples from the field to offline maps to guide navigation in low connectivity areas.

For example, Axway recently helped a farm and agribusiness insurance provider develop a custom data sync app feature for their field agents who gather insurance quotes, claim and other information from on-site visits. Since the agents often visit areas where network connectivity may not exist, the app mostly operates offline, but that doesn’t mean it sacrifices any functionality. Using the new data sync feature, field agents can synchronize the gathered information with the company’s databases when a network connection becomes available again to streamline that aspect of their work.

This is just one example of approaching the low connectivity issue to improve user functionality. As the “next billion” mobile users come online, the products and services that gain traction will be the ones that preserve key functionality in low connectivity environments to provide a seamless user experience.