Trip to Android Developer
I still remember the day back in 2016 when I decided to start developing Android, and that was one of the best decisions I’ve made in my life. It’s been around two and a half years now and I’ve had the opportunity to learn a lot of things in Android and to unlearn them.
I did n’t have a mentor or someone at first when I started to guide me to do things the right way. I made a lot of mistakes and wasted a lot of time and rectified them later.
Later, after a year and a half, I got the chance to work with Envato Market, who endorsed my first “ABC Mobile Security” project after 3 times hard rejection and 1 time soft rejection. At that time, I was fighting to sell my first app to Envato Market with my own mind. I was depressed by the Envato officials ‘ bad comments about my product, but I never gave them up and that’s why I’ve been working with them over the past 1 year.
I developed 15 apps this year and they’re at Envato Market. I learned what to do and what not to do most importantly.
I’ve been trying to help other developers in ways I can, directly and indirectly, for quite some time.
In this article, I’ll share some of the gems I’ve collected over the years. It might help someone get started faster and not repeat the mistakes I made once.
Disclaimer: I’ll focus primarily on Android and some programming and product development concepts in this article, so if you’re not familiar with any of these, you may not want to read more. Others, just plunge into it. That’s right. 🙂
1. Don’t reinvent your wheel
I had a bad idea not to use open – source libraries at first. I just wanted to do it myself, whatever I needed. It was a terrible idea seriously.
If you have a problem developing your app, and if someone else has solved that problem before and in a good way, why not use it? You can save a lot of time for yourself.
2. Choose Libraries Wisely
In Github there are lots and lots of open – source libraries that you can use for FREE. But don’t get too excited and blindly begin using libraries.
Check the number of stars the library has, the better. Check if some other popular libraries were also created by the author of that library. Check out the issues (open and closed) that can give you a better understanding of how robust and stable the library is in production.
You should dive into that library’s code if you can afford the time and check yourself if it’s really worth it.
You just want to make sure your code is reliable, bug – free and high – quality.
3. Sit down, have a cup of coffee and read more
We’ve been reading other code for most of our time than writing ourselves. If you don’t do that, today START.
Whatever code you can write today is just because you’ve been reading and learning something, somewhere, somewhere, sometime. It’s only a reflection of what you know already. Only by reading and learning from the work of others can you grow and improve yourself.
Android’s great thing is that it’s a fully open – source platform. Dive into the code and see how the framework has been implemented. Github has thousands of open – source libraries. Just select a library and see how it was implemented by the developer.
4. Maintain the correct coding standards for God’s sake
If you compare coding with writing, it’s like your handwriting to code standards.
As you’d read more of other code, others will also read a lot of your code and you don’t want to scare the shit out of it, are you? And if you work heavily in an organization and work with other developers, take special care of it.
Write short, clean and readable code that will thoroughly enjoy you and people reading your code. You should read your code like a story.
Code is Poetry.
Don’t complain if you write a piece of code and for a couple of days your colleagues don’t talk to you.
5. You Need ProGuard, Yes, You Need It!
Never ever make the mistake of the Play Store release of your app without using ProGuard.Not only does ProGuard minify your code, it also disguises your code, making it more difficult for reverse engineers to understand, replicate and manipulate it.
It’s totally free and comes bundled with the Android SDK, and there’s no reason why you don’t use it.
Without ProGuard, I saw several developers launching their app on the market. A not – so – skilled hacker should not take more than a couple of hours to manipulate an app released without Proguard.
Pro Tip: But if you want top-notch security, then ProGuard is like a cardboard while you need a safe, and here it is, DexGuard.
6. Analytics Is Your Best Friend
You need to rely heavily on analytics tools to analyze the performance and use of different parts of your app if you want to create a truly amazing app.
By analytics, I refer to both crash reporting and app usage tracking and you need both of them.
Whatever you do, there’s something you can never make perfect. You’ll even see some of your best written code to fall flat on the ground when real users start using your app on a variety of Android devices and on different Android versions available.
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 use of your app’s different portions. That’s what’s going to help you bridge the gap between what you made and what your users really want.
Pro Tip: Here is an affordable market analysis tool, I love to use.
7. It’s Time to Optimize Your App
Generally speaking, this is something most of us 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 your app’s memory amount and search for memory leaks. Remember, a small leak can sink a large vessel. Spend time learning how the Garbage Collector works in Java, creating heap dumps and analyzing 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.
8. 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 as thoroughly as possible your app. Spend time writing test cases automatically. Creating your app with different stressful situations and seeing if it can survive.
I once made the mistake of hurrying to release my app and didn’t spend the time testing it properly. I waited for bugs to be faced by my users, report them, 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.
9. 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 be able to safely store API keys in your app locally. If you’re dealing with users ‘ sensitive data, then you need to know how to encrypt them, which algorithm to choose (safe yet quick).
Also, the encryption keys should be stored securely in the server or locally (if necessary). Use the ADB (Android Debug Bridge) to prevent backup of your app data. Consider obfuscating it if you store sensitive data in the database.
If you have a premium version of your app that gets cracked and released for free. You’d have a severe business loss, right?
There are several things you can do to prevent the manipulation of your app. There’s nothing like security at 100 percent. With the right resources, tools and patience, any skilled and determined hacker can crack your app.
All you want to do is make it hard for the hacker to crack it, rather hard.
I’ve tried to share some of the lessons I’ve learned with Android development on this short journey. I’m going to go on my journey, learn more and share more. I hope it will help somebody and make life a little easier.
Do give it a thumbs up if you like this article, comment on it and share it with your friends.