I was browsing on Google Play a few days ago. I wanted to find some new apps that could be inspiration in term of functionality or UI/UX. But then I saw something that more interesting.
And I was thinking, “So, this is really matter now?”.
I’ve known a lot of start-ups and big companies still don’t really care about build size. Just need to finish and ship the apps. That’s all. And what Google’s done could be a good thing to encourage developers to be more aware that build size is important.
I remember back when I worked in a game company, worked on HD mobile games specifically. Every teams were being pushed to make build size for each stores (Apple Store, Google Play, Windows & Windows Phone Store) smaller. At the first time, I thought that we needed to do that because of build limits for each stores, Apple Store 4GB (previously 2GB), Google Play 50MB (expansion up to 4GB), and Windows & Windows Phone Store 2GB. We were already on the safe point, yet still being pushed to make it smaller. Under 500 – 1000MB for pure 3D games and under 100MB for casual / social type games. Of course without losing its quality.
That was a really frustrating moment because the size of raw data (image assets, etc) is at least 10GB (could be more than 20GB for pure 3D), and we need to make it under 1GB for the final size. I was wondering why we had to torture our self to do such thing. But then I got the point that we need to think about the users, globally. And by globally I mean the behavior of the user, the internet connection, and the willing to download such a big file in their city or country.
I know that apps is far different from games. I know that you probably thinking that build size for an app is mostly less than 50MB and no need to worry about that. And if you have that in your mind, you really need to think twice. Encouraging people to download an app is harder than it is for a game. People always have a special place in their heart for games. Imagine you want to make a racing game, you know there are a lot of racing games out there, add some new different racing tracks and people would download and play your game. And now imagine you want to make a chat app, you know there are a lot of chat app out there, do you think that if you add some new stickers people will download your chat app instantly? Well, some people might does. But most of them would stick to their preferable chat app. And in the end, your users will probably forget your chat app and change it with the most popular or the most used one.
Then how build size will help? The functionality and the design of the app still the most important stuffs to think. But the smaller the build size, the bigger the chance of your target users to download your app. This would really help if the app is in segmented-app category, like sports or weather apps. Promoting chat apps, kind of universally-used apps for all hobbies, professions, genders and ages, is easier than promoting soccer apps which only people who likes soccer would download it. And small build size will increase the chance of segmented-apps, like soccer apps, to be downloaded.
I was working on TheFans for Android for last few months, doing quite massive revamp. TheFans is basically soccer app which provide detailed news and statistic for Indonesian Super League. It’s obvious that the target users is generally Indonesian. And people in Indonesia will think more than twice to download apps, especially fresh or not-well-known app, mostly because of the internet connection. Actually it’s a bit better than before, but still really expensive. People will try to find Wi-Fi connection. And if not, sadly, the chance of the app to be downloaded is smaller.
I started to worry at the beginning of the revamp process as the build size increased more than twice of the old version on Google Play. It increased from 3.5MB to 9.7MB. That was reasonable because we were adding new features and assets, but that was really unacceptable.
I found that the main problem was new assets we added. It was quite a lot, and most of them were exported in large size. So, I was simply optimize the PNGs without losing its quality. There are a lot of tools that you can use, like OptiPNG or PNGCrush, but I personally prefer an online tool TinyPNG.
For all platforms, I believe that we should avoid duplication for both functionality and assets, and we should remove any unused resources as well. For Android, there are a lot of tricks to reduce the build size. Use ProGuard, remove debug log, and use 9-patch images are some of them.
The final build size for TheFans is 4.5MB. It’s still 1MB bigger, but quite acceptable result. And I don’t want to extremely reduce its quality.
So, after we have small size then we’re going to have numerous downloads? Well, the small size we’re talking is not going to increase the number of download instantly. We still need the work of marketing and other part of the team to promote the app. We only help to make their work little bit easier.