The Ultimate Pre-Release Checklist for Android App Success On Play Store

Aritra Roy
Aritra's Musings
Published in
14 min readOct 30, 2016

--

We all work hard for weeks or even months on building our Android app from scratch. We all want our app to stand out from the rest and make a lasting impression on our users.

As they say, “The first impression is the last impression”, so how do you make a smooth and successful app launch and create a glittering first impression on your users?

There is so much to learn, implement and cover before making your final release in Play Store. So without wasting a moment, let’s jump into it straight away.

1. Time To Put Your App On Diet

No one likes to download a large app and specially when they are on a slow network like 2G or Edge (yes, it still exists). It is highly likely that an user lands on your app’s page on Play Store, decides to install it but cancels it later just because it is took ages to download.

An APK is simply an archive containing your your app’s classes, resources, assets and some other files. You would want to keep it as small and tight as possible. There are several ways you can optimize your app size.

Always use ProGuard or DexGuard to shrink the size of your app by removing a plethora of unused methods. This step itself can show you a significant reduction in app size. Also compressing the resources (like images, audio files, etc) included in the APK is a no-brainer.

If your app needs to store several assets (like images, video clips, audio clips, etc), then it is always better to off-load them to your server and load them on-demand.

Before releasing your app, spend some time analyzing what’s actually going inside your APK. Android Studio 2.2 has an APK Analyzer built-in just for this purpose.

Bonus: Use tools like TinyPNG or ImageOptim to significantly reduce image size and that too, losslessly. You are welcome.

2. Make Your App Speak Several Languages

This is probably the best time to prepare your app for localization. Your app will run on various Android devices on various regions, and you would absolutely want to make your app usable to everyone.

Localization is not Translation. It’s much more than that.

Suppose you have made a simple note-taking Android app supporting only your native language, English. But it doesn’t mean that a French or a Spanish user wouldn’t want to use your app or buy its premium version maybe.

You can massively increase the target audience of your app by supporting multiple languages.

Before releasing your app, make sure that all the strings are properly placed in the strings.xml file and nothing is hard-coded anywhere in your code. Check here for detailed guidelines on this.

You can either pay for professional translation services or find a bunch of interested users who would like to translate your app for free. You can gift them the premium version of your app as a token of appreciation.

Pro Tip: You can use various tools like Crowdin or Weblate to professionally manage your translators.

3. Time to Perform an In-Depth Performance Audit

You are almost ready to release your app, but are you sure of your app performing at its best potential? You need to ensure that your app is fast, responsive and works flawlessly.

The first impression is the last impression.

After months of hard-work developing your app, you need to put this extra effort and ensure that your app “makes the cut”.

Its the right time to start polishing your app and make it shine like diamond. Use LeakCanary to detect memory leaks quickly and easily. It is very likely that you have introduced some leaks in your app (even the Android Framework have got a few ;-) ) which needs to be fixed.

Always remember, even a tiny leak can sink a large ship.

Here is an excellent article explaining how you might have introduced memory leaks in your app and how they can be fixed. Ensure every heavy operation (file, database, network, etc) is off the main thread. You want your app to be as responsive and as fluid as possible, right?

You just have 16ms to render a frame, so be quick.

A thorough audit can reveal lots of performance issues in your app before releasing. Fix them and always ensure that you are delivering a top-notch quality app.

Bonus: Want to deep dive and learn concurrency in Android? A good start here.

4. You Probably Have Missed Performing a Security Audit, Right?

Performing a complete and in-depth security audit of your app is something you can not afford to miss. And this is something better done before release, as there will always be a few things you cannot (or will be very difficult to) fix once your app is out in the wild.

If your app doesn’t deal with any sensitive user data, then you can probably skip this, but if it does then its the right time pay your utmost attention.

Ensure that all the sensitive data is encrypted before storing them locally in the database, shared preferences or a file. All network transfers should be encrypted as well. Never ever make the mistake of storing sensitive data in plain text locally, as it can easily get compromised if an hacker gets hold of the device.

Also ensure that passwords or pins are not encrypted, but hashed. There is a difference between hashing and encryption, and you need to learn their proper scope. Never write your own encryption algorithm, always follow the standards.

Do not forget to obfuscate your code using ProGuard. You probably won’t want to leave your code wide open for anyone to see and analyze (unless you plan to make it open source)

Pro Tip: ProGuard can protect your app, but its sibling DexGuard does a way better job in it. It can not only obfuscate your code, but even encrypt your classes and strings.

It can also use reflection for making method calls thereby making it immensely difficult for an hacker to understand your app’s flow.

5. Prevent Your App from Getting Tampered

Hackers can always try to tamper an app by reverse-engineering it in every ways possible. Theoretically, it is impossible to make an app hack-proof but you can do your part and make the hacker’s job way more difficult.

And the best time to take steps is just before releasing your app. If you do these later in a subsequent update, hackers can still get hold of a previous APK of your app and exploit loopholes from the older versions.

There are several things you can do to prevent tampering (to some extent), like preventing your production app to run on an emulator. It is almost impossible that a real user will use your app on an emulator.

You can make your app silently fail if it is debuggable (release APK and debuggable, sounds fishy?) or if it’s certificate doesn’t match with your signing certificate. The term “silently fail” is important here. Don’t let the hacker know that you are trying to prevent a tampering attempt.

Put highly sensitive business logic of your app in NDK, making it significantly difficult for hackers to understand and crack it. I am not claiming that NDK code can’t be cracked, but its way more difficult than plain old Java code.

Pro Tip: Check out this detailed guide on tamper detection. And this library, which can make your life a bit easier.

(Image Source: Firebase Crash Reporting)

6. Get Your Crash Reporting Tool Ready

If you haven’t integrated a crash reporting tool in your app before releasing it yet, do it now.

The last thing you want, is to release your app into the wild and and not know anything about what’s happening with it. If your app crashes, you as the developer should have every possible information about it so that you can take the necessary steps to fix it immediately.

I would personally recommend using Crashlytics or Instabug at this point of time. I have been using it for more than an year now and am completely satisfied with it.

Also remember to log the caught exceptions explicitly. A caught exception is still an exception and you need to know everywhere its happening in your app, so that you can find better ways to improve your app.

There are some crashes or exceptions which only occur on a particular device or a particular Android version and you need to specifically deal with them.

A good crash reporting tool is like a good friend who will constantly help you and guide you to get better with time.

Recommended Reading

7. Test Your App On Different Devices

You probably have been using one or two devices to develop your app and have thoroughly tested on them. You have squashed all bugs and crashes and is ready to release, but wait! It’s just the tip of the iceberg.

You need to test your app thoroughly on various Android platforms and also on various device models from at least some popular manufacturers like Samsung, LG, HTC, Motorola who hold a considerable amount of market share in Android.

There are several minor to major API changes in every version of Android which needs to be dealt specifically. If you are doing heavy file-handling, then you must test properly on various platform versions (remember what Google did with KitKat) and also on devices from various manufacturers.

Almost all OEMs customize their ROMs in an attempt to create an unique experience for their users which makes it even more important to test your app on them before making a final releasing.

Buying a lot of devices for an individual developer can be a real pain. I wish I had an arsenal of devices to test on, but Santa keeps on ignoring my letters everytime.

Bonus: Testing on emulators like Genymotion can help you cover the basic tests to some extent, but there is nothing that can replace a real device.

8. Plug In Your Favourite Analytics Tool

With your app released in the market, you would want to know how your users are using the app, which features of your app are the most used and which are the ones completely ignored (and how you can improve them).

You need to know which screens users are spending most of their time on and where they are absolutely not. Armed with these valuable pieces of informations, you can decide where to spend your time, effort and money on. You can effectively decide the future game plan of your app.

There are several analytics tools out there, both paid and free. But the free ones are more than enough for small, mid-scale and even some large-scale apps.

You can try Firebase Analytics. It’s completely free with unlimited event tracking, really cool isn’t it? I have also used and have been a big fan of the realtime analytics offered by Answers from Fabric.

9. Make A Proper Release Plan

You have worked so hard on your app for months and you don’t want to screw your app release out of hurry, right?

Don’t just go ahead and put your app on the Play Store immediately. Spend some time in making a proper release plan. First make a small Alpha release of your app to some of your offline friends.

You can directly observe how these users are using your app, where are they getting stuck, what initial impressions are they having. Make a proper mix of both techie and non-techie users to have much better results.

After a few small alpha releases and initial improvements, you can go ahead with a Beta release. This can and should be big.

You can try out the open beta release system recently started by Google Play. With a Beta release, you will have a much bigger and better insight of the state of your product.

Various users from various countries having various devices will be using your app and this is EXACTLY what you want. Get ready to witness a lot of bugs and crashes. But in the end you will get some invaluable feedbacks which will help you to significantly improve your app.

Now your app is ready for a final release. You can be quite assured that no major issue can come up now. You can even refine the experience of your final release, by opting for a staged rollout where you push the final version of your app incrementally to small portions of your users.

Pro Tip: You can also try Beta by CrashAnalytics to seamlessly manage and distribute your beta app.

10. Haven’t Decided Your App’s Min SDK Yet?

It’s the right time to finalize the minimum SDK you are going to support. It basically depends on the features your app wants to support and the user base it wants to target. There should be a proper balance between these two.

If your app is using several non-backportable Material Design APIs, then you have to keep your min SDK to 21 (Lollipop). You wouldn’t probably want this as only 40% of the current user base is using Lollipop and above. You don’t want to miss out on such a huge volume of potential users, right?

Spend time on backporting features if you haven’t done it yet. If you decide to support API level 19 (Kitkat) and above, your potential user base jumps significantly from 40% to around 75%.

But my personal advice would be to support API level 15 and above (if possible) which lets you tap into above 97% of the current Android user base.

11. Make Way for Easy User Feedbacks

Once your app is released and your users start using it, they will face some issues or have some suggestions and would like to get in touch with you directly.

It is very important to implement a proper feedback mechanism in your app.

Try to place the feedback action somewhere in the Navigation Drawer or in the Toolbar, so that it is easily accessible to your users.

Also consider adding some FAQs in the feedback section which can solve some of the common queries almost immediately. This will not only save your users some valuable time, but will also save you from attending lesser support mails.

You should also give access to a public issue tracker (in Github maybe) so that your users can list down the bugs that they discover and it is also visible to all other users of your app.

It is very important to be transparent to your users.

Bonus: If you want an enterprise level feedback solution and can afford it, you should try UserVoice or ZenDesk.

12. Start Investing Your Time on ASO

Haven’t heard of the term App Store Optimization (ASO) yet? It’s the right time to start learning about it. ASO is all about how you can optimize your app and your app’s listing on Play Store to attract organic downloads from the store.

Start preparing some clean and beautiful promotional graphics for your Play Store page. It is even better if you can record a small video showing off some of the coolest features of the app.

I have seen many developers making the mistake of writing their Play Store page description just before releasing their app. Don’t do it. Spend a considerable amount of time and effort researching how you can write an optimized description which can drive organic downloads. But don’t overdo it or make it look spammy.

Spend time researching on the keywords you are going to target and how you are going to incorporate them in your page’s title and description. Thoroughly research who your competitors are and what they are doing to improve their rankings?

Rome was not built in a day.

You can not get your app optimized and ranked well within days. It takes time and money, but once you get it right, you are on the path to reach your next few million users.

Bonus: Use services like SensorTower or AppAnnie to get a complete insight into your competition and how you can improve your Play Store ranking.

13. Decide a Proper Release Date

This is important. Plan a proper release date so that you or your team is available for the next few days after the app is released.

I had a bitter experience of making a big mistake when I had released a major bug fix update on a Friday and went on to a vacation for the weekends. When I came back on Monday, I was greeted with lots of 1 star ratings and emails regarding a crash that all users of a particular Android version were seeing.

The issue was minor, but the impact was major. And it did hurt a lot.

This is something that you should religiously follow not only for your first release, but for every major update of your app. Always be prepared for contingency.

14. Give It The Last Finishing Touch

If you are taking care of all the points mentioned above, you are mostly good to go. But still there are some minor things that you may be interested implementing, to give your app the last finishing touch.

Before making the final release of your app, ensure all the TODOs have been addressed. We developers have a habit of adding TODOs whenever there is something we need to look into later, or whenever we get a bit lazy.

It’s also the right time to find a way to monetize your app. If you are good at something never do it for free. Either add in-app purchases or incorporate some ads (native ads, interstitial ads, etc) to start making money out of your product right away.

It is also a very good practice to add a change log so that your users know exactly what have been fixed or improved from the previous version. It is also a good practice to credit and add the license information of all the open-source libraries you are using.

I hope you have liked the article and would find these techniques useful in making your app successful in Play Store. Let’s grow together, help each other and make this Android ecosystem much better. Thanks for reading. This article was initially published on TechBeacon.

Click the 💚 below to show your support and share it with other fellow Medium users.

--

--

Design-focused Engineer | Android Developer | Open-Source Enthusiast | Part-time Blogger | Catch him at https://about.me/aritra.roy