App Bloat How Reducing the Size Of Your App Helps Downloads and Retention
|Richard Harris in Mobile Tech Saturday, September 7, 2013|
You spend time polishing your creation, and making sure it is bug free, but did you keep in mind its size? With devices having 32GB or even 128GB in storage, and carriers increasing app size limits, this might be the last thing on your mind when you’re your developing your app. However, there are some reasons for you to factor size into the equation.
Sometimes people are deterred because they don’t want to wait for an app to download, or worse, it is over a carrier limit and they need to be in a Wi-Fi hotspot to get it. An app that can be downloaded in 20 seconds is more likely to be installed than one that can take a minute or more. After all, getting more done is usually what attracted them to their mobile device in the first place and a time consuming download goes against that.
Another reason to consider is app longevity. Apps that don’t take up much room are more likely to remain on a user’s device. No matter the amount of storage, people will need to make room at some point and those apps that are taking up the most space stand a better chance of being uninstalled. An app that is uninstalled can’t be used. So we can we do to reduce it’s size?
First, when an app is being developed you usually have stray files. In large projects this can easily happen, and there can be different reasons for them lying around like being deprecated because of a rewrite or you just weren’t ready to depart of some code. A file here and another there can add up and you might be surprised how much space these can take up. You might also have orphaned code or strings. If you are using an interpreted language like Lua, even commented out code will be included and can add to the size. Take time to go through your project to find any files that are no longer needed and any unused code. Besides, it is easier when revisiting a project later on when only those things that are necessary are there.
Images are another aspect of your app that you can address to reduce size. They can easily take up most of your app (especially if you developed a game) but not to worry because there are some things we can do.
One of the easiest ways to reduce size is to eliminate any unnecessary images. For instance, if you have images that have redundant parts between them, you might consider extracting those parts so that you can reuse them. Similar to that, if you developed a puzzle game and have 5 jewels that are a different color, you can reduce those to just one image. Just apply a different color additive when creating the sprites to achieve the same effect. If you still have a lot of images, you might consider using sprite sheets instead. Not only does this reduce the number of files and their overhead for each, but you could end up using less texture memory in the process as well.
Whatever the combination you use, there is still something to do to further reduce their footprint. Using a program like PNGCrush or ImageOptim, you can possibly squeeze out a little more savings. You can sometimes see 10% or more reduction in size, but 1-5% is usually more common. Just remember that every little bit counts. It should be noted that if you are developing for Android, it already has built-in ways of optimizing your PNG files.
Another area where you can save some space is audio. Like images, they can add a good portion to your app’s size. If you don’t require stereo sounds, try making them mono instead. That can save close 50% for each one.
Another way is to replace any WAVs you have with either MP3 or OGG if the platform supports it. Lastly, you might consider using a lower bit rate.
There are still other areas to look at such as removing unnecessary features. If you included a video to demonstrate you app, you might want to consider using images instead, just don’t forget the tips from mentioned earlier. Another way to reduce size is to allow downloading of additional content remotely. A good example is only grabbing levels for a game when the user needs them. The downside is it has to be hosted somewhere, but users only have to download what is needed. Plus, you can easily add new content with out pushing an update.
So the next time you build a binary of your app for publishing, stop and think to yourself “how big is this thing anyway” because it can sometimes be a deal-killer for users with limited space on their device, or when restrictions on file size downloads stop them from downloading your app.
One day in the not-so-distant future, storage and bandwidth won’t matter as much – but today it does and you need to be conscience of it as an app developer