Cloud technology has changed the way we develop mobile applications. Users data can be stored remotely, allowing the user to access their content from any device they own. Demanding tasks can be completed by a hosted microservice, improving performance on restrictive mobile hardware. Cloud architecture has opened up so many doors for developers but created one frustrating barrier. Mobile data is typically capped, incurring large expenses for users if they exceed their limit. Consumers demand efficiency so they can get the most out of their data plan. If you’re using cloud technology in your mobile app, there are several important considerations to take into account when optimizing your mobile data use.
The time between the moment when a request is made and the moment that it is received is known as latency. For large requests, the latency is insignificant when compared with the actual transmission time. If you’re making many small requests, then latency can quickly add up to be a significant performance issue. This is a problem when optimizing for data use. Ideally, you’ll want to deliver only the exact amount of data that is requested, so there are incentives to break up requests into the smallest possible components. How can you balance transfer size with the need for low latency applications? The perfect solution is already implemented by the popular network service Usenet. All files, large and small, are broken up into specifically sized chunks. This lets you design for a specific file size, effectively managing both issues.
When you’re trying to restrict data usage, compression seems like the perfect solution. Algorithms can be used to make sure that data is stored as efficiently as possible, reducing file sizes. Unfortunately, decompressing data requires a lot of processing power, potentially reducing the performance of your application. For this reason, compression is best used only on large files. Media such as photos and videos are the best candidates for compression, as more aggressive algorithms can be used. In the event that you need to transfer very large volumes of text, gZIP has proven very effective. For code, JSON is another excellent option.
Fortunately, download speed and data optimization are complimentary issues that can be solved at the same time. Over 58% of smartphones connect using 4G, leading a number of developers to assume that all file transfers will occur at high speeds. It’s important to remember that a large portion of the market only has 3G service, and a few areas are 2G only. Your app should function well, even in low bandwidth situations. Care should be taken to ensure that essential data is preloaded, with optional information transferred after the fact.
Perhaps the easiest way to reduce data use is by considering the user’s intent. Each transfer should include nothing more than that data they intended to access. It can be tempting to create a media rich environment, making everything accessible from the same location. But this can lead to a lot of unnecessary file transfers. For example, imagine that you have a video embedded in your app. You might want to replace this with a thumbnail, buffering the video only if the user specifically requests it.