7. User Interface Is like a Joke, If You Have to Explain It, It’s Bad

If you work for any organization playing the role of “just” an Android developer, you probably won’t need to be too concerned about this, as there are UI/UX designers to take care of this.

But if you are an individual developer, you need to get this straight into your head. I have seen developers creating really good apps with great functionality, but the UI looks horrible and the UX makes it a pain to use.

Design a clean, simple and beautiful interface that is easy on the eyes. You should not just think like a developer, rather you should concentrate on igniting the hidden designer inside you.

Try to create a lasting impression on your users by designing a beautiful UI, so that they keep coming back to your app more often than others and tend to convert more (buy your premium version, maybe).

You should get a kick by removing elements from your design, rather than adding. Keep it clean and minimal.

Bonus: You can always get design inspiration from popular designers of Dribble or MaterialUp. And there is this book you probably would love to read if you are interested in design.

8. Analytics Is Your Best Friend

If you want to create a truly amazing app, you need to heavily rely on analytics tools to analyze the performance and usage of different parts of your app.

By analytics, I refer to both crash reporting and app usage tracking and you need both of them.

Whatever you do, you can never make something perfect. When real users will start using your app on a variety of Android devices and on various Android versions available, you will even see some of your best written code to fall flat on the ground.

Crash reporting tools can help you to track and fix them, one crash at a time.

You also need to start thinking like a marketer and analyze the usage of various portions of your app. This is what will help you bridge the gap between what you made and what your users’ actually want.

Pro Tip: I strongly recommend trying out the crash reporting tool in Instabug. You are surely going to love it.

9. Be a Marketing Ninja

If you are an individual developer, you have to think beyond being “just a developer” and have to understand marketing as well.

I have seen good products fail due to lack of proper marketing, and the not-so-good ones become massively successful just because of great marketing.

If you are serious about your work and want it to reach a large audience, you need to invest your time and money in properly marketing your app. But before starting your marketing campaigns, ensure that your app is absolutely stable with all features ready. You want maximum conversions from every dime you spend, right?

Spend time researching who your competitors are and how you can beat them. Identify the ones you can compete immediately and the ones you have to keep aside for a future fight.

Pro Tip: Here is an affordable market analysis tool, I love to use.

10. It’s Time to Optimize Your App

This is something that most of us generally don’t do, but you should and you need to.

There is a big difference between writing code and writing “optimized” code. Write code that runs quickly, takes less memory and consumes less device storage.

An unoptimized app works well under normal circumstances, but when put to different stressful situations, it can show you its true colors.

Check the amount of memory used by your app and look for memory leaks. Remember, a tiny leak can sink a big ship. Spend time on understanding how the Garbage Collector works in Java, create heap dumps and analyze your live objects.

Pro Tip: Use Leak Canary to detect your memory leaks. It can save you a lot of time by automating this task for you.

11. Save More Than 5 Hours Every Week with Gradle Builds

It’s very very likely that you are using Android Studio to develop Android apps and using Gradle as your build system. Gradle is great but its slow and it becomes slower than a snail when your project size starts to grow in size.

I remember the countless hours I have wasted just sitting and waiting for the Gradle builds to finish. On heavy work days, I easily wasted around an hour on just Gradle builds and that’s like 5 hours a week draining down the gutter.

But, there are ways to speed it up too.

You can follow this and this post to significantly improve your build speeds. My build time dropped from 4 minutes to less than 30 seconds after proper optimization.

12. Test, Test and When You Are Done, Test Again!

There is nothing more important than testing. This is something that should be at the top of your list.

Test your app as thoroughly as possible. Spend time for writing automated test cases. Create various stressful situations for your app and see if it can survive.

I had once made the mistake of releasing my app out of hurry and didn’t spend proper time testing it. I was waiting for my users to face bugs, report it and then I would go and fix them.

Never, ever, ever do that. You might save a day, or two, or a week by cutting down time from testing, but will probably have to spend more than twice later.

Don’t do anything out of hurry, take your time and think long term. Be a visionary. Sow now, reap later.

13. Android Fragmentation is a Devil in Disguise

Fragmentation is one of the biggest problems in Android and Google seems reluctant to fix it, but you have to live with it.

There are a huge variety of Android devices with different screen sizes and hardware specifications from a plethora of different device manufactures who customize the OS to their heart’s content.

Added to that are the various Android versions where Google adds/removes API functionality out of nowhere to increase your workload ever further (an example here).

For example, not a single Android developer has finished an app without using SharedPreferences API. It’s so common, yet it was broken in Samsung Galaxy S with Android 2.2 (bug report here).

Spend more time creating different layouts for different screen sizes. Test on different devices, having different versions, different specifications and from different OEMs.

Never assume something would work, just because it seems so.

14. Start using Git, Today!

If you are still not using Git, go ahead and start using it right away.

When I started Android development, I was unfortunate enough not to know what the fudge Git was. I used to copy my entire project everyday and keep one backup in my hard drive and another in the cloud. Seems foolish? Yes, it absolutely was.

Git can dramatically improve your workflow. If someone asks me to name a tool that I use everyday and can’t stop using? It’s Git and Git every time.

And probably after using it for a few days you would fall in love with it and want to know how Git works internally, so here it is ready for you.

And after some time, you would be starting a big project yourself and get confused on how you should maintain a proper branching model, so here you go.

Bonus: If you are just starting out and can’t afford to pay the monthly subscription fee for maintaining private repositories in GitHub, you can try BitBucket which lets you do just that for free.

15. Make it Difficult for the Hackers

The open-source nature of Android is what makes it vulnerable to attacks. Every Android app can be decompiled, reverse-engineered, ripped open, analyzed and manipulated with ease.

You don’t want that to happen to your app, right?

You should know how to securely store API keys locally in your app. If you are dealing with sensitive data of the users, then you must know how to encrypt them, what algorithm to choose (secure yet fast).

You should also store the encryption keys securely either in the server or locally (if needed). You should prevent your app data from being backed up using the ADB (Android Debug Bridge). If you are storing sensitive data in the database, consider obfuscating it.

If your app has a premium version which gets cracked and gets released for free. You would incur a serious loss in business, right?

There are several things you can do to prevent your app from getting tampered. There is nothing like 100% security. Any skilled and determined hacker with the right resources, tools and patience can crack your app.

All you want to do is make it difficult, rather very difficult for the hacker to crack it.

Bonus: Reading this and this should be a good start towards securing your app.

16. Develop On a Low-End Device

Everyone loves to use a high-end Android smartphone, so do I. But remember to keep it for your personal use only and never use it for development purposes.

A high-end device will hide a lot of flaws while developing your app. Suppose you are doing something in the UI thread which makes its way for a laggy UI, but on a powerful device, you may never ever notice that.

An old, low-end device, dumped with lots of apps makes it ideal for a development device.